Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы с GPIF в CY7C68013a
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
Мария Е
Здравствуйте!
Пытаюсь разобраться с GPIF в МК CY7C68013a. Согласно TechRefManual создаю файл для инициализации GPIF с помощью GpifDesigner (скачала с сайта cypress). Но столкнулась со следующей проблемой: если в проект в Кейле подключать сгенерированный GpifDesigner сишный файл, то проект нормально компилится, прошивается в МК, но при переподключении устройства (из Cypress USB Console) новое устройство консолью не обнаруживается. Через некоторое время винда говорит, что USB устройство не опознано, а USB Device viewer:
---===>Device Information<===---

ConnectionStatus: FailedEnumeration
Current Config Value: 0x00 -> Device Bus Speed: Low
Device Address: 0x00
Open Pipes: 0
*!*ERROR: No open pipes!

===>Device Descriptor<===
*!*ERROR: bLength of 0 incorrect, should be 18
bLength: 0x00
bDescriptorType: 0x00
bcdUSB: 0x0000
bDeviceClass: 0x00
*!*ERROR: Device enumeration failure

Если убрать файл, сгенерированный GpifDesigner, то все ок (обнаруживается новое устройство)wacko.gif

Кто-нибудь сталкивался с чем-то подобным? В чем может быть проблема?
vvvvv
У него там настройки не только GPIF интерфейса но и тактовой и управляющих сигналов, поэтому внимательно сравните все настройки текущие и те, что выставляются в GPIF редакторе...
Мария Е
Цитата(vvvvv @ Nov 30 2008, 15:44) *
У него там настройки не только GPIF интерфейса но и тактовой и управляющих сигналов, поэтому внимательно сравните все настройки текущие и те, что выставляются в GPIF редакторе...


как я поняла, в основном надо проверять соответствие содержимого IFCONFIG, сгенерированного GPIFDesigner, и настроек в остальном проекте.
Проверила, подправила, но сути не изменилось. Сейчас винда не говорит, что устройство не опознано. Но опознается оно с "родными" VID и PID контроллера. (а не с теми, которые я указала в дескрипторах в своем проекте)

Не знаю что и делать, подскажите, где еще могут быть косяки.

Пробовала даже забить на обмен данными по GPIF, просто инициализирую его и все, но результат такой же.
Смотрела пример с DSP из GpifDesigner, особых отличий (ну кроме GPIF дескрипторов) от своего проекта не нашла. Вроде все делается приблизительно также и в том же порядке
help.gif
Konst_777
Цитата(Мария Е @ Dec 8 2008, 17:07) *
...
Не знаю что и делать, подскажите, где еще могут быть косяки.
...

Попробуйте в качестве отправной точки firmware из Archive.rar в теме прием данных из АЦП в ПК по USB. Возможно, модифицируя этот проект, Вы быстрее получите желаемое.
Мария Е
Спасибо, попробую
Мария Е
Спасибо за пример, действительно сильно помогло.
Сейчас работает in передача (из плис в CY7C68013a и в хост) в manual mode, но проблемы с autoin.
На сколько я поняла, настройка autoin заключается в его разрешении и загрузке числа байт (которое хотим передавать автоматически) в EP2AUTOINLENH:L.
Если я пишу в EP2AUTOINLENH:L число меньше 40, то хостом принимается 512 байт, а если больше 40, то устройство вообще не опознается системой.
Подскажите, в чем может быть косяк?
Я неправильно понимаю принцип работы?

Куски кода:

.....// инициализация
SYNCDELAY;
EP2FIFOCFG = 0x04; // EP2 is: 0, INFM1=0, OEP1=0, AUTOOUT=0, AUTOIN=0, ZEROLEN=1, 0, WORDWIDE=0
SYNCDELAY;
EP2FIFOCFG = 0x0c; // EP2 is: 0, INFM1=0, OEP1=0, AUTOOUT=0, AUTOIN=1, ZEROLEN=1, 0, WORDWIDE=0
SYNCDELAY;

EP2AUTOINLENH = MSB(count); // if AUTOIN=1, auto commit 512 byte packets
SYNCDELAY;
EP2AUTOINLENL = LSB(count);
.......

//опрос
if( GPIFTRIG & 0x80 ) // if GPIF interface IDLE
{
if ( ! ( EP24FIFOFLGS & 0x01 ) ) // if EP2 fifo is not full
{

SYNCDELAY;
GPIFTCB1 = MSB(count); // setup transaction count with 512
SYNCDELAY;
GPIFTCB0 = LSB(count);
SYNCDELAY;

GPIFTRIG = GPIFTRIGRD | GPIF_EP2; // launch GPIF FIFO READ Transaction to EP2IN
SYNCDELAY;

while( !( GPIFTRIG & 0x80 ) ); // poll GPIFTRIG.7 GPIF Done bit

SYNCDELAY;
.....

Если делать передачу пакетов через установку соответствующего бита в регистре INPKTEND, то все нормально работает. Но хотелось бы полного автомата))))
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.