|
Что-то не удается увидеть прерывание от 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) прерывает передачу сбросом USB2)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 не получается.
Спасибо за помощь :-).
Составить ответ ||| Конференция ||| Архив
Ответы
E-mail: info@telesys.ru