Не удается справится с прерыванием Input Endpoint 0 :-(
Что-то не удается увидеть прерывание от InEndpoint0
Инициализирую по примеру клавиатуры выложеному TI.
iWriteMMR bVECINT, 0
iWriteMMR bUSBSTA, 0xFF
iWriteMMR bFUNADR, 0 ; Адреса нет
iWriteMMR bUSBMSK, 0xFF ; Прерывания от USB событий
iWriteMMR bIEPBCNT_0 , EPBCNT_NAK ; Буфер пуст
iWriteMMR bOEPBCNT_0 , EPBCNT_NAK ; Буфер пуст
iWriteMMR bIEPCNFG_0, UBME+USBIE ; Прерывания от Control IN
iWriteMMR bOEPCNFG_0, UBME+USBIE ; Прерывания от Control OUT
Вот лог пакетов полученный по COM порту:
1)
Получаю пакет Get Descriptor Device
80 06 00 01 00 00 40 00
Отвечаю частями по 8 байт как и положено.
Host(Windows) прерывает передачу сбросом USB
2)Host задает адрес:
Set Address
00 05 02 00 00 00 00 00
Сохраняю его в bFUNADR
3)Поскольку Host в первой пересылке получил длину Descriptor Device то
запрашивает снова уже с правильной длиной (12h).
Get Descriptor Device
80 06 00 01 00 00 12 00
Но почему то прерывание от InEndpoint0 так и не вызывается :-(
Игрался с битами DIR SIR в USBCTL не получается.
Спасибо за помощь.
-
- Для TUSB3210. - misyachniy(31.03.2004 19:51)