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

 
 
> Не работает GPIF в CY7C68013, Прошу помощи!
Konst_777
сообщение Apr 29 2006, 05:09
Сообщение #1


Знающий
****

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



Я уверен, что у меня "битый" контроллер. Но уверен не до конца, так как это мой первый опыт работы с FX2. Сейчас у меня нет возможности проверить Firmware-Software на другом контроллере. Есть ли у кого-нибудь возможность проверить мое Firmware-Software на своем контроллере?

Подробнее о сути проблемы:
После записи в IFCONFIG значения 0xCA, бит "Done" в регистрах GPIFTRIG, GPIFIDLECS, GPIFIE тут же и навсегда становится равным 0 (Transaction in progress). Я использую Long Transfer Mode для чтения 16 Мбайт из внешнего устройства и пересылки этих данных через USB в ПЭВМ. В качестве строба чтения (DIOR_) использую CTL1. Период повторения строба DIOR_=250 нс. Выполняется чтение 16-разрядных слов, т.е. требуемая скорость обмена = 8 Мбайт/сек.
Несмотря на столь странное поведение бита "Done", как только значение Transaction Counter становится равным нулю, всегда формируется прерывание ISR_GpifComplete. CyConsole демонстрирует правильные значения читаемых данных. Но программа для измерения скорости обмена между CY7C68013 и ПЭВМ показывает, что скорость обмена не превышает 2.5 Мбайт/сек. Если отключить GPIF и с помощью ядра контроллера записывать 512 в EP2BCH:L пока есть место в EP2FIFO, то эта же программа показывает, что скорость обмена = 10 Мбайт/сек. На выводе CTL1 лог."0" в режимах "Ports" и "GPIF Master". Только в состоянии IDLE при обмене в режиме GPIF на выводе CTL1 формируется положительный импульс длительностью 10 нс. Если, вместо CTL1 использовать CTL0, а CTL1 перевести в третье состояние, то при обмене на выводе CTL1 все равно формируются такие же импульсы. При обмене в режиме GPIF на выводе CTL0 лог."0" во всех состояниях кроме IDLE. Но, в отличие от CTL1, этим выводом можно управлять программно в состоянии IDLE, изменяя значение бита 0 регистра GPIFIDLECTL.

Вообщем, если бы кто-то смог проверить мое Firmware-Software на своем контроллере, то моя благодарность не имела бы границ, в пределах моих возможностей.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
Konst_777
сообщение May 8 2006, 04:21
Сообщение #2


Знающий
****

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



Заработало !!!

С контроллером все было в порядке. Сбивало с толку поведение монитора (отладчика). Если в окне Watches Keil uVision3 задать вывод значений GPIFTCBx (или любого регистра, требующего synchronization delay), то в регистрах GPIFTRIG, GPIFIDLECS, GPIFIE бит "DONE" становится равным нулю. Другими словами - монитор не выполняет требования section 15.14 Technical Reference Manual при отображении новых значений регистров в окне Watches.

У Cypress есть пример "FX2 GPIF Long transfers". Я этот пример запустил и убедился, что с GPIF все в порядке. Используя этот пример как образец, я получил работающее Firmware.
Go to the top of the page
 
+Quote Post
NahaL
сообщение Dec 11 2006, 15:35
Сообщение #3


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

Группа: Свой
Сообщений: 85
Регистрация: 5-07-06
Из: Барнаул
Пользователь №: 18 592



Работаю с Cy7C68014A и застрял на одной проблеме:
ПРИ подключении контроллера к компьютеру, обнаруживается новое USB устройство: USB Device.
И всё, никакими стандартными VID, PID не пахнет.
Контроллер не горелый, разводка правильная. (все ноги в плисине.)
Прога USB вьювер показывает устройство со скоростью full ? А всё остальное по нулям, на рисунке показано.
Помогите чем сможете, ПОЖАЛУЙСТА.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 02:28
Рейтинг@Mail.ru


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