Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: USB
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
Страницы: 1, 2, 3, 4, 5, 6
Eugene_P
Цитата(Димыч @ Feb 22 2005, 14:08)
USB Device и "не установлены драйверы" - нормально.
Пока у Вас МК не загружен с EEPROM или к нему не прикручен EEPROM с вашими VID/PID, он будет отдавать цупресовские VID/PID. Посмотреть оные можно с помощью USBView, например.
При установке драйвера нужно выбирать все-таки то устройство, которое у Вас. А вот про правку путей копирования файлов драйвера я навскидку не подскажу. Сейчас уже не работаю с EZ-USB, и следов не осталось smile.gif
*


В том то и дело, что никаких идентификаторов девайс не отдает sad.gif
Вообще.

Еще одна фишка: не вижу частоты на XTALOUT. Стоит кварц на 24МГц
с кондерами 22 пФ. Пробовал ставить другие кварцы - ни в какую.
Димыч
Странно тогда, что вообще появляется "USB Device". Но мастер установки оборудования в винде, значит, не должен появляться, так?

тупой вопрос smile.gif AVCC, AGND в норме?
Eugene_P
Цитата(Димыч @ Feb 23 2005, 07:44)
Странно тогда, что вообще появляется "USB Device". Но мастер установки оборудования в винде, значит, не должен появляться, так?

тупой вопрос smile.gif AVCC, AGND в норме?
*


Подключены к цифровым +3.3V и земле (пара конденсаторов еще висят - электролит и керамика).

Также кроме USB шины подключены:
цепочка на сброс - сброс формируется нормально;
IFCLK, WAKEUP - лог. 1.
EA - GND;
EEPROMка 24LC65 (с подтяжкой по SDA, SCL);
на GPIF линиях висит ATMega16 (5 вольтовый);

USBview не видит устройства (Win2K+SP4). Хотя на другом компе (Win2K без сервис паков) - видит. Но как неизвестное устройство (не идентификаторов, ничего вообще нет).

Попробую подойти с другого бока к чипу. Зашить что-нибудь тестовое в EEPROM и посмотреть, дышит ли кристалл или нет.
Trashy
Цитата(Eugene_P @ Feb 22 2005, 15:58)
Еще одна фишка: не вижу частоты на XTALOUT. Стоит кварц на 24МГц
с кондерами 22 пФ. Пробовал ставить другие кварцы - ни в какую.
*



Я же по русски в каком-то из постов писал: ёмкости на 12пФарад!
Ты должен видеть генерацию. Проверь питание на AVСС!
Правильность работы железа проверяется так: не устанавливая драйверов и не зашивая EEPROM(можно вообще без него но с резисторами подтяжки!)
При подключении, виндовоз должен начать установку драйвера. Винде говоришь, что драйверов нет и ни чего не ставишь. После этого лезешь в реестр по этому пути:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB

В нём находишь либо: VID_04B4&PID_8613 либо, если EEPROM установлен, то то что прописано в ЕЕПРОМ!
Всё!
Если это есть, то железо пашет!
Если этого нет, железо не пашет!

Кстати, если в реестре найдёшь VID_0000&PID_0000 , то это скорее всего твоё кривое устройство. Поудаляй из реестра все VID_0000&PID_0000 и снова подключи девайс. Если эта херня - VID_0000&PID_0000 опять всплывёт, то лечи железо!!!

И ещё!
Нахрена тебе там нужна Атмега???
В микрухе свой контроллер есть, который ни на много хуже атмеги.
И вообще, с этой микрухой целесообразно подключать только FIFO, DSP или PLIC.
А для Атмег пользуй cy7c68001
Кстати, мне cy7c68001 - больше понравился. Он проще.
Eugene_P
Спасибо за дельные рекомендации!

Цитата(Trashy @ Feb 23 2005, 11:12)
Я же по русски в каком-то из постов писал: ёмкости на 12пФарад!
Ты должен видеть генерацию. Проверь питание на AVСС!


Уже пробовал и 12 пФ. Не пашет. Подключал также и генератор на 24 МГц -
на XTALOUT появились импульсы - но чип также не определяется (см.ниже).
На CLKOUT нет ничего. Аналоговое питание в норме.

Цитата
Правильность работы железа проверяется так: не устанавливая драйверов и не зашивая EEPROM(можно вообще без него но с резисторами подтяжки!)
При подключении, виндовоз должен начать установку драйвера. Винде говоришь, что драйверов нет и ни чего не ставишь. После этого лезешь в реестр по этому пути:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB

В нём находишь либо: VID_04B4&PID_8613 либо, если EEPROM установлен, то то что прописано в ЕЕПРОМ! 
Всё!
Если это есть, то железо пашет!
Если этого нет, железо не пашет!

Кстати, если в реестре найдёшь VID_0000&PID_0000 , то это скорее всего твоё кривое устройство. Поудаляй из реестра все VID_0000&PID_0000 и снова подключи девайс. Если эта херня - VID_0000&PID_0000 опять всплывёт, то лечи железо!!!


Все так и сделал. Да, при подключении появляется девайс с нулевыми идентификаторами. Отслеживать можно только по реестру. USBview нифига не видит. sad.gif
Теперь понятно, что что-то не то с платой. Вопросы тогда такие (сорри, что тупые и понятно, что все написано в PDF на чип, но все же):
EA=0 - внешняя память не используется.
WAKEUP=1 - чип постоянно "разбужен".
IFCLK=1 - наверное, роли не играет, я пока GPIF не использую.
#RESET - RC цепочка 0,1 мкФ/100 кОм
кварц на 24 МГц + кондеры на 12 пФ
SCL/SDA стоят подтяжки
D+, D- вроде бы не перепутаны smile.gif, проверил
с питанием все в порядке - прощупал все ноги
Все верно?

Цитата
И ещё!
Нахрена тебе там нужна Атмега???
В микрухе свой контроллер есть, который ни на много хуже атмеги.
И вообще, с этой микрухой целесообразно подключать только FIFO, DSP или PLIC.
А для Атмег пользуй cy7c68001
Кстати, мне cy7c68001 - больше понравился. Он проще.


Все понятно, что можно пользовать чип без процессорного ядра, но плата пока отладочная. Задачи - 1) мост USB 2.0 - другие процессоры;
2) быстрая читалка/писалка микросхем флеш-памяти.
В первом случае ясно, что хватит 68001, второй случай - наверное все-таки 68013. Пока, в общем 68013.
Trashy
Цитата(Eugene_P @ Feb 24 2005, 15:25)
EA=0  - внешняя память не используется.
WAKEUP=1 - чип постоянно "разбужен".
IFCLK=1 - наверное, роли не играет, я пока GPIF не использую.
#RESET - RC цепочка 0,1 мкФ/100 кОм
кварц на 24 МГц + кондеры на 12 пФ
SCL/SDA стоят подтяжки
D+, D- вроде бы не перепутаны smile.gif, проверил
с питанием все в порядке - прощупал все ноги
Все верно?


У меня на плате:
EA через 9килоом на GND.
WAKEUP - висит в воздухе.
IFCLK - висит в воздухе.
33пин - так же как и EA(у немцев в схеме было, но мож и без него пашет)!!!
#RESET - RC цепочка 10 мкФ(тантал)/9 кОм (это вообще пинцетиком покоротить можно)
SCL/SDA стоят подтяжки 2.2кОм
D+ на одной оси с лапой GND (на разъёме)
D- на одной оси с лапой VCC = 5 вольт.
Кварц должен генерить даже без подключения к ЮСБ (от внешнего БП).
24lс16 в твоём случае лучше еепром вообще отключить.
Хе-хе... Попробуй в еепром зашить код для контроллера (диодиками на портах помигать). Потом от внешнего генератора протактируй и посмотри - пашет или нет само ядро(без ЮСБ).
Шить бинарник, а не хекс!
Eugene_P
Цитата(Trashy @ Feb 24 2005, 14:54)
У меня на плате:
EA через 9килоом на GND.
WAKEUP - висит в воздухе.
IFCLK - висит в воздухе.
33пин - так же как и EA(у немцев в схеме было, но мож и без него пашет)!!!
#RESET - RC цепочка 10 мкФ(тантал)/9 кОм (это вообще пинцетиком покоротить можно)
SCL/SDA стоят подтяжки 2.2кОм
D+ на одной оси с лапой GND (на разъёме)
D- на одной оси с лапой VCC = 5 вольт.
Кварц должен генерить даже без подключения к ЮСБ (от внешнего БП).
24lс16 в твоём случае лучше еепром вообще отключить.
Хе-хе...  Попробуй в еепром зашить код для контроллера (диодиками на портах помигать). Потом от внешнего генератора протактируй и посмотри - пашет или нет само ядро(без ЮСБ).
Шить бинарник, а не хекс!
*


Так, увиделся нормально мой девайс. Правда, еще до прочтения твоего поста. smile.gif
Млин, все дело было в 33-й ноге. Она должна быть на земле. В доке про это написано, но я проморгал.
Под 98-й виндой без установки драйверов USBview опознал устройство Cypress Semiconductor с идентификаторами 04B4 и 8613.
Под Win2K увиделся сразу (поскольку я драйвера пытался ему подсунуть до этого) как FX2 blah-blah-blah EEPROM missing. И USBview его опознал тоже.
Генерация на XTALIN, XTALOUT, CLKOUT присутствует.
Теперь буду пробовать шить EEPROM и пускать процессорное ядро.

Спасибо за советы еще раз.

Кстати, почему USBview пишет что устройство full speed а не high speed?
Точно так же и с флешками USB 2.0. Дело похоже в какой-то кривости USBview?
v_mirgorodsky
Aga, tak ono i est'. U nas toze est' ustroystvo na USB 2.0 CY7C68013, pishet chto ono full-speed, no rabotaet kak High-Speed. S samopisnim driverom poluchaetsya s nego slivat' poryadka 46MB v sekundu na Intelovskih platah s ICH4-5 Yuznim mostom s integrirovannim USB.
Trashy
Цитата(Eugene_P @ Feb 24 2005, 17:38)
Кстати, почему USBview пишет что устройство full speed а не high speed?
Точно так же и с флешками USB 2.0. Дело похоже в какой-то кривости USBview?
*



Всё правильно!
Ты же ещё не сконфигурил устройство.
Он конфигурится только после заброса Alt_Settings. Вот тогда, он станет "крутым"...
USBview по пакетам труб определяет. А у сайпреса в нерабочем состоянии труб нету вообще! Только нулевой эндпоинт.
Eugene_P
Это снова я smile.gif
Начал запускать процессор. Использую CyConsole для загрузки в ОЗУ моих прог в связке с драйвером CyUSB. Чего-то не хотят мои программы стартовать.
Например, такая:

#include "Fx2.h"
#include "Fx2regs.h"

main()
{
OEA = 0xff;
while(TRUE)
{
IOA = 0x0;
EZUSB_Delay(20);
IOA = 0xff;
EZUSB_Delay(20);
}
}

Нифига не меняется состояние выводов порта. sad.gif
Смотрю в асме:

; FUNCTION main (BEGIN)
; SOURCE LINE # 4
; SOURCE LINE # 5
; SOURCE LINE # 6
0000 75B2FF MOV OEA,#0FFH
0003 ?C0001:
; SOURCE LINE # 7
; SOURCE LINE # 8
; SOURCE LINE # 9
0003 E4 CLR A
0004 F580 MOV IOA,A
; SOURCE LINE # 10
0006 7F14 MOV R7,#014H
0008 FE MOV R6,A
0009 120000 E LCALL _EZUSB_Delay
; SOURCE LINE # 11
000C 7580FF MOV IOA,#0FFH
; SOURCE LINE # 12
000F 7F14 MOV R7,#014H
0011 7E00 MOV R6,#00H
0013 120000 E LCALL _EZUSB_Delay
; SOURCE LINE # 13
0016 80EB SJMP ?C0001
0018 22 RET
; FUNCTION main (END)

Все вроде бы в порядке. В чем могут быть проблемы?
еепром внешний я запустил, шью PonyProg'ом. Добрался то того,
что подсунул чипу другие идентификаторы. Бинарник для прошивки сделал
руками, а вот как в Кейле задать константы в теле программы - не знаю,
поэтому не могу сгенерить файл для прошивки в еепром. Поскажите, как
это сделать? И еще: где бы взять кряк на полную версию кейла? Все облазил уже - нигде нет sad.gif
Eugene_P
Такая же лажа и с EZ_USB Control Panel. Т.е. - программа грузится в чип но не работает sad.gif
Trashy
Цитата(Eugene_P @ Feb 28 2005, 19:36)
Это снова я smile.gif


C CyUSB я не работал.
EEPROM что бы зашить - программатор не нужен. Всё делается через USB.
Если в EZUSB с этим гемора нет и вся подгрузка кода осуществляется драйвером, то в CyUSB , что бы работали запросы отличные от 0xA0, нужно подгружать код...

"This directory contains the 8051 firmware Vend_Ax source code
for the Anchor Chips EZ-USB chip.
NOTE: The Full Version of Keil Tools is required to build this example.

The purpose of this software is to demonstrate how
to implement vendor specific commands.

The following vendor specific commands are implemented:
A0 Anchor Download
A2 EEProm Load
A3 External Ram Load
A4 Set I2C Addr
A5 Get IIC Type (1 Byte or 2 Byte EEPROM)
A6 Get Chip Rev
A8 Renumerate

То есть, прогрузив этот код в озу контроллера, ты сможешь поиметь доступ к EEPROM.

А на тему не рабочего софта, могу предположить,(кстати чем прогу загружаешь?) что ты не делаешь такие запросы:
Код
void usb_halt(HANDLE hf,byte half_data)
{
 _VENDOR_REQUEST_IN vreq;
 vreq.bRequest = 0xA0;
 vreq.wValue = 0xE600;
 vreq.wIndex = 0x00;
 vreq.wLength = 0x01;
 vreq.bData = half_data;
 vreq.direction = 0x00;
 ret = DeviceIoControl (hf,
                        Get_Ctl_Code((0x800)+5,m_buffer,a_any),
                        &vreq,
                        sizeof(VENDOR_REQUEST_IN),
                        NULL,
                        0,
                        &nbyte,
                        NULL);
 if(ret==False)
   {
     ShowMessage("i8051 halt err.\n");
   }
}


То есть, перед заливкой кода нужно контроллер усыпить, а потом вновь его разбудить.
Eugene_P
Цитата(Trashy @ Mar 1 2005, 05:22)
C CyUSB я не работал.
EEPROM что бы зашить - программатор не нужен. Всё делается через USB.
Если в EZUSB с этим гемора нет и вся подгрузка кода осуществляется драйвером, то в CyUSB , что бы работали запросы отличные от 0xA0, нужно подгружать код...

То есть, перед заливкой кода нужно контроллер усыпить, а потом вновь его разбудить.
*


Фиг с ним, с тем CyUSB. Нет смысла его мне сейчас использовать,
я это уже понял. Гружу прошивку с помощью EZ-USB Control Panel.
Пробовал посылать запрос, который ты указал. Что-то видать я не так делаю, поскольку ситуация остается неизменной. Кстати, в доках где-то сказано, что
Control Panel сам засыпает чип перед загрузкой кода и будит после.
Еще вопрос такой: насколько я понял, в evaluation Keil'е мой код должен располагаться с адреса 0x4000 ? Т.е., вне встроенного в чип ОЗУ. Куда в таком случае загружается код ? И где и какие давать указания Кейлу?
Eugene_P
Так, на свой вопрос отвечаю сам:
поменяв в опциях линкера адреса с 4000 на 0 (Code) и на всяк случай
5000 на 2000 (XData), получил требуемый результат: программа грузится с нулевого адреса и даже работает smile.gif
Правда, вижу меандр только на нагруженных выводах порта, на свободных - глухо (лог.0). Почему?
Еще надо разобраться, как генерить файл для еепрома, а то чего-то hex2bix
никак не выдает мне требуемое.
Trashy
Цитата(Eugene_P @ Mar 1 2005, 12:21)
Правда, вижу меандр только на нагруженных выводах порта, на свободных - глухо (лог.0). Почему?
Еще надо разобраться, как генерить файл для еепрома, а то чего-то hex2bix
никак не выдает мне требуемое.
*


Гы-гы, так с открытым коллектром! Видима какуюто лапу пропустил - не припаял...

hex2bin работает из командной строки. Я интеловским пользуюсь.
Кстати, разве кейл в начало хекса виды с пидом прописывает?
Не знаю, нахрена тебе генератор, там из фара или хиева прописать десять байт, а следом бинарник без изменений воткнуть...
Кароче, геморой себе делаешь. Я на асме всё накарябал и не глючился...
Там самый геморой не в железе а в софте при работе с дривером. Конечно можно пойтить по пути пользования класса от CyUSB, но изучишь то что тебе в жизни больше не понадобится к тому же, ни хрена изменений внести не сможешь...
Eugene_P
Цитата(Trashy @ Mar 1 2005, 17:01)
Гы-гы, так с открытым коллектром! Видима какуюто лапу пропустил - не припаял...


Угу, наверное. Ничего я не увидел в доке про открытый коллектор.
Да они и остались незадействованными. Это неважно, главное - работает.

Цитата
hex2bin работает из командной строки. Я интеловским пользуюсь.
Кстати, разве кейл в начало хекса виды с пидом прописывает?


Не, не прописывает, поэтому и взял hex2bix.

Цитата
Не знаю, нахрена тебе генератор, там из фара или хиева прописать десять байт, а следом бинарник без изменений воткнуть...
Кароче, геморой себе делаешь. Я на асме всё накарябал и не глючился...
Там самый геморой не  в железе а в софте при работе с дривером. Конечно можно пойтить по пути пользования класса от CyUSB, но изучишь то что тебе в жизни больше не понадобится к тому же, ни хрена изменений внести не сможешь...


Геморрой - согласен, просто хочется разобраться с еепромом до конца.
Хотя он мне и не нужен, прошивка все равно льется и будет литься по USB.
hex2bix добавляет VID, PID и все остальное. И получается файл для заливки в еепром. Единственное - программа после перезапуска работает, а девайс - не виден. Смотрю по структуре файла - вроде бы все правильно.

Где-то уже проскакивала рекомендация использовать драйвер USBIO.
По какому пути пойти? Пользовать драйвер от сайпресса или его?
В каком софте будут проблемы - в firmware или в прикладной программе?
Trashy
Цитата(Eugene_P @ Mar 1 2005, 18:49)
в еепром. Единственное - программа после перезапуска работает, а девайс - не виден. Смотрю по структуре файла - вроде бы все правильно.


Первый байт 0xC2, затем младший VID, старший Вид, младший Пид...

Ещё рекомендую проверить бит ENUM, так как ты пишешь на сях, то какая-нить "умная" функция может установить его в ненадлежащее состояние.
Прямо принудительно выстави в режим "фирмварная обработка запросов"...

И посмотри опять в реестре чё происходит, мож low/high где перепутал...
левша
Цитата(Eugene_P @ Mar 1 2005, 18:49)
Цитата
hex2bin работает из командной строки. Я интеловским пользуюсь.
Кстати, разве кейл в начало хекса виды с пидом прописывает?


Не, не прописывает, поэтому и взял hex2bix.

Цитата
Не знаю, нахрена тебе генератор, там из фара или хиева прописать десять байт, а следом бинарник без изменений воткнуть...
Кароче, геморой себе делаешь. Я на асме всё накарябал и не глючился...
Там самый геморой не  в железе а в софте при работе с дривером. Конечно можно пойтить по пути пользования класса от CyUSB, но изучишь то что тебе в жизни больше не понадобится к тому же, ни хрена изменений внести не сможешь...


Геморрой - согласен, просто хочется разобраться с еепромом до конца.
Хотя он мне и не нужен, прошивка все равно льется и будет литься по USB.
hex2bix добавляет VID, PID и все остальное. И получается файл для заливки в еепром. Единственное - программа после перезапуска работает, а девайс - не виден. Смотрю по структуре файла - вроде бы все правильно.

Где-то уже проскакивала рекомендация использовать драйвер USBIO.
По какому пути пойти? Пользовать драйвер от сайпресса или его?
В каком софте будут проблемы - в firmware или в прикладной программе?
*



Отвечу по порядку:
Для того чтобы программа грузилось из EEPROM нужно только: KEIL, Control Panel. Всё работает прекрасно и никаких гвоздей. hex2bix не добавляет никаких VID и PID(откуда ему о них знать), а просто генерит бинарник. VID и PID и всё остальное что относиться к особенностям программирования должно содержаться в файлах: USBJmpTb.OBJ и EzUSB.LIB.
Драйвер CyUSB нужен для тогочтобы небыло лишнего гемороя при передачи данных на высоких скоростях, иначе можете юзать HID интерфейс и будет вам счастье. Если вы пишете программу, где одновременно с приемом/передачей данных будет происходить их обработка , то вам может понадобиться многопоточное программирование, а у Cypress уже есть загатовка для этого. Лично мне хватило CyUSB.sys поэтому насчёт USBIO даже незаморачивался.
Eugene_P
Цитата(левша @ Mar 1 2005, 19:54)
Отвечу по порядку:
Для того чтобы программа грузилось из EEPROM нужно только: KEIL, Control Panel. Всё работает прекрасно и никаких гвоздей. hex2bix не добавляет никаких VID и PID(откуда ему о них знать), а просто генерит бинарник. VID и PID и всё остальное что относиться к особенностям программирования должно содержаться в файлах: USBJmpTb.OBJ и EzUSB.LIB.


Правильно, генерит читый бинарник, но я еще делаю так:
hex2bix.exe -I -F 194 -P 34323 -V 1204 -C 0 Test.hex
Trashy все верно сказал, дело в бите ENUM. Пока мой firmware не обрабатывает USB запросы, пусть этим занимается дефолтное устройство.
Кто мне этот бит устанавливал, я правда не понял. sad.gif
Но теперь кристалл работает с прошивкой в еепроме и видится контрол-панелью.

Цитата
Драйвер CyUSB нужен для тогочтобы небыло лишнего гемороя при передачи данных на высоких скоростях, иначе можете юзать HID интерфейс и будет вам счастье. Если вы пишете программу, где одновременно с  приемом/передачей данных будет происходить их обработка , то вам может понадобиться многопоточное программирование, а у Cypress уже есть загатовка для этого. Лично мне хватило CyUSB.sys поэтому насчёт USBIO даже заморачивался.


Спасибо за совет. Да, конечно, будет обработка. Не буду пока исключать CyUSB из своих планов.

Ну что, ни у кого нет что-ли кряка на кейл?
Trashy
Кряка?
Это что такое?
Вообсче, это называют "лекарством" и ищут его на телесистемах. Вообщето у меня есть. Но нада переться через всё здание в другой отдел... Сегодня я уже не пойду.
Набери в гугле "Keil лекарство" и будет тебе счастье.
Trashy
Цитата(Eugene_P @ Mar 2 2005, 13:05)
Пока мой firmware не обрабатывает USB запросы, пусть этим занимается дефолтное устройство.


А зачем эти запросы обрабатывать софтварно?
Если конечно не собираешься масссторадж писать...
Eugene_P
Цитата(Trashy @ Mar 2 2005, 12:13)
Кряка?
Это что такое?
Вообсче, это называют "лекарством" и ищут его на телесистемах. Вообщето у меня есть. Но нада переться через всё здание в другой отдел...  Сегодня я уже не пойду.
Набери в гугле "Keil лекарство" и будет тебе счастье.
*


Нет счастья... sad.gif Не один час уже потратил на поиски.
Вышли, пожалуйста, на evgen(at)zfs.lg.ua
На ту версию, которая идет в составе EZ-USB Dev. Tools.
Или со ссылкой на версию, на которую есть кряк
левша
Цитата(Eugene_P @ Mar 2 2005, 17:30)
Нет счастья...  sad.gif  Не один час уже потратил на поиски.
Вышли, пожалуйста, на evgen(at)zfs.lg.ua
На ту версию, которая идет в составе EZ-USB Dev. Tools.
Или со ссылкой на версию, на которую есть кряк

Вообщето это оффтоп, но отвечу здесь.
А какой для какой версии Keilа тебе кряк нужен?
У меня есть но для старой 7й версии Keil С51.

P.S. просьба модераторам не казнить и миловать а просто перенести это обсуждение в отдельную тему.
Eugene_P
Цитата(левша @ Mar 2 2005, 20:00)
Вообщето это оффтоп, но  отвечу здесь.
А какой для какой версии Keilа тебе кряк нужен?
У меня есть но для старой 7й версии Keil С51.
*


Насколько я понимаю, нужно снять ограничение размера кода, это наверное C51.exe и A51.exe - V6.10
Стартовый адрес - с 0x0000, это BL51.exe - V4.03
сам uVision - V2.10
v_mirgorodsky
Chego-to mne kazetsya, chto gruzit' proshivku v EEPROM dlya togo, chtobi ona potom sama podimalas' pri vklyuchenii device ne tak prosto. Kogda ya zanimalsya etoy problemoy, to prishlos' napisat' spetsial'nuyu programmu formatirovschik sad.gif Vozmozno kontrol'naya panel' beret na sebya vse eti hlopoti po pravil'nomu formatirovaniyu bin-file i vse rabotaet i tak.

Softwerno obrabativat' zaprosi nado esli hochetsya ispol'zovat' EZ USB kak normal'noe USB ustroystvo i upravlyat' im.

Driver k EZ USB nado pisat' svoy kogda s nego nado poluchit' prilichnuyu skorost' s USB. Standartniy driver moget prokachat' poryadka 30MB/s, samopisniy - 43-45MB/s - no eto uze ekstremal'noe programmirovanie smile.gif
Eugene_P
Цитата(v_mirgorodsky @ Mar 2 2005, 22:17)
Chego-to mne kazetsya, chto gruzit' proshivku v EEPROM dlya togo, chtobi ona potom sama podimalas' pri vklyuchenii device ne tak prosto. Kogda ya zanimalsya etoy problemoy, to prishlos' napisat' spetsial'nuyu programmu formatirovschik sad.gif Vozmozno kontrol'naya panel' beret na sebya vse eti hlopoti po pravil'nomu formatirovaniyu bin-file i vse rabotaet i tak.


Ну я вот так еще обрабатываю хекс после кейла
hex2bix.exe -I -F 194 -P 34323 -V 1204 -C 0 Test.hex
а потом контрольной панелью гружу в еепром.
Но это так, ради интереса. Мне все равно не нужно чтобы блок запускался до подключения к USB. Пусть прошивка грузится при подключении из управляющей программы.

Цитата
Softwerno obrabativat' zaprosi nado esli hochetsya ispol'zovat' EZ USB kak normal'noe USB ustroystvo i upravlyat' im.

Driver k EZ USB nado pisat' svoy kogda s nego nado poluchit' prilichnuyu skorost' s USB. Standartniy driver moget prokachat' poryadka 30MB/s, samopisniy - 43-45MB/s - no eto uze ekstremal'noe programmirovanie smile.gif


Понятно. Спасибо.

Ну что, никто не поделится лекарством к кейлу?
Trashy
Цитата(Eugene_P @ Mar 3 2005, 10:26)
Ну что, никто не поделится лекарством к кейлу?
*


А у тебя, прям свет клином на этих двух килобайтах сошёлся?
Я сколько работаю с этой микрухой, ещё ни разу желания апдэйтить кейл не было. Причём текст проги достигал 27килобайт! Он же только машинный код ограничивает.
mrborman
джентельмены, добрый день.
интересует мнение специалистов по поводу вот этого:
http://rf.atnn.ru/s7/usb-ide.html
на правду похоже или туфта? стоит ли пробовать это собирать?..
mrborman
джентельмены, добрый день.
интересует мнение специалистов по поводу вот этого:
http://rf.atnn.ru/s7/usb-ide.html
на правду похоже или туфта? стоит ли пробовать это собирать?..
Trashy
Цитата(mrborman @ Apr 26 2005, 08:37)
джентельмены, добрый день.
интересует мнение специалистов по поводу вот этого:
http://rf.atnn.ru/s7/usb-ide.html
на правду похоже или туфта? стоит ли пробовать это собирать?..
*


Этот контроллер заточен под работу с IDE.
Собрать железо, это не проблемма. Главное, это всё с виндой согласовать...
Вся трудность в программировании. Но, CYPRESS это всё разрешил, и тебе там указана ссылка...
mrborman
Цитата(Trashy @ Apr 26 2005, 08:47)
Этот контроллер заточен под работу с IDE.
Собрать железо, это не проблемма. Главное, это всё с виндой согласовать...
Вся трудность в программировании. Но, CYPRESS это всё разрешил, и тебе там указана ссылка...
*


ясно, это уже радует.. правда ссылка на софт там не рабочая sad.gif
Trashy
Цитата(mrborman @ Apr 26 2005, 13:03)
ясно, это уже радует.. правда ссылка на софт там не рабочая sad.gif
*


тут


и тутВ самом низу...
gammanoid
Цитата(mrborman @ Apr 26 2005, 09:37)
джентельмены, добрый день.
интересует мнение специалистов по поводу вот этого:
http://rf.atnn.ru/s7/usb-ide.html
на правду похоже или туфта? стоит ли пробовать это собирать?..
*


Смотря что хотелось назвать туфтой. Касательно ссылки - схема скорее всего содрана из фирменной документации на Mass Storage with USB 2.0 support (Reference Designs CY4610 & CY4611). Насчет EZ-USB FX2 (aka CY7C68013) - вполне приличный контроллер, у которого имеется GPIF, provides an easy and glueless interface to popular interfaces such as ATA, UTOPIA, EPP,PCMCIA, and most DSP/processors.
Trashy
Как на 68013 определить подключение/отключение ЮСБ кабеля?
Есть какой-нить битик? А то, "Start Of Frame" по таймеру лень вылавливать...

И ещё как принудительно ПЛЛ перевести в режим USB1.1...
Только, у меня всё обрабатывается железом. По сему нет возможности дескрипторами сконфигурить.
indela
tusb3210 tusb3410 - микроконтроллер с USB за 3$
gammanoid
Цитата(Trashy @ Jun 20 2005, 09:01)
Как на 68013 определить подключение/отключение ЮСБ кабеля?
Есть какой-нить битик? А то, "Start Of Frame" по таймеру лень вылавливать...

И ещё как принудительно ПЛЛ перевести в режим USB1.1...
Только, у меня всё обрабатывается железом. По сему нет возможности дескрипторами сконфигурить.
*


There is another way. Here's an 8051 procedure for controlling FS / HS mode:

Set bit7 in the I2C Configuration Byte and leave it (8051 always controls mode)
At the top of periph.c file make it, xdata volatile unsigned char force_mode _at_ 0xE6FB
Set up an event to switch between modes, perhaps a vend_cmd

Assuming you use two separate vend_cmd's then do this:

case VX_A2: // full speed
{ // doing a discon does affect some EZ-USB FX2 register, check TRM to see
// ...if this will impact your applicaton
USBCS |= 0x80; // Discon
EZUSB_Delay(1500);
// ...you may need more delay here for the host to see this....
force_mode = 0x02; // set to FS mode
//...you may want to clear interrupts or whatever else here...
USBCS &= 0xF7; // Connect
break;
}

case VX_A3: // high speed
{ // doing a discon does affect some EZ-USB FX2 register, check TRM to see
//...if this will impact your applicaton
USBCS |= 0x80; // Discon
EZUSB_Delay(1500); // you may need more delay here for the host to see
this....
force_mode = 0x00; // set to HS mode
// ...you may want to clear interrupts or whatever else here....
USBCS &= 0xF7; // Connect
break;
}

I'm assuming this will be self powered. If so, then you might want to
come up "Disconnect", set bit6 of I2C Configuration Byte, and sense the
presence of VBus with a port pin.... as well...

The above allows the PC to send vend_cmds down to the device in order to
enumerate in FS or HS mode, your choice. Since the 8051 is in control you
should also include one of the above procedures in TD_Init( ); as the POR
default... so the PC can "talk" to the device using the vend_cmds.&
Trashy
Цитата(gammanoid @ Jun 20 2005, 22:13)
At the top of periph.c file make it, xdata volatile unsigned char force_mode _at_ 0xE6FB


Это что за регистр? Или это таблица дескрипторов? Если да, то повлияет ли если все запросы FX2 обрабатывает в автоматическом режиме?
Ну и ещё вопрос: откуда эта выписка?
Ну и, если это второй вариант, то где первый?
gammanoid
Цитата(Trashy @ Jun 21 2005, 06:39)
Ну и, если это второй вариант, то где первый?
*

You can force FX2 to stay in full speed mode via bit7 of configuration byte 0 in the serial EEPROM.

От первого Вы отказались при постановке задачи :

Цитата(Trashy @ Jun 20 2005, 09:01)
И ещё как принудительно ПЛЛ перевести в режим USB1.1...
Только, у меня всё обрабатывается железом. По сему нет возможности дескрипторами сконфигурить.
*

, т. к. этот вариант касается EEPROM.

Цитата приведена из Web Case : http://tightlink.cypress.com/TLService/XKB...577&from=search

Примечание: надо регистрироваться.

Цитата(Trashy @ Jun 21 2005, 06:39)
Цитата(gammanoid @ Jun 20 2005, 22:13)
At the top of periph.c file make it, xdata volatile unsigned char force_mode _at_ 0xE6FB

Это что за регистр?
*



Это один из недокументированных служебных регистров, про который Cypress Tech Support не стесняется рассказывать всем желающим удушить их высокоскоростной USB-SIE до full speed'а. Честно говоря ИМХО могли бы и описать в мануале его - никому бы плохо не стало. Сам вставал на подобные грабли - по ТЗ хотят high speed, а по факту сделай чтоб хоть кое как full speed...
Trashy
Хитро!
Примного благодарен за подсказку.
Осталось подключение кабеля определить. Может тоже, что-нить недокументированное есть?
Trashy
Цитата(gammanoid @ Jun 22 2005, 22:54)
You can force FX2 to stay in full speed mode via bit7 of configuration byte 0 in the serial EEPROM.


У меня он просто не конектился с этим битом...
gammanoid
Цитата(Trashy @ Jun 23 2005, 08:09)
Цитата(gammanoid @ Jun 22 2005, 22:54)
You can force FX2 to stay in full speed mode via bit7 of configuration byte 0 in the serial EEPROM.


У меня он просто не конектился с этим битом...
*



Странно у меня получалось затормозить FX2 на high-speed host'е, Windows при этом ругалась на медленное устройство. Может что-то не там прописано?
Бит 7 в конфиг. слове насколько я помню надо прописывать в батнике для генерации .IIC-файла с помощью hex2bix. Вообще- то надо быть очень осторожным с процедурой TD_Init(). Малейшая задержка - устройство не опознано.
des00
Добрый день господа! помогите не проходите мимо, уже неделю бьюсь .. sad.gif

Есть 013а в 100 ногом корпусе и фпга, стоят на эвалюшн борде(т.е. ошибок монтажа быть не должно, собирал не я, да и обычным паяльником 0403 паять не сахар smile.gif).
сайпрес определяеться, примеры из дев.тулса работают (те что не требуют внешних устройств), но вот обмен с фпга в режиме слейв фифо нет.
Сделал в фпга внутренний bulkloop (2 фифо и выход одного, нагружен на вход другого), сделал модель контроллера со временными задержками, а в железе не выходит каменный цветок sad.gif
Точнее в балке пишет все 64 байта (усб 1.1), а читает только 2 байта. да и не те что были записанны (смотрю EZ монитором, режим bulkloop).

в качестве реф.дезайна под сайпрес использовал сампл FX2 Slave FIFO, посмотрите на функцию инициализации все ли я делаю правильно
(режим Avto in/out, bulk, EP4 out, EP8 in)

Код
 CPUCS = 0x10;                 // CLKSPD[1:0]=10, for 48MHz operation
    
     IFCONFIG = (1<<IFCLKSRC) | (0<<s3048MHZ) | (1<<IFCLKOE) | (0<<ASYNC) | (1<<IFCFG1) | (1<<IFCFG0);
 
 // IFCLKSRC=1   , FIFOs executes on internal clk source
 // IFCLKOE=0    , drive IFCLK pin signal at 30MHz
 // IFCLKPOL=0   , Don't invert IFCLK pin signal from internal clk
 // ASYNC=0      , master samples synchronous
 // GSTATE=0     , Don't drive GPIF states out on PORTE[2:0], debug WF
 // IFCFG[1:0]=11, FX2 in slave FIFO mode

 
    SYNCDELAY;
    REVCTL = (1<<DYN_OUT) | (1<<ENH_PKT);
    
    // EP4 is DIR=OUT, TYPE=BULK, SIZE=512, BUF= as is 2x
    SYNCDELAY;
    EP4CFG = (1<<VALID) | (0<<DIR) | (1<<TYPE1) | (0 << TYPE0);    
    
    // EP8 is DIR=IN, TYPE=BULK, SIZE=512, BUF= as is 2x
    SYNCDELAY;
    EP8CFG = (1<<VALID) | (1<<DIR) | (1<<TYPE1) | (0 << TYPE0);    
 // EP2, EP6 off
     SYNCDELAY;              
     EP2CFG = (0<<VALID) | (0<<DIR) | (1<<TYPE1) | (0 << TYPE0);
 SYNCDELAY;              
     EP6CFG = (0<<VALID)  | (1<<DIR) | (1<<TYPE1) | (0 << TYPE0);
 
 // reset fifo 4 times
    for (i = 0; i < 4; i++)
    {
   SYNCDELAY;
   FIFORESET = 0x80;             // activate NAK-ALL to avoid race conditions
   SYNCDELAY;    
   FIFORESET = 0x02;             // reset, FIFO 2
   SYNCDELAY;                    //
   FIFORESET = 0x04;             // reset, FIFO 4
   SYNCDELAY;                    //
   FIFORESET = 0x06;             // reset, FIFO 6
   SYNCDELAY;                    //
   FIFORESET = 0x08;             // reset, FIFO 8
   SYNCDELAY;                    //
   FIFORESET = 0x00;             // deactivate NAK-ALL
    }
    
    SYNCDELAY;
    PINFLAGSAB = 0xD9;  // FLAGA - fixed EP4EF, FLAGB - fixed EP4FF
    // FLAGC - fixed EP8FF, FLAGD - n.u.
     SYNCDELAY;
    PINFLAGSCD = 0x0F;
     
    SYNCDELAY;
    PORTACFG = (0<<FLAGD) | (0<<SLCS);          // FLAGD, set alt. func. of PA7 pin
     
    SYNCDELAY;
     FIFOPINPOLAR = 0x00;          // all signals active low
     
 // use auto out mode
    SYNCDELAY;
    EP4FIFOCFG = 0x00;            // AUTOOUT=0, WORDWIDE=1
    
    // EP4 fifo is AUTOOUT=1, AUTOIN=0, ZEROLEN=0, WORDWIDE=1
    SYNCDELAY;
    EP4FIFOCFG = (0<<INFM1) | (0<<OEP1) | (1<<AUTOOUT) | (0<<AUTOIN) | (0<<ZEROLENIN) | (0<<WORDWIDE);    // 8 bit

 
   // use auto in mode
    SYNCDELAY;
    EP8FIFOCFG = 0x00;

    // AUTOIN=1, ZEROLENIN=1, WORDWIDE=0
     SYNCDELAY;
    EP8FIFOCFG = (0<<INFM1) | (0<<OEP1) | (0<<AUTOOUT) | (1<<AUTOIN) | (1<<ZEROLENIN) | (0<<WORDWIDE);
     
    SYNCDELAY;
    EP8AUTOINLENH = 0x02; // Auto-commit 512-byte packets
    SYNCDELAY;
    EP8AUTOINLENL = 0x00;

Все ли правильно в данном коде ?

Если да, то может быть есть другие варианты почему происходит так ? wub.gif
Заранее спасибо за ответ.
Trashy
Косяк номер рас:

Цитата(des00 @ Aug 9 2005, 17:24)
SYNCDELAY;
EP8AUTOINLENH = 0x02; // Auto-commit 512-byte packets
SYNCDELAY;
EP8AUTOINLENL = 0x00;


У тебя труба 64 байтная. То есть, с такой записью AUTOIN пахать не может. Делай так:
Код
     
       mov     PacketSizeLow,#0x00
       mov     PacketSizeHigh,#0x02
       mov     dptr,#USBCS      ; bit7 - Mode jf PLL  (480/12)  
       movx    a,@dptr
       ANL     a,#10000000b
     JNZ     PLL480             ; branch if HCM != 0

       mov     PacketSizeLow,#0x40
       mov     PacketSizeHigh,#0x00
     PLL480:    
      _nop
       WriteX  #EP8AUTOINLENH,PacketSizeHigh;
      _nop
       WriteX  #EP8AUTOINLENL,PacketSizeLow;
Trashy
Ещё ПИН-полярности нужно включать до включения режима FIFO!!!
Иначе могут произойти неприятности.
Так же очень вредный регистр REVCTL = (1<<DYN_OUT) | (1<<ENH_PKT);
Если один раз не правильно им воспользоваться, то бывают ситуации, когда даже ресет не помогает вывести ядро из ступора. Кстати у меня он по нулям.

Ну и ещё вопрос: Кто у тебя трубы переключает? И переключает ли?
Trashy
Вопрос до конца ещё не понят, по сему буду из далека. Может вы поможете сформулировать вопрос.
Ситуация: есть устройство с USB контроллером cy7c68013. С драйвером EZUSB.sys. До сих пор не замечал такой особенности, но сегодня ночью обнаружилось: при непрерывной передаче данных, если открыть например страничку с кучей фотографий и начать быстро листать фотографии, то происходит срыв передачи данных. А точнее, не отрабатывается WaveForma. Проблемма в принципе решилась поднятием приоритета до уровня "Высокий". Но непонятка всё равно осталась. Почему произошёл разрыв данных?
Ответы типа: "EZUSB - отстой" не принимаются.
des00
Цитата(Trashy @ Aug 11 2005, 20:53)
Ещё ПИН-полярности нужно включать до включения режима FIFO!!!
Иначе могут произойти неприятности.
Так же очень вредный регистр REVCTL = (1<<DYN_OUT) | (1<<ENH_PKT);
Если один раз не правильно им воспользоваться, то бывают ситуации, когда даже ресет не помогает вывести ядро из ступора. Кстати у меня он по нулям.

Ну и ещё вопрос: Кто у тебя трубы переключает? И переключает ли?
*


Спасибо за ответы, сегодня проверю (пока усб отложил, другим занимался).
насчет размеров буферов, как я понял после того как камень будет прошит, происзоди перенумерация, а дальше в коде есть следующее (dispatcher взял из примера )
Код
BOOL DR_SetConfiguration( void )  
{ // Called when a Set Configuration command is received
 
 if( EZUSB_HIGHSPEED( ) )
 { // ...FX2 in high speed mode
   SYNCDELAY;
   EP8AUTOINLENH = 0x02;   // set core AUTO commit len = 512 bytes
   SYNCDELAY;
   EP8AUTOINLENL = 0x00;
 }
 else
 { // ...FX2 in full speed mode
   SYNCDELAY;
   EP8AUTOINLENH = 0x00;   // set core AUTO commit len = 64 bytes
   SYNCDELAY;
   EP8AUTOINLENL = 0x40;
 }
     
 Configuration = SETUPDAT[ 2 ];
 return( TRUE );        // Handled by user code
}

поэтому я и посчитал что можно проинитить буфер любым кодом.
насчет переключения труб, я написал в внешнего мастера для фпга, на ВХДЛе, при записи/чтении он выставляет адрес фифо за 1 такт до любых транзакция (как по доке) .
Насчет стороны ПК, то CyConsole/EZmonitor переключает же пайпы, или там тоже есть косяки ?
Trashy
Цитата(des00 @ Aug 12 2005, 07:10)
Спасибо за ответы, сегодня проверю (пока усб отложил, другим занимался).
насчет размеров буферов, как я понял после того как камень будет прошит, происзоди перенумерация, а дальше в коде есть следующее (dispatcher взял из примера )

Если у тебя USB1.1 ни какая ренумерация не поможет. Ты вообще, прогой пайпы видишь? GetPipeInfo чё говорит?
Код
Get PipeInfo
Interface Size 136
Pipe:  0   Type: BLK Endpoint:  1 OUT  MaxPktSize: 0x200
Pipe:  1   Type: BLK Endpoint:  1 IN   MaxPktSize: 0x200
Pipe:  2   Type: BLK Endpoint:  2 OUT  MaxPktSize: 0x200
Pipe:  3   Type: BLK Endpoint:  4 OUT  MaxPktSize: 0x200
Pipe:  4   Type: BLK Endpoint:  6 IN   MaxPktSize: 0x200
Pipe:  5   Type: BLK Endpoint:  8 IN   MaxPktSize: 0x200


или такую:

Код
Get PipeInfo
Interface Size 136

Pipe:  0   Type: BLK Endpoint:  1 OUT  MaxPktSize: 0x40
Pipe:  1   Type: BLK Endpoint:  1 IN   MaxPktSize: 0x40
Pipe:  2   Type: BLK Endpoint:  2 OUT  MaxPktSize: 0x40
Pipe:  3   Type: BLK Endpoint:  4 OUT  MaxPktSize: 0x40
Pipe:  4   Type: BLK Endpoint:  6 IN   MaxPktSize: 0x40
Pipe:  5   Type: BLK Endpoint:  8 IN   MaxPktSize: 0x40


Цитата(des00 @ Aug 12 2005, 07:10)
поэтому я и посчитал что можно проинитить буфер любым кодом.
насчет переключения труб, я написал в внешнего мастера для фпга, на ВХДЛе, при записи/чтении он выставляет адрес фифо за 1 такт до любых транзакция (как по доке) .
Насчет стороны ПК, то CyConsole/EZmonitor переключает же пайпы, или там тоже есть косяки ?
*


Ыгы... Буквально месяц назад дла нашего измерителя КСВН точно такую же шнягу сотворил... Тока она вся на асме. А Циклон в графике.
Кароче! Принцип отладки:

1. Циклоном нюхаешь состояние влага EF8, if(true) адрес пайпы, начинаешь заливать в супрес инфу, до появления флага FF8. EF8 - должен быть false.
Для уверенности дёрни PACKETEND.
Увидил все флаги тестером. if true, then Next
2.Запускаешь чтение приложением(предварительно сделав SetInterface).
des00
Цитата(Trashy @ Aug 11 2005, 23:33)
1. Циклоном нюхаешь состояние влага EF8, if(true) адрес пайпы, начинаешь заливать в супрес инфу, до появления флага FF8. EF8 - должен быть false.
Для уверенности дёрни PACKETEND.
Увидил все флаги тестером. if true, then Next
2.Запускаешь чтение приложением(предварительно сделав SetInterface).


в том то и дело что делаю один в один аналогично, только на виртексе 4, но ......
CyConsole
у меня выводит вот что

Type: BLK Endpoint: 4 OUT MaxPktSize: 0x40
Type: BLK Endpoint: 8 IN MaxPktSize: 0x40

т.к. другие ендпоинты не инитил.

Сегодня еще раз проверю все, благо опять желание появилось УСБ добить smile.gif
Вы не против если я к вам мылом обращусь, если что не так пойдет ?
des00
Блин что то тут не так sad.gif

Цитата
1. Циклоном нюхаешь состояние влага EF8, if(true) адрес пайпы, начинаешь заливать в супрес инфу, до появления флага FF8. EF8 - должен быть false.


все работает аналогично, смотрю флаги по осцилу все ок.
Цитата
Запускаешь чтение приложением(предварительно сделав SetInterface)

Запускаю монитор, прошиваю смотрю что выдает дивайс

конфигурация девайса
Цитата
Device Descriptor: 
bLength:  18
bDescriptorType:  1
bcdUSB:  512
bDeviceClass:  0x0
bDeviceSubClass:  0x0
bDeviceProtocol:  0x0
bMaxPacketSize0:  0x40
idVendor:  0x547
idProduct:  0x1002
bcdDevice:  0x0
iManufacturer:  0x1
iProduct:  0x2
iSerialNumber:  0x0
bNumConfigurations:  0x1
*********************************
Config Descriptor: 
bLength: 0x9
bDescriptorType:  2
wTotalLength:  32 (0x20)
bNumInterfaces:  1
bConfigurationValue:  1
iConfiguration:  0
bmAttributes: 0x20
MaxPower:  50
*********************************
Interface Descriptor: 
--------------------------------
bLength:  0x9
bDescriptorType:  4
bInterfaceNumber:  0
bAlternateSetting:  0
bNumEndpoints:  2
bInterfaceClass:  255 (0xff)
bInterfaceSubClass:  0 (0x0)
bInterfaceProtocol:  0 (0x0)
iInterface:  0
*********************************
Endpoint Descriptor 0 
--------------------------------
bLength:  0x7
bDescriptorType:  5
bEndpointAddress:  0x4
bmAttributes:  0x2
wMaxPacketSize:  64
bInterval:  0
*********************************
Endpoint Descriptor 1 
--------------------------------
bLength:  0x7
bDescriptorType:  5
bEndpointAddress:  0x88
bmAttributes:  0x2
wMaxPacketSize:  64
bInterval:  0
*********************************
Get PipeInfo
Interface Size 56
Pipe:  0  Type: BLK Endpoint:  4 OUT  MaxPktSize: 0x40
Pipe:  1  Type: BLK Endpoint:  8 IN  MaxPktSize: 0x40

пишу в фифо 2*64 байта (вижу по осцилу) фпгой

Выбираю в in bulk 64 байта длинна,
прочиать

консоль ловит только

Read IOCTL passed
0000 04 10
Read IOCTL passed
0000 29 C5
Read IOCTL passed
0000 04 10
Read IOCTL passed
0000 29 C5

Глупый вопрос а что такое SetInterface, я пробывал с ним и без него все едино sad.gif

cranky.gif
des00
Господа спасибо всем за участие, проблема разрешилась.
Я не знаю почему, но на моем чипе EP8 со своим фифо не работатет.
sad.gif
для выяснения этого я подал на вход чипа (на шину данных) фиксированный код, стрбами рулила фпга, пакеты шли, но с полоной ахинеей.
когда сделал EP6 все стало нормально.
При этом EP8 в режиме не slave fifo работала(пример bulk loop из dev tools).
Почему так не знаю, erata на этот чип я не нашел.

Уфф ну и мозги потрепал мне этот чип cranky.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.