vladimir_orl 0 22 марта, 2018 Опубликовано 22 марта, 2018 · Жалоба Здравствуйте. Делаю попытки разобраться с дизайнером GPIF II от Cypress для чипа FX3 Кто-нибудь делал подобное? Так и не понял, как подсоединять к автомату состояний регистры, как добавлять полученный файл в проект. Подскажите, если кто знает... Для начала хотя бы меандр средствами гпифа научиться выводить... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sergey_Bekrenyov 0 22 марта, 2018 Опубликовано 22 марта, 2018 · Жалоба Так и не понял, как подсоединять к автомату состояний регистры, как добавлять полученный файл в проект. Подскажите, если кто знает... Я использовал DMA, поэтому подсоединял DMA каналы CyU3PGpifSocketConfigure (0, /* Thread Index*/ CY_FX_PPORT_DSI_PRODUCER_SOCKET,/*Socket*/ DSI_WaterMark,/*uint16_t Watermark Level in 4 bytes words*/ CyTrue,/*CyBool_t **<Whether the partial flag should be set when the socket contains more data than the watermark. If false, the flag will be set when the socket contains less data than the watermark. */ DSI_burst_sz/*uint8_t **<Logarithm (to the base 2) of the burst size for this socket. The burst size is the minimum number of words of data that will be sourced/sinked across the GPIF interface without further updates of the GPIF DMA flags. The device connected to FX3 is expected to complete a burst that it has started regardless of any flag changes in between. Please note that this has to be set to a non-zero value (burst size is greater than one), when the GPIF is being configured with a 32-bit data bus and functioning at 100 MHz. */); Полученный *.h файл просто подцепляете к проекту. У меня "cyfxgpif2config.h" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 22 июня, 2018 Опубликовано 22 июня, 2018 · Жалоба Добрый день. Кто-нибудь подключал сразу несколько плат с fx3 к ПК? Библиотека от драйвера cypress позволяет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 17 июля, 2018 Опубликовано 17 июля, 2018 · Жалоба Столкнулся с зависанием fx3, если slwr не постоянный в пределах одной транзакции (источник данных не готов). Неверно отрабатывается watermark level (для непрерывной записи всё верно), даже иногда короткие пакеты с pktend застревают (редко). Кто-нибудь сталкивался с такими проблемами? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 17 июля, 2018 Опубликовано 17 июля, 2018 · Жалоба Наблюдался глючный кабель USB (FX2, slave async fifo, завесы утилиты на PC, на 480 Mbit/s). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
johnsk 0 24 июля, 2018 Опубликовано 24 июля, 2018 · Жалоба Здравствуйте! Пробовали подключать две платы с fx3 к ПК. Отличие между ними в "Device release number" в файле "cyfxslfifousbdscr.c". Программа на ПК видит сразу два устройства с разным свойством BcdDevice. По поводу зависаний, когда заканчивались данные у источника, вместе с сигналом slwr дергал pkend. Когда заканчивалось место в fx3(флаг watermark almost_full='0'), записывал по одному слову и ждал когда появится флаг full. Была ошибка, когда записывал всегда фиксированное количество слов после появления флага watermark, fx3 зависал. После появления флага watermark, при watermark level = 8, в fx3 может оставаться место для 8 или 7 выборок. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 24 июля, 2018 Опубликовано 24 июля, 2018 · Жалоба Здравствуйте! Пробовали подключать две платы с fx3 к ПК. Отличие между ними в "Device release number" в файле "cyfxslfifousbdscr.c". Программа на ПК видит сразу два устройства с разным свойством BcdDevice. По поводу зависаний, когда заканчивались данные у источника, вместе с сигналом slwr дергал pkend. Когда заканчивалось место в fx3(флаг watermark almost_full='0'), записывал по одному слову и ждал когда появится флаг full. Была ошибка, когда записывал всегда фиксированное количество слов после появления флага watermark, fx3 зависал. После появления флага watermark, при watermark level = 8, в fx3 может оставаться место для 8 или 7 выборок. Спасибо. А почему может? Cypress пишет, что при пакетной передаче со стороны плис можно watermark не смотреть. Значит в теории место под 7 выборок должно быть всегда. Я заметил, что если watermark выставлен, то нельзя переводить slwr в 1 - иначе флаг этот сбрасывается и fx3 не отправляет пакет. То есть нужна пакетная передача пакетами больше watermark level и кратными dma buffer size. Себе такую сейчас делаю, напишу результат. А если device release number один, вторая плата не видится? У меня пока нет второй платы, но задача стоит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
johnsk 0 24 июля, 2018 Опубликовано 24 июля, 2018 · Жалоба Наблюдал при отладке, после появления watermark, в fx3 влезает выборок 8 или 7, до появления флага full. Для этого и потребовался цикл "запись одного слова-ожидание full". В теории, если писать кратно dma buf size и читать на ПК такой же пакет, то watermark можно не смотреть, но непонятно когда завершить передачу. Если это делать при появлении флага full, при непрерывной записи, fx3 переполнится. "переводить slwr в 1" это значит остановить передачу? Нужно записывать до конца размера dma(появления флага full) или дернуть pkend, тогда fx3 передаст пакет. Точно не помню, сейчас нет возможности попробовать две платы сразу, но думаю будет видно два одинаковых устройства. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 24 июля, 2018 Опубликовано 24 июля, 2018 · Жалоба Наблюдал при отладке, после появления watermark, в fx3 влезает выборок 8 или 7, до появления флага full. Для этого и потребовался цикл "запись одного слова-ожидание full". В теории, если писать кратно dma buf size и читать на ПК такой же пакет, то watermark можно не смотреть, но непонятно когда завершить передачу. Если это делать при появлении флага full, при непрерывной записи, fx3 переполнится. "переводить slwr в 1" это значит остановить передачу? Нужно записывать до конца размера dma(появления флага full) или дернуть pkend, тогда fx3 передаст пакет. Точно не помню, сейчас нет возможности попробовать две платы сразу, но думаю будет видно два одинаковых устройства. Дергать pktend не стоит, система прерывания пк не даст больше 200 пакетов в секунду, только при куске в несколько мегабайт у меня скорость 400 мбайт в секунду стабильная. Смотреть за флагом full (не watermark) всё равно нужно, но он спустя несколько тактов обновляется после конца пакета. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dasalam 0 24 октября, 2021 Опубликовано 24 октября, 2021 · Жалоба On 7/24/2018 at 10:33 AM, dmitry-tomsk said: Спасибо. А почему может? Cypress пишет, что при пакетной передаче со стороны плис можно watermark не смотреть. Значит в теории место под 7 выборок должно быть всегда. Я заметил, что если watermark выставлен, то нельзя переводить slwr в 1 - иначе флаг этот сбрасывается и fx3 не отправляет пакет. То есть нужна пакетная передача пакетами больше watermark level и кратными dma buffer size. Себе такую сейчас делаю, напишу результат. А если device release number один, вторая плата не видится? У меня пока нет второй платы, но задача стоит. Добрый день. Не знаю актуальна ли для вас проблема до сих пор. Насколько я понимаю у вас ПЛИС пишет в usb контроллер (точнее в gpif) не таким образом, чтобы заполнить весь DMA буфер за одну передачу, а несколькими передачами (пакетами)? То есть, например, если размер DMA буфера 1024 байта, а размер пакета для передачи 512 байт. Сначала записывается первый пакет (512 байт) происходит некоторая задержка по времени и записывается второй пакет? У нас с коллегой тоже возникла проблема при подобной пакетной передаче данных. Дело в том, что в AN65974 на с. 11 написано: An external processor or device (functioning as the master of the interface) may perform single-cycle or burst data accesses to EZ-USB™ FX3’s internal FIFO buffers Про пакетный режим разговора нет, видимо его нельзя использовать. Получилось ли у вас что-то с передачей данных пакетами больше watermark level и кратными dma buffer size? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 29 октября, 2021 Опубликовано 29 октября, 2021 · Жалоба On 10/25/2021 at 2:21 AM, dasalam said: Добрый день. Не знаю актуальна ли для вас проблема до сих пор. Насколько я понимаю у вас ПЛИС пишет в usb контроллер (точнее в gpif) не таким образом, чтобы заполнить весь DMA буфер за одну передачу, а несколькими передачами (пакетами)? То есть, например, если размер DMA буфера 1024 байта, а размер пакета для передачи 512 байт. Сначала записывается первый пакет (512 байт) происходит некоторая задержка по времени и записывается второй пакет? У нас с коллегой тоже возникла проблема при подобной пакетной передаче данных. Дело в том, что в AN65974 на с. 11 написано: An external processor or device (functioning as the master of the interface) may perform single-cycle or burst data accesses to EZ-USB™ FX3’s internal FIFO buffers Про пакетный режим разговора нет, видимо его нельзя использовать. Получилось ли у вас что-то с передачей данных пакетами больше watermark level и кратными dma buffer size? usb3 у нас уже давно работает, последний раз подключали 12 плат, но больше 1.5 Гбайт в секунду выжать не удалось. Передача пакетами по 16 Мбайт, плис накачивает данные в fx3, поток выдаёт конец пакета, чтобы драйвер его принял. Меньшими кусками максимальная скорость не получалась. В gpif было много багов, вроде все убрали, давно было, уже не помню точно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться