Подскажите с использованием usb-контроллера PDIUSBD12 под linux Если кто использовал pdiusbd12 для работы с usb, прошу помочь советом.
AVR подключен к pdiusbd12 и управляет его инициализацией. Беда в том, что под windows устройство без проблем определяется, а под linux не хочет. Под виндами пробовал и как hid-устройство, и просто bulk-device.
Когда смотрю логи, вижу что linux присылает команду set_address, я задаю адрес для pdiusbd12. Далее приходит команда get_dev_descriptor, я начинаю выдавать дескриптор устройства, пишу в фифо первые 16 байт, и дальше начинаются проблемы:
следующее прерывание endpoint0_in приходит со статусом "timeout", и цикл опроса состояния фифо pdiusbd12 продолжается 20 секунд, после чего все, абзац. Т.е. перед тем, как отправить остаток dev_descripor-а, я жду прерывания от pdiusbd12 и, когда это прерывание приходит, опрашиваю состояние фифо. Так вот, прерывание приходит со статусом "таймаут", а статус фифо говорит о том, что оно полное, т.е. положить туда остаток дескриптора я не могу ! Выходит, что первая порция дескриптора не ушла из фифо. В общем, совсем голову сломал. Извиняюсь за сумбурное изложение, ткните хоть носом, куда дальше копать...