Подскажите, пожалуйста, как решить следующую проблему с прерываниями UDP ENDBUSRES и RXRSM.
Пока устройство не подключено к компьютеру, постоянно идут прерывания ENDBUSRES и RXRSM (поочередно). После подключения устройства к хосту, эти прерывания перестают генерироваться до включения Pull-up. Прерывание ENDBUSRES мешает мне передать дескриптор устройства на хост: подключаю устройство (на AT91RM9200) к компьютеру, включаю PullUp, возникает прер-ие ENDBUSRES, затем прер-ие EPOINT0 - получаю пакет SETUP (запрос дескриптора устройства), передаю первые 8 из 18 байт, снова прерывание по EPOINT0 - по флагу TX_COMP, передаю следующие 8 байт дескриптора, а вот здесь снова возникает прерывание по ENDBUSRES и я уже никогда не передаю последние 2 байта дескриптора устройства.
Из-за чего это случается? Когда должно происходить прер-ие ENDBUSRES? Только после подключения устройства к хосту и только 1 раз? И как отключить RXRSM?
AT91F_UDP_DisableIt(AT91C_BASE_UPD, AT91C_UPD_RXRSM) в обработчике прерывания по ENDBUSRES не помогает.
Спасибо.
|