MCO — вывод тактового сигнала
Чтобы проверить, на какой частоте на самом деле работает микроконтроллер, или затактировать от него другую микросхему, в STM32 есть специальный выход — MCO. На него можно вывести один из внутренних тактовых сигналов.
Обновлено Редакция GAW
MCO (microcontroller clock output) — вывод STM32, на который можно подать один из внутренних тактовых сигналов. У STM32F103 это PA8, а источник выбирают битами MCO[2:0] регистра RCC_CFGR (RM0008, разд. 7.2.10 и 7.3.2):
| MCO[2:0] | Сигнал на выводе |
|---|---|
| 0xx | нет |
| 100 | SYSCLK |
| 101 | HSI |
| 110 | HSE |
| 111 | PLL / 2 |
Вывод при этом переводят в режим выхода альтернативной функции — как это делается, показано в статье о GPIO STM32. Сигнал SYSCLK на MCO не должен превышать 50 МГц — это предел скорости вывода STM32F103. При старте и при смене источника на выходе возможны укороченные периоды.
У STM32F405/407 таких выводов два (RM0090, разд. 7.2.10): MCO1 на PA8 (HSI, LSE, HSE или PLL) и MCO2 на PC9 (HSE, PLL, SYSCLK или PLLI2S), у каждого свой делитель от 1 до 5, а предел — 100 МГц.
Для чего нужен
- Проверка частоты генератора. Щуп осциллографа на выводах кварца добавляет ёмкость и сам сдвигает частоту, а может и сорвать генерацию. Частоту HSE или HSI выводят на MCO и меряют там — так советует и схема «Кварцевый генератор микроконтроллера».
- Проверка настройки PLL. Если UART или USB работают с неверной скоростью, вывод PLL / 2 на MCO сразу показывает, верна ли частота на выходе дерева тактирования.
- Тактирование другой микросхемы. Так сделаны платы Nucleo-64: микроконтроллер отладчика ST-LINK выдаёт со своего MCO 8 МГц на вход OSC_IN целевого STM32, работающего в режиме HSE bypass (UM1724, разд. 7.9.1).
Не путать с выходом ШИМ таймера: его частота задаётся предделителем и периодом таймера, а MCO выдаёт сам тактовый сигнал: у STM32F1 — без деления или PLL / 2, у STM32F4 — через делитель от 1 до 5.
Частые вопросы
На каком выводе MCO у STM32F103?
На PA8 — это его альтернативная функция по умолчанию (DS5319, табл. 5). Вывод нужно настроить как выход альтернативной функции, а источник выбрать битами MCO[2:0] регистра RCC_CFGR: 100 — SYSCLK, 101 — HSI, 110 — HSE, 111 — PLL, делённый на 2.
Можно ли вывести на MCO 72 МГц?
У STM32F103 — нет: по RM0008 SYSCLK на MCO не должен превышать 50 МГц, это предельная скорость вывода. Поэтому при PLL 72 МГц выбирают вариант PLL / 2 = 36 МГц или выводят HSE. У STM32F407 предел — 100 МГц, а у каждого из двух выводов MCO есть свой делитель от 1 до 5.
Зачем выводить частоту на MCO, если есть осциллограф?
Щуп на выводах кварца сам меняет частоту и может сорвать генерацию: его ёмкость добавляется к нагрузочной. MCO — обычный выход, отделённый от цепи генератора, и частоту на нём можно мерить частотомером, не трогая кварц.
Источники
- STMicroelectronics. RM0008 Rev 21. Reference manual: STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx — разд. 7.2.10: на вывод MCO выводится SYSCLK, HSI, HSE или PLL / 2, вывод настраивают как альтернативную функцию; разд. 7.3.2: биты MCO[2:0] регистра RCC_CFGR — 0xx нет сигнала, 100 SYSCLK, 101 HSI, 110 HSE, 111 PLL / 2; при старте и смене источника возможны укороченные периоды; SYSCLK на MCO — не выше 50 МГц (предел скорости вывода)
- STMicroelectronics. DS5319 Rev 20 (July 2025). STM32F103x8, STM32F103xB datasheet — табл. 5 (описание выводов): MCO — альтернативная функция PA8 по умолчанию
- STMicroelectronics. RM0090 Rev 21 (June 2024). Reference manual: STM32F405/415, STM32F407/417, STM32F427/437 and STM32F429/439 — разд. 7.2.10: два вывода — MCO1 (PA8: HSI, LSE, HSE, PLL) и MCO2 (PC9: HSE, PLL, SYSCLK, PLLI2S), делители 1–5 (поля MCO1PRE и MCO2PRE), не выше 100 МГц
- STMicroelectronics. UM1724 Rev 17. STM32 Nucleo-64 boards (MB1136) — разд. 7.9.1: вариант MCO from ST-LINK — 8 МГц с выхода MCO микроконтроллера ST-LINK на вывод OSC_IN целевого STM32
Нашли ошибку?
Смотрите также
- Дерево тактированияПуть тактового сигнала от генератора до периферии
- HSE, HSI, LSE и LSIЧетыре тактовых генератора STM32: какой для чего
- Кварцевый генератор микроконтроллераСхема Пирса, C1 и C2 по CL, запас по усилению, часовой кварц, разводка
- GPIO STM32Режимы выводов, регистры F1 и F4, BSRR, AF, скорость, токи, 5 В, код