Работа процессорного ядра синхронизируется тактовым генератором. Именно период работы генератора определяет время, необходимое для выполнения элементарных операций в ядре. Простейшие операции, как правило, выполняются за один такт. Операции, связанные с извлечением данных из памяти, выполняются за два-три такта.
Схемы тактовых генераторов могут быть различны.
Простейшим и наиболее дешевым считается внутренний (реализованный на кристалле) RC-генератор. Он строится без внешних компонентов, но на частоту колебаний такого генератора влияет напряжение питания и температура. Для повышения стабильности к схеме внутреннего тактового генератора подсоединяются внешние высокостабильные времязадающие компоненты: кварцевые или керамические резонаторы. В ряде случаев микроконтроллеры используются с внешними схемами тактовых генераторов. Это также обеспечивает высокую точность отсчета времени и, при необходимости, позволяет синхронизировать работу сразу нескольких устройств. Некоторые схемы, могут работать с различными генераторами. Так, например, микроконтроллер АТтеgа163 может использоваться с различными внутренними и внешними генераторами.
Внутренний RC-генератор обеспечивает работу процессорного ядра AVR с частотой 1 МГц. Какие либо навесные компоненты в этом режиме к микросхеме не подсоединяются.
Внешний RC-генератор является простым решением, позволяющим изменять тактовую частоту. Но частота такого RC-генератора, как и генератора внутреннего, зависит от напряжения питания и температуры. Кроме того, частота может быть различной у различных изделий. Внешняя времязадающая RC-цепь генератора подключается к выводам микроконтроллера по схеме рис. 5.1 (а).
а) б) в)
Рис. 5.1. Подключение RC-цепей, резонаторов и внешних генераторов к контроллеру ATmega163
Сопротивление резистора R допускается варьировать в диапазоне от 3 до 100 kOм, а емкость С не должна быть менее 20 пФ. Типовые значения параметров приведены в таблице 5.1.
Таблица 5.1. Типовые параметры внешнего RC-генератора
R [кОм] | С[пФ] | F[кГц] |
31.5 | ||
6.5 |
Кварцевый или керамический резонатор подключается к микроконтроллеру по схеме рис. 5.1 (б). Частота колебаний в этом случае определяется резонансной частотой кристалла. Емкость конденсаторов С1, C2 подбирается в диапазоне 13.. 40 пФ.
Внешний генератор просто подключается к выводу XTAL1 микроконтроллера (рис 5.1 в). В качестве внешнего генератора можно использовать любую схему генератора с ТТЛ-выходом. Внешние генераторы, как правило, обладают высокой стабильностью и предсказуемостью параметров.
Выбор той или иной схемы тактового генератора программируется на стадии занесения программы в Flash-память контроллера. В контроллере АТтеgа163 для хранения этой информации во флэш-памяти предназначены специальные биты- предохранители (fuse bits) CKSEL[3..0]. В процессе работы микроконтроллера эти биты не могут быть изменены. Программирование fuse-битов осуществляется в соответствии с таблицей 5.2.
Таблица 5.2. Программирование тактового генератора
Вид генератора | CKSEL[3…0] |
Внешний кварцевый или керамический резонатор | 1111-1010 |
Внешний низкочастотный кристалл | 1001-1000 |
Внешний RC-генератор | 0111-0101 |
Внутренний RC-генератор | 0100-0010 |
Внешний генератор | 0001-0000 |
Fuse-биты CKSEL [3…0] используются также для задания некоторых временных параметров при сбросе микроконтроллера, поэтому в таблице 5.2. для описания каждого генератора предусмотрено много различных комбинаций этих битов.