Ха, я с USB модулем STM32H7 развлекаюсь. Пока наступил на: - регистры не устанавливаются после подачи клока. Вылечилось задержкой. В шите есть невнятное упоминание о задержке в 4 такта клока модуля, но чуть в другом месте. Задержка небольшая и была, но проц фигарит на 480МГц, а модуль USB на 48М. Не сразу и доперло.
- есть самосбрасывающийся бит ресета и сбросить програмно его невозможно после установки. А он не сбрасывается! Проверил тактирование, скорости,.... Оказалось, что перед сбросом надо правильно выбрать используемый тип физики: FS . В шите тишина.
- в проце есть резистор 1.5к, который сам включается после подачи питания на ногу VBUS проца. А он не включается и соответственно вся логика USB отдыхает. Оказалось, что в модуле питания надо установить бит контроля напряжения питания модуля USB, хз зачем. Да, в шите, в 1500 страниц выше описания усб есть фраза, что этот бит надо ставить.
И после всего этого модуль завелся, хост выдал адрес и на этом все заглохло. Код написан для STM32F1, модули USB вроде обратно совместимы, но не совсем. Развлечение продолжается.