Перейти к содержанию

Работает ли USB на STM32F103 без кварца?

Обновлено Редакция GAW

У STM32F103 частота для USB берётся только от PLL: в регистре RCC_CFGR бит USBPRE делит частоту PLL на 1,5 или оставляет её без деления, и в результате должны получиться ровно 48 МГц. Даташит DS5319 в примечании к дереву тактирования добавляет главное условие: для работы USB должны быть включены HSE и PLL.

Почему HSI не подходит

Сравним точности — числа из даташита ST и спецификации USB:

Источник частотыОтклонениеХватает для USB full-speed (±0,25 %)?
HSI, 25 °C, заводская калибровка−1,1…+1,8 %нет
HSI, −40…+105 °C−2…+2,5 %нет
HSI после подстройки пользователемоколо 1 %нет
Кварц, например Abracon ABM3±50 ppm допуск и ±50 ppm стабильность — до ±0,01 %да

Наш расчёт: даже в лучшем случае при 25 °C отклонение HSI до 1,8 % в семь раз больше допуска USB, а во всём диапазоне температур — в десять раз. Кварцевый резонатор, наоборот, укладывается в допуск с огромным запасом.

Что сделать

  • Поставить кварц на вход HSE (на платах Blue Pill он уже есть — 8 МГц) и настроить PLL на 72 МГц с делителем USB 1,5 или на 48 МГц без деления.
  • Если кварц не запускается, разобраться по ответу «Почему STM32 не запускается от внешнего кварца?».
  • Если нужен USB без кварца, выбрать семейство с внутренним генератором 48 МГц и подстройкой по USB.

Генераторы STM32 сравнены в термине «HSE, HSI, LSE и LSI», как работает кварц — в термине «кварцевый резонатор», USB без кварца у семейства F0 — на странице STM32F0, коэффициенты PLL подберёт калькулятор тактирования STM32, а другие причины, по которым компьютер не видит USB-устройство, — в ответе «Почему компьютер не видит USB-устройство?».

Похожие вопросы

Почему плата Blue Pill с кварцем 8 МГц работает с USB?

Потому что кварц 8 МГц и PLL с умножением на 9 дают 72 МГц, а делитель USBPRE на 1,5 — ровно 48 МГц для USB. Так и предусматривает RM0008: частота USB берётся от PLL, а PLL — от кварцевого генератора HSE.

Можно ли подстроить HSI, чтобы USB заработал?

ST даёт для пользовательской подстройки точность около 1 % — всё равно вчетверо хуже требуемых ±0,25 %. К тому же даташит прямо требует HSE для работы USB.

У каких STM32 USB работает без кварца?

У семейств с отдельным генератором 48 МГц и подстройкой по пакетам начала кадра USB — например, у STM32F042 и STM32F072 с генератором HSI48 и блоком CRS, о которых рассказано на странице STM32F0. У STM32F103 такого генератора нет.

Источники

  1. STMicroelectronics. DS5319 Rev 20. STM32F103x8, STM32F103xB datasheet — рис. 2 (дерево тактирования), примечание 2 — для работы USB должны быть включены HSE и PLL, USBCLK — 48 МГц; примечание 1 — от HSI через PLL системная частота не выше 64 МГц; табл. 24 — точность HSI с заводской калибровкой −1,1…+1,8 % при 25 °C, −2…+2,5 % при −40…105 °C, около 1 % при подстройке пользователем
  2. STMicroelectronics. RM0008 Rev 21. Reference manual: STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx — регистр RCC_CFGR, бит USBPRE — частота USB 48 МГц получается из частоты PLL делением на 1,5 (PLL = 72 МГц) или без деления (PLL = 48 МГц)
  3. USB-IF. Universal Serial Bus Specification, Revision 2.0 (пакет usb_20_20250603) — разд. 7.1.11 — номинальная скорость full-speed 12,000 Мбит/с, допуск при передаче ±0,25 % (2500 ppm)
  4. Abracon. ABM3 Ceramic SMD Crystal (revised 04-25-22) — допуск частоты при 25 °C ±50 ppm, стабильность в рабочем диапазоне температур ±50 ppm (есть исполнения до ±10 ppm)

Нашли ошибку?