Спасибо за отклики на мой вопрос, который мне удалось таки решить.
1. Приведенные исправления в библиотеке мне известны уже как с полгода и я их у себя давно сделал.
2. Эффект с чтением неверных запросов. Проблема оказалась (как часто бывает) совсем не там где сначала казалось. Все дело было во входном фильтре сигналов USB. Плата покупная, не нашей разработки. На входе (pin 2 и 3) сначала стоял L-фильтр (две встречно намотанные обмотки), затем стандартная RC цепочка (27 Ohm + 15 pF). Как только L-фильтр был удален с платы, все сразу же заработало. Думаю, что он приводил с появлению колебательных процессов на фронтах сигналов, которые сбивали внутреннюю работу аппаратной части контроллера USB. Причем это проявлялось при работе только с внешним USB 2.0 hub'ом.
Вот такая, думаю поучительная для embedded программистов, история.
|