|
Ситуация следующая. После подключения к USB получаю пакет Setup с Get_Descriptor-Device_Descriptor. Запрещаю прием, загружаю в FIFO0 первые 8 байт дескриптора, выставляю тип пакета DATA1 и разрешаю передачу. Через 1 мсек получаю прерывание TX_EV для FIFO0 с признаками завершения передачи и получения подтверждения. Т.е. первая часть дескриптора передана правильно. Загружаю в FIFO0 следующие 8 байт дескриптора, инвертирую тип пакета (т.е. теперь он DATA0) и разрешаю передачу. После этого следующее прерывание возникает только через 2 мсек (по идее должно максимум через 1 мсек) и прерывание это на NAK для OUT FIFO0! Откуда берется пакет OUT? Да и откуда NAK, если прием запрещен? Т.к. по NAK передача запрещается, FIFO очищается и разрешается прием - я начинаю ждать OUT, и тут еще через 3 мсек хост меня сбрасывает и после паузы 600 мсек все начинается сначала.
Что я делаю не так, что за OUT приходит в середине передачи мною дескриптора?
E-mail: info@telesys.ru