Тактирование системы
Если вы проектировали схемы тактовых генераторов для микропроцессоров, то вы будете приятно удивлены, когда начнете разрабатывать такие схемы для микроконтроллеров. Микроконтроллеры построены так, что требуют минимального числа внешних элементов для генерации тактовых импульсов.
Большинство микроконтроллеров способны работать в очень широком диапазоне частот: от нуля до десятков мегагерц. Это возможно благодаря использованию полностью статической логике. Некоторые разработчики используют тактовую частоту в 1 Гц и менее при отладке программного обеспечения. Широкий диапазон возможных рабочих частот позволяет разработчику лучше настроить микроконтроллер на выполнение конкретных заданных функций.
Существует три способа задания тактовой частоты микроконтроллера, каждый из которых имеет свои достоинства и недостатки. Первый способ - использование кварцевого резонатора, подключенного согласно схеме на рис. 2.12. Этот способ позволяет очень точно задать тактовую частоту микроконтроллера (разброс частот обычно составляет не более 0,01%). Такой уровень точности требуется для организации интерфейса микроконтроллера с другими устройствами или обеспечения точного хода часов реального времени.
Номиналы емкостей конденсаторов в данной схеме определяются производителем микроконтроллера для конкретной резонансной частоты кварца. Иногда требуется включить резистор большого номинала (порядка нескольких МОм) между выводами Clk0 и Clk1, чтобы генератор работал стабильно. Часто производитель советует использовать переменный конденсатор, подключаемый к выводу Clkl, чтобы обеспечить возможность точной подстройки частоты.
Рис. 2.12 - Тактирование с использованием кварцевого резонатора.
Многие разработчики не любят использовать в своих схемах какие-либо переменные элементы. Если разброс частот не соответствует заданным требованиям, то можно использовать другие схемы синхронизации.
При использовании малых емкостей тактовые импульсы будут иметь лучшую форму. Если вы включите слишком большие емкости, то это приведет к деградации формы импульсов, и микроконтроллер не будет запускаться. Если вы не уверены в правильности выбранных значений емкостей, то проверьте форму тактовых импульсов при помощи осциллографа. Их форма должна быть похожа на верхний рисунок 2.14.
Если схема перегружена из-за включения слишком большой емкости, то форма импульсов будет похожа на нижний рисунок 2.14, или вместо импульсов вообще будет постоянное напряжение на уровне примерно Vdd/2.
Два основных недостатка этого способа синхронизации - необходимость подключения дополнительных компонентов и хрупкость кристаллов кварца Оба этих недостатка могут быть устранены, если использовать керамический резонатор. Керамические резонаторы существенно более стойки к ударной нагрузке, и многие из них имеют встроенные конденсаторы, вследствие чего количество требуемых внешних компонентов уменьшается с трех до одного. Керамические резонаторы обычно имеют разброс частот порядка нескольких десятых процента (около 0,5%)
Следующий способ синхронизации - использование RC-генератора. В этом случае необходимая частота тактовых импульсов задается путем соответствующего выбора постоянной времени RC-цепи (рис 2.15). Это самый дешевый способ задания частоты, но, к сожалению, наименее точный. Если кварц обеспечивает поддержание частоты с точностью в тысячные доли процента, керамический резонатор - в десятые доли процента, то RC-цепь дает точность порядка десятков процентов. Так, при экспериментах с микроконтроллерами PIC было установлено, что точность RC-генератора составляет примерно 20%. Очевидно, что это неприемлемо для многих приложений, где требуется точный подсчет времени. Однако имеются области применения, где такая точность является вполне достаточной.
Рис. 2.13 - Хорошая и плохая формы импульсов для микроконтроллера PICMicro.
Рис. 2.14 - Подключение RC-цепи для генерации тактовых импульсов.
Нет общей формулы расчета номиналов резистора и конденсатора для этого типа генератора. Причиной этого являются нелинейные внутренние цепи микроконтроллера. Значения R и С, обеспечивающие требуемую частоту синхронизации, можно найти в руководстве по применению микроконтроллера.
Большое преимущество этого способа синхронизации частоты - низкая цена. Точность задания тактовой частоты можно повысить, используя переменные резистор или конденсатор. Однако при этом сложность и цена генератора увеличатся.
Другой способ синхронизации - это подача тактовых импульсов от внешнего генератора. Как указано выше, микроконтроллеры работают в широком диапазоне частот. При помощи внешнего тактового генератора можно задать любую частоту синхронизации.
Некоторые микроконтроллеры содержат встроенные RC или кольцевые генераторы, которые позволяют микроконтроллеру работать без внешних схем синхронизации. Работа внутреннего генератора обычно разрешается путем соответствующего программирования регистра конфигурации, которое производится вместе с программированием памяти программ микроконтроллера.