Коллеги!
Столкнулся с неожиданной для себя проблемой. Реализовал USB на at91rm9200 в соответствии с примерами с www.atmel.com. Иногда наблюдается совершенно удивительная вещь (точнее только когда хочу использовать USB-IF тест). Генерится прерывание. Устанавливается бит RXSETUP. Читаю FIFO c control endpoint’a. А там не новая команда, а “хвост” того, что я записал в это FIFO при посылке на host дескриптора или чего-то еще. Соответственно весь процесс enumeration рушится, и тест вообще устройство не обнаруживает. Причем, если из теста выхожу, переключается USB стек в компьютере обратно, и мое устройство благополучно распознается и подключается. Это что аппаратная ляпа в UDP Atmel’a?
Никто не сталкивался с аналогичными проблемами? Я пробовал различные USB 2.0 hub’ы. Единственно, что в компьтере USB 2.0 контроллер остается тем же.
С наилучшими пожеланиями.
|