Пытаюсь понять USB на контроллере SAM3S. Это USB CDC устройство, которое уже определяется виндой. Проблема с передачей файлов в контроллер. Передаю 7 байт информации: в регистре UDP_CSR[1] 42 82 07 00 - принято семь байт информации в два банка. В даташите написано, что такое может быть, когда контроллер занят чем-то ещё.
И правда, - он постоянно опрашивает пользовательские дескрипторы iManufacturer iSerial (вывожу символ в юсарт при этом событии), вряд ли так и должно быть и я не нашл какого-либо объяснения в интернетах, кроме того, что информация в этих дискрипторах ни на что не влияет - поэтому у меня там по нулям {0x02, 0x03}.
У меня несколько вопросов: в какие моменты нужно (и нужно ли вообще) отменять прерывания по точкам? Должен ли USB постоянно опрашивать эти дескрипторы? Почему два банка?
Обработчик USB прилеплен к сообщению. Ещё мне кажется, я неправильно обрабатываю первую конечную точку (чищу банки эти). Надеюсь на вашу помощь.
usb.txt