реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Проблема с cy7c68013a
Kaamos
сообщение Aug 1 2008, 09:09
Сообщение #1





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



День добрый,

Пытаемся адаптировать оный микрух под передачу данных с PC в режиме bulk. Пошли простейшим путем - взяли плату Digilent USB2, вывели ifclk наружу, сделали прошивку для работы в режиме slave FIFO (внешний клок, 8-разрядная шина, автоматическая передача данных с USB на шину в обход фирмвари, работаем только с EP2). Для управления этим делом привесили ПЛИС (генерирует клоки, управляющие сигналы и забирает данные).

Собственно проблема: наблюдаем зависание cy7c68013a в процессе передачи. Количество передаваемых пакетов варьируется от пары-тройки до сотен тысяч, потом - зависание. Судя по флагам, буфер FIFO при этом пустой.
Передачу организуем мелкой тестовой самописной софтинкой, использующей CyAPI из DVK. Передача производится блоками по 512 байт, проблема наблюдается вне зависимости от задержки между передачей отдельных блоков.

Спасибо!
Go to the top of the page
 
+Quote Post
Serg_Sm
сообщение Aug 6 2008, 05:48
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 183
Регистрация: 10-10-06
Из: Смоленск
Пользователь №: 21 167



У вас скорее всего проблемы в прошивке ПЛИС. Проверяйте соответствие временных задержек.
У меня подобное наблюдалось, когда я делал управление локальной шиной PLX9054 (PCI мост). Стояла не очень быстрая плисина и при небольшом изменение проекта PCI-плата работала то с зависаниями, то они вдруг исчезали (в симуляции все было отлично). Избавился от этого только после внесения в проект контроля задержек.
Go to the top of the page
 
+Quote Post
Kaamos
сообщение Aug 6 2008, 07:42
Сообщение #3





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



Спасибо!

Да, проблема была в ПЛИС, теперь у нас новая беда smile.gif Пока ПЛИС забирает данные - все нормально. Как только она приостанавливает передачу - FIFO в EZ-USB, видимо, заполняются, после чего плата перестает принимать данные от ПК. Причем не начинает их принимать даже тогда, когда ПЛИС пытается начать заново вытягивать данные. Не подскажете, в какую сторону копать?
Go to the top of the page
 
+Quote Post
Rendom
сообщение Aug 7 2008, 16:49
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 85
Регистрация: 6-05-07
Пользователь №: 27 538



Копать в сторону отказа от Slave FIFO и написания GPIF интерфейса.


p.s. Проверьте корректность работы флагов пустого и полного FIFO.
Go to the top of the page
 
+Quote Post
Kaamos
сообщение Aug 8 2008, 06:59
Сообщение #5





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



Флаги работают корректно. В чем преимущество GPIF (в данном случае)?

Спасибо!
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Aug 18 2008, 17:28
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644



Цитата(Kaamos @ Aug 6 2008, 10:42) *
Спасибо!

Да, проблема была в ПЛИС, теперь у нас новая беда smile.gif Пока ПЛИС забирает данные - все нормально. Как только она приостанавливает передачу - FIFO в EZ-USB, видимо, заполняются, после чего плата перестает принимать данные от ПК. Причем не начинает их принимать даже тогда, когда ПЛИС пытается начать заново вытягивать данные. Не подскажете, в какую сторону копать?

А как Вы управляете потоком данных ПЭВМ --> FIFO в EZ-USB? То есть, как организована передача в ПЭВМ готовности/неготовности FIFO в EZ-USB принимать данные от ПЭВМ?
Go to the top of the page
 
+Quote Post
Kaamos
сообщение Aug 19 2008, 09:56
Сообщение #7





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



Цитата
А как Вы управляете потоком данных ПЭВМ --> FIFO в EZ-USB? То есть, как организована передача в ПЭВМ готовности/неготовности FIFO в EZ-USB принимать данные от ПЭВМ?


Прошу прощения за глупый вопрос, но разве это не должно быть реализовано на уровне драйвера (используем стандартный CyUSB и CyAPI)?
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Aug 19 2008, 19:20
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 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) будут теряться данные.

Реальное управление потоком данных ПЭВМ --> ПЛИС предусматривает опрос готовности ПЛИС принять определенный объем данных, перед выдачей ПЛИС этого объема данных.
Go to the top of the page
 
+Quote Post
Artkop
сообщение Sep 1 2008, 12:01
Сообщение #9


Участник
*

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



Добрый день!
Kaamos, у меня к Вам вопрос по прошивке для 68013. Как Вы ее разрабатывали? С помощью отладочной платы сайпрес? У меня плата Nexys от того же производителя (digilent). Имею возможность грузить .iic проект в ром, но вот отладку по шагам осуществить похоже невозможно(

Сообщение отредактировал Artkop - Sep 1 2008, 12:12
Go to the top of the page
 
+Quote Post
Kaamos
сообщение Sep 3 2008, 13:24
Сообщение #10





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



Добрый день,

Мы работали не с отладочной платой сайпресс, а адаптировали готовую; по поводу отладочных плат, к сожалению, сказать ничего не могу sad.gif
Go to the top of the page
 
+Quote Post
vmp
сообщение Sep 3 2008, 14:09
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070



Цитата(Artkop @ Sep 1 2008, 16:01) *
но вот отладку по шагам осуществить похоже невозможно(

Для отладки по шагам достаточно вывести наружу 0 или 1 UART и подключить к компьютеру. Далее в eeprom заливается программа монитора от сайпресса и из кейла можно грузить и отлаживать свою программу.
Go to the top of the page
 
+Quote Post
slog
сообщение Sep 3 2008, 16:06
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



У меня вот тоже есть вопрос почти в тему:

Если после включения питания cy7c68013a загрузилась из внешней I2C EEPROM, то после этого можно ли залить в неё прошивку через USB? Или для заливки прошивки через USB к cy7c68013a обязательно не должно быть подключено внешней памяти, откуда бы она могла загрузиться.


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Sep 3 2008, 16:39
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 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? ...

Можно.
Go to the top of the page
 
+Quote Post
vmp
сообщение Sep 4 2008, 07:15
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070



Цитата(Konst_777 @ Sep 3 2008, 20:39) *
У FX2LP в 56-выводном корпусе нет последовательных портов.


Тогда облом. Простыми средствами отладку не запустить.
Go to the top of the page
 
+Quote Post
slog
сообщение Sep 4 2008, 07:43
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Цитата(Konst_777 @ Sep 3 2008, 20:39) *
Можно.

А что для этого делать то надо?
Драйвер её не видит, потому что она уже имеет другой VID-PID.


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 12:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01484 секунд с 7
ELECTRONIX ©2004-2016