|
Проблема с cy7c68013a |
|
|
|
Aug 1 2008, 09:09
|
Группа: Новичок
Сообщений: 6
Регистрация: 1-08-08
Пользователь №: 39 367

|
День добрый,
Пытаемся адаптировать оный микрух под передачу данных с PC в режиме bulk. Пошли простейшим путем - взяли плату Digilent USB2, вывели ifclk наружу, сделали прошивку для работы в режиме slave FIFO (внешний клок, 8-разрядная шина, автоматическая передача данных с USB на шину в обход фирмвари, работаем только с EP2). Для управления этим делом привесили ПЛИС (генерирует клоки, управляющие сигналы и забирает данные).
Собственно проблема: наблюдаем зависание cy7c68013a в процессе передачи. Количество передаваемых пакетов варьируется от пары-тройки до сотен тысяч, потом - зависание. Судя по флагам, буфер FIFO при этом пустой. Передачу организуем мелкой тестовой самописной софтинкой, использующей CyAPI из DVK. Передача производится блоками по 512 байт, проблема наблюдается вне зависимости от задержки между передачей отдельных блоков.
Спасибо!
|
|
|
|
|
Aug 6 2008, 07:42
|
Группа: Новичок
Сообщений: 6
Регистрация: 1-08-08
Пользователь №: 39 367

|
Спасибо! Да, проблема была в ПЛИС, теперь у нас новая беда  Пока ПЛИС забирает данные - все нормально. Как только она приостанавливает передачу - FIFO в EZ-USB, видимо, заполняются, после чего плата перестает принимать данные от ПК. Причем не начинает их принимать даже тогда, когда ПЛИС пытается начать заново вытягивать данные. Не подскажете, в какую сторону копать?
|
|
|
|
|
Aug 8 2008, 06:59
|
Группа: Новичок
Сообщений: 6
Регистрация: 1-08-08
Пользователь №: 39 367

|
Флаги работают корректно. В чем преимущество GPIF (в данном случае)?
Спасибо!
|
|
|
|
|
Aug 18 2008, 17:28
|
Знающий
   
Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644

|
Цитата(Kaamos @ Aug 6 2008, 10:42)  Спасибо! Да, проблема была в ПЛИС, теперь у нас новая беда  Пока ПЛИС забирает данные - все нормально. Как только она приостанавливает передачу - FIFO в EZ-USB, видимо, заполняются, после чего плата перестает принимать данные от ПК. Причем не начинает их принимать даже тогда, когда ПЛИС пытается начать заново вытягивать данные. Не подскажете, в какую сторону копать? А как Вы управляете потоком данных ПЭВМ --> FIFO в EZ-USB? То есть, как организована передача в ПЭВМ готовности/неготовности FIFO в EZ-USB принимать данные от ПЭВМ?
|
|
|
|
|
Aug 19 2008, 09:56
|
Группа: Новичок
Сообщений: 6
Регистрация: 1-08-08
Пользователь №: 39 367

|
Цитата А как Вы управляете потоком данных ПЭВМ --> FIFO в EZ-USB? То есть, как организована передача в ПЭВМ готовности/неготовности FIFO в EZ-USB принимать данные от ПЭВМ? Прошу прощения за глупый вопрос, но разве это не должно быть реализовано на уровне драйвера (используем стандартный CyUSB и CyAPI)?
|
|
|
|
|
Aug 19 2008, 19:20
|
Знающий
   
Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644

|
Цитата(Kaamos @ Aug 19 2008, 12:56)  Прошу прощения за глупый вопрос, но разве это не должно быть реализовано на уровне драйвера (используем стандартный CyUSB и CyAPI)? На уровне драйвера у Вас есть только одна возможность - задать таймаут для операции передачи данных настолько большим, чтобы неготовность ПЛИС принимать данные не приводила к возникновению таймаута EP2. Поскольку Вы так не делаете, то после возникновения таймаута Вам необходимо перезапустить EP2. Не уверен, что для этого достаточно перезапустить только драйвер (вызвать метод void CyUSBEndPoint::Abort(void) для EP2). Скорее всего придется перезапускать EP2 в FX2LP (проще всего перезапустить сам FX2LP вызвав bool CCyUSBDevice::Reset( void) ). Но, при перезапуске EP2 (драйвера и/или FX2LP) будут теряться данные. Реальное управление потоком данных ПЭВМ --> ПЛИС предусматривает опрос готовности ПЛИС принять определенный объем данных, перед выдачей ПЛИС этого объема данных.
|
|
|
|
|
Sep 1 2008, 12:01
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 11-06-08
Пользователь №: 38 217

|
Добрый день! Kaamos, у меня к Вам вопрос по прошивке для 68013. Как Вы ее разрабатывали? С помощью отладочной платы сайпрес? У меня плата Nexys от того же производителя (digilent). Имею возможность грузить .iic проект в ром, но вот отладку по шагам осуществить похоже невозможно(
Сообщение отредактировал Artkop - Sep 1 2008, 12:12
|
|
|
|
|
Sep 3 2008, 13:24
|
Группа: Новичок
Сообщений: 6
Регистрация: 1-08-08
Пользователь №: 39 367

|
Добрый день, Мы работали не с отладочной платой сайпресс, а адаптировали готовую; по поводу отладочных плат, к сожалению, сказать ничего не могу
|
|
|
|
|
Sep 3 2008, 16:39
|
Знающий
   
Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644

|
Цитата(vmp @ Sep 3 2008, 17:09)  Для отладки по шагам достаточно вывести наружу 0 или 1 UART и подключить к компьютеру. Далее в eeprom заливается программа монитора от сайпресса и из кейла можно грузить и отлаживать свою программу. У FX2LP в 56-выводном корпусе нет последовательных портов. Цитата(slog @ Sep 3 2008, 19:06)  У меня вот тоже есть вопрос почти в тему:
Если после включения питания cy7c68013a загрузилась из внешней I2C EEPROM, то после этого можно ли залить в неё прошивку через USB? ... Можно.
|
|
|
|
|
Sep 4 2008, 07:43
|
Знающий
   
Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489

|
Цитата(Konst_777 @ Sep 3 2008, 20:39)  Можно. А что для этого делать то надо? Драйвер её не видит, потому что она уже имеет другой VID-PID.
--------------------
В действительности всё не так, как на самом деле.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|