Найти тему
Uninterest

Изучаем STM8S часть 9

Оглавление

Система тактирования (CLK)

Устройство системы тактирования STM8 позволяет нам настраивать частоты работы периферийных устройств и ядра в соответствии с нашими потребностями. От того как настроена система тактирования зависит скорость выполнения программы и энергопотребление микроконтроллера.

В микроконтроллерах STM8 есть три основных источника тактового сигнала – высокоскоростной внутренний (HSI), высокоскоростной внешний (HSE) и низкоскоростной внутренний (LSI). Источник HSI имеет частоту 16 МГц и представляет из себя RC-генератор, встроенный в микроконтроллер с неплохой точностью и допуском около 1% в широком диапазоне температур.

HSE может быть любым внешним генератором, кварцевым генератором с температурной компенсацией (TCXO) или обычным кварцевым резонатором. Микроконтроллер может работать на частотах от 1 МГц до 24 МГц.

И наконец, внутренний LSI также являются независимым внутренним источником тактирования на основе RC-генератора, который предназначен для режимов энергосбережения и сторожевого таймера (IWDG). Он имеет фиксированную и откалиброванную частоту 128 кГц и не настолько точен, как HSI или HSE.

Внутреннее устройство МК содержит делители тактирования и могут быть настроены в соответствии с потребностями. В дальнейшем нам нужны два делителя и это делитель HSI и делитель процессора. Периферийные устройства работают напрямую от основного источника тактирования. Так же, имеется выход для тактового сигнала (CCO), на который выводиться напрямую сигнал тактирования. Этот выход можно использовать для синхронизации другого микроконтроллера, а также для синхронизации других устройств, таких как логические ИС.

Этот вывод можно использовать в качестве генератора или для проверки тактовой частоты. В систему входит защита источника тактового сигнала, которая, обеспечивающая резервное переключение на HSI, если неисправен HSE. Рассмотрим блок-схему ниже:

-2

Подключения

-3

Пример программы

В приведенном ниже примере показано, как запустить микроконтроллер с тактовой частотой 2 МГц с использованием HSI и вывести сигнал тактирования частотой 500 кГц на вывод CCO. HSIделится на 8, то есть 16 МГц, деленное на 8, равняется 2 МГц, а далее 2 МГц делятся на четыре, чтобы получить 500 кГц.

Примечание. Вывод CCO доступен только на некоторых ножках. Для STM8S003K3 этой ногой является PD0 или PC4. Для вывода сигнала тактирования нам нужно будет изменить функцию вывода PD0 на CCO. А значит нам нужно будет изменить конфигурационный бит AFR5, который отвечает за альтернативную функцию ножки PD0.

Разбираемся с программой

Полное объяснение этой программы будет в последней части этой статьи. Единственное, что я здесь объясню вот эту часть:

Эта часть кода выбирает источник тактирования и запускает вывод в CCO. А далее происходит ожидание стабилизации частоты. Данные строчки активируют вывод частоты процессора на ножку CC0.

Примечание

Действие программы можно увидеть с помощью осциллографа или логического анализатора. Для этого надо по наблюдать за выходом CCO, на который выводится тактовая частота микроконтроллера.

Оригинал статьи:

http://embedded-lab.com/blog/starting-stm8-microcontrollers/9/