Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не работает GPIF в CY7C68013
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
Konst_777
Я уверен, что у меня "битый" контроллер. Но уверен не до конца, так как это мой первый опыт работы с 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 на своем контроллере, то моя благодарность не имела бы границ, в пределах моих возможностей.
Konst_777
Заработало !!!

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

У Cypress есть пример "FX2 GPIF Long transfers". Я этот пример запустил и убедился, что с GPIF все в порядке. Используя этот пример как образец, я получил работающее Firmware.
NahaL
Работаю с Cy7C68014A и застрял на одной проблеме:
ПРИ подключении контроллера к компьютеру, обнаруживается новое USB устройство: USB Device.
И всё, никакими стандартными VID, PID не пахнет.
Контроллер не горелый, разводка правильная. (все ноги в плисине.)
Прога USB вьювер показывает устройство со скоростью full ? А всё остальное по нулям, на рисунке показано.
Помогите чем сможете, ПОЖАЛУЙСТА.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.