ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
18 июля
9124
misyachniy (31.03.2004 19:48, просмотров: 891)
Не удается справится с прерыванием 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 не получается.

Спасибо за помощь.