Здравствуйте, уважаемые!
Столкнулся вот с какой проблемой... При первой загрузке контроллера после подачи питания на LPC1756 не заводится USB. Компьютер при этом не только не определяет устройство, но и не видит его. После многочисленных экспериментов обнаружилось, что это происходит при определенных настройках штатного "ускорителя" флешки.
В общем случае параметры тактирования процессора у меня читаются из специальной структуры, но ради эксперимента прописываю настройки жестко:
FLASHCFG = (2<<12); -- вот в этом случае USB работает прекрасно
FLASHCFG = (5<<12); -- на "безопасных" настройках USB также работает
FLASHCFG = (3<<12); -- а вот в этом случае USB не работает...
FLASHCFG = (4<<12); -- аналогично...
Тактовая ядра 48 МГц, причем судя по всему от выбора источника тактирования USB (выделенный PLL1 или дополнительный делитель от PLL0) происходящее не зависит. Пробовал поднимать частоту ядра до 72 МГц, но там вариант "3 CPU clocks" для ускорителя уже не работает, т.е. приходится сидеть на безопасных настройках.
Странно то, что глюк проявляется только при первом запуске контроллера после подачи питания. Другая часть программы, не связанная с USB, работает нормально. И в случае дальнейшего сброса по сторожевому таймеру или с внешнего источника USB заводится с пол-оборота.
Какие могут быть мысли у уважаемого сообщества? В какую сторону посоветуете копнуть?