Работает ли 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 такого генератора нет.
Источники
- 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 % при подстройке пользователем
- STMicroelectronics. RM0008 Rev 21. Reference manual: STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx — регистр RCC_CFGR, бит USBPRE — частота USB 48 МГц получается из частоты PLL делением на 1,5 (PLL = 72 МГц) или без деления (PLL = 48 МГц)
- USB-IF. Universal Serial Bus Specification, Revision 2.0 (пакет usb_20_20250603) — разд. 7.1.11 — номинальная скорость full-speed 12,000 Мбит/с, допуск при передаче ±0,25 % (2500 ppm)
- Abracon. ABM3 Ceramic SMD Crystal (revised 04-25-22) — допуск частоты при 25 °C ±50 ppm, стабильность в рабочем диапазоне температур ±50 ppm (есть исполнения до ±10 ppm)
Нашли ошибку?
Смотрите также
- HSE, HSI, LSE и LSIЧетыре тактовых генератора STM32: какой для чего
- Кварцевый резонаторКварц у микроконтроллера: подключение, конденсаторы, часовой кварц
- Тактирование STM32PLL под нужную частоту, шины, флеш-память, регистры RCC и код
- Почему STM32 не запускается от внешнего кварца?Генератор HSE не раскачивается: запас усиления, конденсаторы, частота
- Почему компьютер не видит USB-устройство?Подтяжка D+, напряжение VBUS, дескрипторы и кабель