ATmega128. Системная синхронизация и тактовые источники
Системная синхронизация и тактовые источники
Источники синхронизации и их распределение
На рисунке 18 представлены источники синхронизации и распределение синхроимпульсов к встроенным блокам ATmega128. Не обязательно вся синхронизация должна работать в одно и тоже время. В целях снижения энергопотребления тактирование неиспользуемых модулей может быть прекращено путем перевода в различные режимы сна командой sleep (см. “Управление энергопотреблением и режимы сна”).
Рисунок 18 – Распределение синхронизирующих импульсов
Синхронизация ЦПУ – clkCPU
Синхронизация ЦПУ подключается к модулям микроконтроллера, которые связаны с работой ядра AVR. Примерами таких модулей являются файл регистров общего назначения, регистр статуса и память данных, выполняющая функцию стека. Остановка синхронизации ЦПУ приводит к прекращению выполнения ядром любых действий и вычислений.
Синхронизация ввода-вывода – clkI/O
Синхронизация ввода-вывода используется основными модулями ввода-вывода, в т.ч. таймеры-счетчики, SPI и УСАПП. Она также используется модулем внешних прерываний, но в некоторых случаях внешние прерывания детектируются в асинхронном режиме для поддержки работоспособности внешних прерываний даже при отключенной синхронизации. Также обратите внимание, что после отключения данной синхронизации (во всех режимах сна) двухпроводной интерфейс TWI продолжает наблюдать за передаваемым по шине адресом асинхронно.
Синхронизация флэш-памяти – clkFLASH
Синхронизация флэш-памяти тактирует работу интерфейса флэш-памяти. Обычно эта синхронизация работает одновременно с синхронизацией ЦПУ.
Синхронизация асинхронного таймера – clkASY
Синхронизация асинхронного таймера используется для тактирования асинхронного таймера-счетчика внешним кварцевым резонатором частотой 32 кГц. Данный тактовый генератор позволяет использовать таймер-счетчик как счетчик реального времени, даже при переводе микроконтроллера в режим сна.
Синхронизация АЦП – clkADC
АЦП тактируется обособленным блоком синхронизации. Это позволяет остановить работу синхронизации ЦПУ и ввода-вывода на время преобразования АЦП в целях снижения влияния цифрового шума на результат преобразования. С помощью этого достигается более точный результат преобразования.
Источники синхронизации
С помощью конфигурационных бит имеется возможность выбора нескольких источников синхронизации. Сигнал синхронизации выбранного источника является входным для тактового генератора AVR и затем подключается к соответствующим модулям.
Таблица 6 – Выбор опций синхронизации микроконтроллера
Источники синхронизации | CKSEL3..0(1) |
Внешний кварцевый/керамический резонатор | 1111 – 1010 |
Внешний низкочастотный кварцевый резонатор | 1001 |
Внешний RC-генератор | 1000 – 0101 |
Встроенный калиброванный RC-генератор | 0100 – 0001 |
Внешняя синхронизация | 0000 |
Прим. 1: Для всех конфигурационных бит “1” означает незапрограммированное состояние, а “0” – запрограммированное.
Подробное описание каждой из этих опций приведено в следующих разделах. При выходе ЦПУ из режима выключения (Power-down) или экономичного режима (Power-save) выбранный источник синхронизации используется по истечении времени на запуск, тем самым гарантируя стабильность работы генератора перед первым выполнением инструкции. Запуск микроконтроллера, инициированный сбросом (reset), сопровождается дополнительной задержкой для достижения питанием стабильного уровня перед переводом микроконтроллера в нормальный режим работы. Генератор сторожевого таймера используется для синхронизации данного модуля, который формирует задержку при запуске. Длительность генерируемой задержки определяется количеством импульсов генератора сторожевого таймера и для различных случаев приведена в таблице 7. Частота генератора сторожевого таймера зависит от напряжения питания, что показано в разделе “Типовые характеристики ATmega128: предварительные данные”.
Таблица 7 – Количество тактов сторожевого таймера
Типичное время переполнения (VCC = 5.0В) |
Типичное время переполнения (VCC = 3.0В) |
Количество тактов |
4.1 мс | 4.3 мс | 4K (4096) |
65 мс | 69 мс | 64K (65536) |
Первоначальный источник синхронизации
Микроконтроллер поставляется с установками CKSEL = “0001” и SUT = “10”. Эти значения соответствуют выбору в качестве источника синхронизации внутреннего RC-генератора с максимальным временем старта. Данная настройка гарантирует всем пользователям возможность установить требуемый источник синхронизации с помощью внутрисистемного или параллельного программатора.
Кварцевый генератор
XTAL1 и XTAL2 – вход и выход, соответственно, инвертирующего усилителя, который может быть настроен для использования в качестве встроенного генератора (см. рисунок 19). Для задания частоты может использоваться либо кварцевый либо керамический резонатор. Конфигурационный бит CKOPT выбирает один из двух режимов усилителя генератора. Если CKOPT запрограммирован, то амплитуда колебаний выходного сигнала генератора будет ограничена уровнями питания. Данный режим рекомендуется использовать при высоком уровне окружающих шумов или при использовании выхода XTAL2 в качестве источника синхронизации внешней схемы. Данный режим характеризуется широким частотным диапазоном. Если CKOPT – незапрограммирован, то амплитуда выходных колебаний генератора снижается. Использование данного режима позволяет существенно снизить потребляемую мощность, но при этом ограничен частотный диапазон и нельзя XTAL2 использовать для внешней синхронизации.
При использовании резонаторов максимальная частота равна 8 МГц, если CKOPT – незапрограммирован, и 16 МГц, если CKOPT- запрограммирован. C1 и C2 должны быть всегда равны независимо от использования кварцевого или керамического резонатора. Оптимальное значение емкостей конденсаторов зависит от используемого кварцевого или керамического резонатора, от значения паразитной емкости и от окружающего уровня электромагнитного шума. Рекомендации по выбору номиналов конденсаторов приведены в таблице 8. Для керамических резонаторов необходимо использовать конденсаторы с номиналом, рекомендуемым производителем.
Таблица 8- Рабочие режимы кварцевого генератора
CKOPT | CKSEL3..1 | Частотный диапазон(1), МГц | Рекомендуемый диапазон номиналов C1 и C2 при использовании кварцевого резонатора |
1 | 101 (2) | 0.4-0.9 | - |
1 | 110 | 0.9-3.0 | 12пФ-22пФ |
1 | 111 | 3.0-8.0 | 12пФ-22пФ |
0 | 101, 110, 111 | 1.0- | 12пФ-22пФ |
Примечания:
- Частотные диапазоны – ориентировочные данные. Фактические значения могут отличаться.
- Данная опция должна задаваться только при использовании керамического резонатора, а не кварцевого.
Конфигурационные биты CKSEL0 совместно с битами SUT1..0 выбирают время старта в соответствии с таблицей 9.
Таблица 9 – Временая задержка при запуске для различных настроек кварцевого генератора
CKSEL0 | SUT1..0 | Длительность задержки при выходе из режима выключения и экономичного режима | Дополнительная задержка после сброса (VCC= 5.0В) | Рекомендуемая область применения |
0 | 00 | 258 CK(1) | 4.1 мс | Керамический резонатор, быстро нарастающее питание |
0 | 01 | 258 CK(1) | 65 мс | Керамический резонатор, медленно нарастающее питание |
0 | 10 | 1K CK(2) | – | Керамический резонатор, детектор питания (BOD) включен |
0 | 11 | 1K CK(2) | 4.1 мс | Керамический резонатор, быстро нарастающее питание |
1 | 00 | 1K CK(2) | 65 мс | Керамический резонатор, медленно нарастающее питание |
1 | 01 | 16K CK | – | Кварцевый генератор, детектор питания (BOD) включен |
1 | 10 | 16K CK | 4.1 мс | Кварцевый резонатор, быстро нарастающее питание |
1 | 11 | 16K CK | 65 мс | Кварцевый резонатор, медленно нарастающее питание |
Прим.:
- Данные опции допускается использовать, только если микроконтроллер работает не на частоте близкой к максимальной рабочей, а также, если стабильность частоты при старте не важна для данного приложения. Данные опции не приемлемы при использовании кварцевых резонаторов.
- Данные опции реализованы для использования керамических резонаторов и гарантируют стабильность частоты после запуска. При данных установках допускается использовать кварцевый резонатор, но при условии, что рабочая частота микроконтроллера меньше максимальной, а также, если стабильность частоты во время запуска не важна для данного приложения.
Низкочастотный кварцевый генератор
Для использования часового кварцевого резонатора 32.768 кГц в качестве источника синхронизации необходимо выбрать низкочастотный кварцевый генератор путем установки конфигурационных бит CKSEL равными “1001”. Подключение кварцевого резонатора показано на рисунке 19. Путем программирования конфигурационного бита пользователь может разрешить подключение встроенных конденсаторов к выводам XTAL1 и XTAL2, тем самым исключая необходимость применения внешних конденсаторов. Внутренние конденсаторы имеют номинал 36 пФ. После выбора данного генератора, длительности задержек при старте определяются конфигурационными битами SUT как показано в таблице 10.
Таблица 10 – Длительности задержек при старте для низкочастотного кварцевого резонатора
SUT1..0 | Длительность задержки при выходе из режима выключения и экономичного режима | Дополнительная задержка после сброса (VCC= 5.0В) | Рекомендуемая область применения |
00 | 1K CK(1) | 4.1 мс | Быстро нарастающее питание или включен детектор питания BOD |
01 | 1K CK(1) | 65 мс | Медленно нарастающее питание |
10 | 32K CK | 65 мс | Стабильная частота при старте |
11 | Зарезервировано |
Примечание:
- Данные опции необходимо использовать, если стабильность частоты при старте не важна для приложения.
Внешний RC-генератор
Для приложений некритичных к стабильности временных характеристик в качестве источника синхронизации может использоваться внешняя RC-цепь, подключение которой показано на рисунке 20. Тактовая частота грубо определяется выражением f = 1/(3RC). Номинал конденсатора C должен быть не менее 22 пФ. Путем программирования конфигурационного бита CKOPT пользователь может разрешить подключение внутреннего конденсатора 36 пФ между XTAL1 и GND, тем самым исключая необходимость применения внешнего конденсатора. Более подробная информация о работе генератора и о выборе номиналов R и C приведена в рекомендациях по применению внешнего RC-генератора.
Рисунок 20 – Схема подключения внешней задающей RC-цепи
Генератор может работать в четырех различных режимах, каждый из которых ориентирован на специфический частотный диапазон. Рабочий режим выбирается конфигурационными битами CKSEL3..0 (см. табл. 11).
Таблица 11 – Рабочие режимы внешнего RC-генератора
CKSEL3..0 | Частотный диапазон, МГц |
0101 | - 0.9 |
0110 | 0.9 - 3.0 |
0111 | 3.0 - 8.0 |
1000 | 8.0 - 12.0 |
После разрешения работы данного генератора длительность задержки при старте определяется установками конфигурационных бит (см. табл. 12).
Таблица 12 – Длительность задержек при старте после выбора внешнего RC-генератора
SUT1..0 | Длительность задержки при выходе из режима выключения и экономичного режима | Дополнительная задержка после сброса (VCC= 5.0В) | Рекомендуемая область применения |
00 | 18 CK(1) | - | Включен детектор питания BOD |
01 | 18 CK | 4.1 мс | Быстро нарастающее питание |
10 | 18 CK | 65 мс | Медленно нарастающее питание |
11 | 6 CK (1) | 4.1 мс | Быстро нарастающее питание или включенный детектор питания BOD |
Примечание:
- Данная опция не должна использоваться на тактовых частотах близких к максимальной.
Встроенный калиброванный RC-генератор
Встроенный калиброванный RC-генератор формирует фиксированные тактовые частоты 1.0, 2.0, 4.0 или 8.0 МГц. Данные значения частот являются номинальными и определены для напряжения питания 5В при 25?C. Одна из этих частот может быть выбрана в качестве тактовой, если запрограммировать конфигурационные биты CKSEL в соответствии с таблицей 13. После выбора микроконтроллер будет работать без внешних компонентов. Конфигурационный бит CKOPT должен быть всегда незапрограммированным, если используется внутренний RC-генератор. В процессе сброса калибровочный байт аппаратно записывается регистр OSCCAL, тем самым автоматически выполняя калибровку RC-генератора. При питании 5В, температуре 25?C и выбранной частоте генератора 1.0 МГц данный метод калибровки обеспечивает погрешность генерации частоты не хуже ± 3% от номинального значения. Использование методов калибровки во время работы микроконтроллера позволяет достичь точности ± 1% при любой заданной температуре и напряжении VCC (см. рекомендации по применению
Таблица 13 – Режимы встроенного калиброванного RC-генератора
CKSEL3..0 | Номинальная частота, МГц |
0001(1) | 1.0 |
0010 | 2.0 |
0011 | 4.0 |
0100 | 8.0 |
Прим.: 1. Микроконтроллер поставляется с данной установкой.
После выбора данного генератора длительность задержки при запуске микроконтроллера определяется установками конфигурационных бит SUT (см. табл. 14). Выводы XTAL1 и XTAL2 должны быть оставлены неподключенными (NC).
Таблица 14 – Длительности задержек при запуске с различными настройками встроенного калиброванного RC-генератора
SUT1..0 | Длительность задержки при выходе из режима выключения и экономичного режима | Дополнительная задержка после сброса (VCC= 5.0В) | Рекомендуемые условия для применения |
00 | 6 CK | - | Включен детектор питания BOD |
01 | 6 CK | 4.1 мс | Быстро нарастающее питание |
10(1) | 6 CK | 65 мс | Медленно нарастающее питание |
11 | Зарезервировано |
Прим.: 1. Микроконтроллер поставляется с данной установкой.
Регистр калибровки генератора – OSCCAL
Прим.: Регистр OSCCAL недоступен в режиме совместимости с ATmega103.
Разряды 7..0 – CAL7..0: Калибровочное значение для генератора
Запись значения калибровочного байта в данный регистр приведет к подстройке генератора на номинальную частоту. В процессе сброса калибровочное значение для частоты 1МГц (расположен в старшем байте строки сигнатуры) автоматически записывается в регистр OSCCAL. Если встроенный RC-генератор используется на других частотах, то калибровочный байт необходимо записывать программно. Для этого необходимо с помощью программатора считать значение калибровочного байта, затем сохранить его значение во флэш-память или ЭСППЗУ. После этого, калибровочное значение может быть считано программно, а затем записано в регистр OSCCAL. Если в регистр OSCCAL записать ноль, то выбирается минимальная частота. Запись ненулевого значения приводит к повышению частоты генератора. Запись $FF – к выбору максимальной частоты. Калиброванный генератор используется для синхронизации доступа к ЭСППЗУ и флэш-памяти. Во время выполнения записи в ЭССПЗУ или во флэш-память не следует выполнять калибровку на частоту выше на 10% от номинальной. В противном случае, запись в ЭССПЗУ или во флэш-память может быть некорректной. Обратите внимание, что генератор откалиброван отдельно на частоты 1.0, 2.0, 4.0 или 8.0 МГц. Результат подстройки при записи различных значений приведен в таблице 15.
Таблица 15 – Диапазон частот встроенного RC-генератора
Значение OSCCAL | Минимальная частота в процентах от номинальной, % |
Максимальная частота в процентах от номинальной, % |
$00 | 50 | 100 |
$7F | 75 | 150 |
$FF | 100 | 200 |
<< Предыдущая глава |
Оглавление | Следующая глава >> |