Системная синхронизация и тактовые источники

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

Таблица 2.17. Выбор опций синхронизации микроконтроллера

Источники синхронизации CKSEL3..0
Внешний кварцевый/керамический резонатор 1111 – 1010
Внешний низкочастотный кварцевый резонатор
Внешний RC-генератор 1000 – 0101
Встроенный калиброванный RC-генератор 0100 – 0001
Внешняя синхронизация

Примечание. Для всех конфигурационных бит “1” означает незапрограммированное состояние, а “0” – запрограммированное.

Подробное описание каждой из этих опций приведено в следующих разделах. При выходе CPU из режима выключения (Power-down) или экономичного режима (Power-save) выбранный источник синхронизации используется по истечении времени на запуск, тем самым, гарантируя стабильность работы генератора перед первым выполнением инструкции. Запуск микроконтроллера, инициированный сбросом (reset), сопровождается дополнительной задержкой для достижения питанием стабильного уровня перед переводом микроконтроллера в нормальный режим работы. Генератор сторожевого таймера используется для синхронизации данного модуля, который формирует задержку при запуске. Длительность генерируемой задержки определяется количеством импульсов генератора сторожевого таймера и для различных случаев приведена в таблице 2.18.

Таблица 2.18. Количество тактов сторожевого таймера

Типичное время переполнения (VCC = 5.0В) Типичное время переполнения (VCC = 3.0В) Количество тактов
4.1 мс 4.3 мс 4K (4096)
65 мс 69 мс 64K (65536)

Первоначальный источник синхронизации. Микроконтроллер поставляется с установками CKSEL = “0001” и SUT = “10”. Эти значения соответствуют выбору в качестве источника синхронизации внутреннего RC-генератора с максимальным временем старта. Данная настройка гарантирует всем пользователям возможность установить требуемый источник синхронизации с помощью внутрисистемного или параллельного программатора.

Кварцевый генератор. XTAL1 и XTAL2 – вход и выход, соответственно, инвертирующего усилителя, который может быть настроен для использования в качестве встроенного генератора (рис. 2.15). Для задания частоты может использоваться либо кварцевый либо керамический резонатор. Конфигурационный бит CKOPT выбирает один из двух режимов усилителя генератора. Если CKOPT запрограммирован, то амплитуда колебаний выходного сигнала генератора будет ограничена уровнями питания. Данный режим рекомендуется использовать при высоком уровне окружающих шумов или при использовании выхода XTAL2 в качестве источника синхронизации внешней схемы. Данный режим характеризуется широким частотным диапазоном. Если CKOPT – незапрограммирован, то амплитуда выходных колебаний генератора снижается. Использование данного режима позволяет существенно снизить потребляемую мощность, но при этом ограничен частотный диапазон и нельзя XTAL2 использовать для внешней синхронизации.

 
  Системная синхронизация и тактовые источники - student2.ru

Рис. 2.15. Схема подключения внешнего источника синхронизации

При использовании резонаторов максимальная частота равна 8 МГц, если CKOPT – незапрограммирован, и 16 МГц, если CKOPT- запрограммирован. C1 и C2 должны быть всегда равны независимо от использования кварцевого или керамического резонатора. Оптимальное значение емкостей конденсаторов зависит от используемого кварцевого или керамического резонатора, от значения паразитной емкости и от окружающего уровня электромагнитного шума. Рекомендации по выбору номиналов конденсаторов приведены в табл. 2.13. Для керамических резонаторов необходимо использовать конденсаторы с номиналом, рекомендуемым производителем.

Таблица 2.19. Рабочие режимы кварцевого генератора

CKOPT CKSEL3..1 Частотный диапазон, МГц Рекомендуемый диапазон номиналов C1 и C2 при использовании кварцевого резонатора
0.4-0.9 -
0.9-3.0 12пФ-22пФ
3.0-8.0 12пФ-22пФ
101, 110, 111 1.0- 12пФ-22пФ

Примечания.

1. Частотные диапазоны – ориентировочные данные. Фактические значения могут отличаться.

2. Данная опция должна задаваться только при использовании керамического резонатора, а не кварцевого.

Конфигурационные биты CKSEL0 совместно с битами SUT1..0 выбирают время старта в соответствии с табл. 2.20.

Таблица 2.20. Временная задержка при запуске для различных

настроек кварцевого генератора

CKSEL0 SUT1..0 Длительность задержки при выходе из режима выключения и экономичного режима Дополнительная задержка после сброса (VCC= 5.0В) Рекомендуемая область применения
258 CK 4.1 мс Керамический резонатор, быстро нарастающее питание
258 CK 65 мс Керамический резонатор, медленно нарастающее питание
1K CK Керамический резонатор, детектор питания (BOD) включен
1K CK 4.1 мс Керамический резонатор, быстро нарастающее питание
1K CK(2) 65 мс Керамический резонатор, медленно нарастающее питание
16K CK Кварцевый генератор, детектор питания (BOD) включен
16K CK 4.1 мс Кварцевый резонатор, быстро нарастающее питание
16K CK 65 мс Кварцевый резонатор, медленно нарастающее питание

Примечания.

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

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

Низкочастотный кварцевый генератор. Для использования часового кварцевого резонатора 32.768 кГц в качестве источника синхронизации необходимо выбрать низкочастотный кварцевый генератор путем установки конфигурационных бит CKSEL равными “1001”. Подключение кварцевого резонатора показано на рис. 2.15. Путем программирования конфигурационного бита пользователь может разрешить подключение встроенных конденсаторов к выводам XTAL1 и XTAL2, тем самым исключая необходимость применения внешних конденсаторов. Внутренние конденсаторы имеют номинал 36 пФ. После выбора данного генератора, длительности задержек при старте определяются конфигурационными битами SUT как показано в табл. 2.21.

Таблица 2.21. Длительности задержек при старте для

низкочастотного кварцевого резонатора

SUT1..0 Длительность задержки при выходе из режима выключения и экономичного режима Дополнительная задержка после сброса (VCC= 5.0В) Рекомендуемая область применения
1K CK 4.1 мс Быстро нарастающее питание или включен детектор питания BOD
1K CK 65 мс Медленно нарастающее питание
32K CK 65 мс Стабильная частота при старте
Зарезервировано

Примечание. Данные опции необходимо использовать, если стабильность частоты при старте не важна для приложения.

Системная синхронизация и тактовые источники - student2.ru Внешний RC-генератор. Для приложений некритичных к стабильности временных характеристик в качестве источника синхронизации может использоваться внешняя RC-цепь, подключение которой показано на рис. 2.16. Тактовая частота грубо определяется выражением f = 1/(3RC). Номинал конденсатора C должен быть не менее 22 пФ. Путем программирования конфигурационного бита CKOPT пользователь может разрешить подключение внутреннего конденсатора 36 пФ между XTAL1 и GND, тем самым, исключая необходимость применения внешнего конденсатора.

Генератор может работать в четырех различных режимах, каждый из которых ориентирован на специфический частотный диапазон. Рабочий режим выбирается конфигурационными битами CKSEL3..0 (см. табл. 2.22).

Таблица 2.22. Рабочие режимы внешнего RC-генератора

CKSEL3..0 Частотный диапазон, МГц
0 - 0.9
0.9 - 3.0
3.0 - 8.0
8.0 - 12.0

После разрешения работы данного генератора длительность задержки при старте определяется установками конфигурационных бит (см. табл. 2.23).

Таблица 2.23. Длительность задержек при старте после выбора внешнего RC-генератора

SUT1..0 Длительность задержки при выходе из режима выключения и экономичного режима Дополнительная задержка после сброса (VCC= 5.0В) Рекомендуемая область применения
18 CK(1) - Включен детектор питания BOD
18 CK 4.1 мс Быстро нарастающее питание
18 CK 65 мс Медленно нарастающее питание
6 CK (1) 4.1 мс Быстро нарастающее питание или включенный детектор питания BOD

Примечание. Данная опция не должна использоваться на тактовых частотах близких к максимальной.

Встроенный калиброванный RC-генератор. Встроенный калиброванный RC-генератор формирует фиксированные тактовые частоты 1.0, 2.0, 4.0 или 8.0 МГц. Данные значения частот являются номинальными и определены для напряжения питания 5В при 25C. Одна из этих частот может быть выбрана в качестве тактовой, если запрограммировать конфигурационные биты CKSEL в соответствии с табл. 2.24. После выбора микроконтроллер будет работать без внешних компонентов. Конфигурационный бит CKOPT должен быть всегда незапрограммированным, если используется внутренний RC-генератор. В процессе сброса калибровочный байт аппаратно записывается регистр OSCCAL, тем самым автоматически выполняя калибровку RC-генератора. При питании 5В, температуре 25C и выбранной частоте генератора 1.0 МГц данный метод калибровки обеспечивает погрешность генерации частоты не хуже ± 3% от номинального значения. Использование методов калибровки во время работы микроконтроллера позволяет достичь точности ± 1% при любой заданной температуре и напряжении VCC. При использовании данного генератора в качестве тактового генератор сторожевого таймера также останется использоваться для тактирования сторожевого таймера и для задания длительности задержки при сбросе.

Таблица 2.24. Режимы встроенного калиброванного RC-генератора

CKSEL3..0 Номинальная частота, МГц
1.0
2.0
4.0
8.0

Примечание. Микроконтроллер поставляется с установкой CKSEL3..0=0001.

После выбора данного генератора длительность задержки при запуске микроконтроллера определяется установками конфигурационных бит SUT (см. табл. 2.25). Выводы XTAL1 и XTAL2 должны быть оставлены неподключенными (NC).

Таблица 2.25. Длительности задержек при запуске с различными настройками встроенного калиброванного RC-генератора

SUT1..0 Длительность задержки при выходе из режима выключения и экономичного режима Дополнительная задержка после сброса (VCC= 5.0В) Рекомендуемые условия для применения
6 CK - Включен детектор питания BOD
6 CK 4.1 мс Быстро нарастающее питание
6 CK 65 мс Медленно нарастающее питание
Зарезервировано

Примечание. Микроконтроллер поставляется с данной установкой

SUT1..0= 10

Регистр калибровки генератора – OSCCAL . (Регистр OSCCAL недоступен в режиме совместимости с ATmega103).

Биты 7..0 – CAL7..0.Калибровочное значение для генератора. Запись значения калибровочного байта в данный регистр приведет к подстройке генератора на номинальную частоту. В процессе сброса калибровочное значение для частоты 1МГц (расположен в старшем байте строки сигнатуры) автоматически записывается в регистр OSCCAL. Если встроенный RC-генератор используется на других частотах, то калибровочный байт необходимо записывать программно. Для этого необходимо с помощью программатора считать значение калибровочного байта, затем сохранить его значение во флэш-память или EEPROM. После этого, калибровочное значение может быть считано программно, а затем записано в регистр OSCCAL. Если в регистр OSCCAL записать ноль, то выбирается минимальная частота. Запись ненулевого значения приводит к повышению частоты генератора. Запись $FF – к выбору максимальной частоты. Калиброванный генератор используется для синхронизации доступа к EEPROM и флэш-памяти. Во время выполнения записи в EEPROM или во флэш-память не следует выполнять калибровку на частоту выше на 10% от номинальной. В противном случае, запись в EEPROM или во флэш-память может быть некорректной. Обратите внимание, что генератор откалиброван отдельно на частоты 1.0, 2.0, 4.0 или 8.0 МГц.

Внешняя синхронизация. Если необходимо тактировать микроконтроллер от внешнего источника, то его необходимо подключить к выводу XTAL1 (рис. 2.16). В этом случае внешняя синхронизация должна быть разрешена записью в конфигурационные биты CKSEL значения “0000”. Если запрограммировать конфигурационный бит CKOPT, то между XTAL1 и GND будет подключен внутренний конденсатор номиналом 36 пФ.

После выбора данного источника синхронизации длительность задержки при запуске определяется конфигурационными битами SUT как показано в табл. 2.26.

Таблица 2.26. Длительность задержки при запуске при выборе внешней синхронизации

SUT1..0 Длительность задержки при выходе из режима выключения и экономичного режима Дополнительная задержка после сброса (VCC= 5.0В) Рекомендуемые условия для применения
6 CK - Включен детектор питания BOD
6 CK 4.1 мс Быстро нарастающее питание
6 CK 65 мс Медленно нарастающее питание
Зарезервировано

После подключения внешнего тактового источника необходимо избегать внезапных изменений его частоты для гарантирования стабильности работы микроконтроллера. Если на следующем такте частота изменится более чем на 2% по сравнению с предыдущим, то поведение микроконтроллера может стать непредсказуемым. Данный механизм реализован для гарантирования нахождения микроконтроллера в состоянии сброса в процессе таких изменений тактовой частоты.

Регистр специальных функций ввода-вывода. В некоторых микроконтроллерах семейства AVR имеется регистр специальных функций.

Регистр специальных функций ввода-вывода SFIOR

Разряд
  TSM - - - ACME PUD PSR0 PSR321
R/W   R/W R R R R/W R/W R/W R/W
Исходное значение

Бит 7 – TSM. Режим синхронизации таймера-счетчика. Установка бита TSM активизирует режим синхронизации таймеров-счетчиков. В данном режиме после установки бита PSR0 или PSR321 соответствующий предделитель будет постоянно находиться в сброшенном состоянии. В этом состоянии гарантируется, что все соответствующие таймеры-счетчики будут остановлены и могут быть одинаково настроены без риска изменения состояния одного из них во время конфигурации. Если после этого сбросить бит TSM, то биты PSR0 и PSR321 сбрасываются аппаратно, а таймеры-счетчики начинают счет одновременно.

Биты 6-4.Зарезервированы.

Бит 3 – ACME.Выбор мультиплексора на входе аналогового компаратора. Если выключен аналогово-цифровой преобразователь (ADEN=0 в регистре ADCSRA) и в данный разряд записана 1, то к инвертирующему входу аналогового компаратора подключен выход аналогового мультиплексора АЦП. Сброс бита в 0 приведет к подключению инвертирующего входа аналогового компаратора к выводу микроконтроллера AIN1.

Бит 2 – PUD. Бит PUD выключения всех подтягивающих резисторов на всех портах.

Бит 1 - PSR0. Сброс предделителя таймера-счетчика 0. Если данный бит установлен, то предделитель таймера-счетчика 0 сбрасывается. Бит сбрасывается аппаратно сразу после установки. Если данный бит устанавливается, когда таймер-счетчик 0 работает в асинхронном режиме, то он остается равным 1 пока не сбросится предделитель таймера-счетчика 0. Данный бит не сбрасывается аппаратно, если бит TSM=1.

Бит 0 – PSR321. Сброс предделителя таймеров-счетчиков 1, 2 и 3. Установка бита приведет к сбросу предделителя таймеров-счетчиков 1, 2 и 3. Бит обычно сразу сбрасывается аппаратно за исключением, когда установлен бит TSM. Обратите внимание, что таймеры-счетчики 1, 2 и 3 используют один и тот же предделитель и сброс этого предделителя оказывает влияние на все три таймера.

Контрольные вопросы

1. Адресное пространство МК. Виды памяти МК и их особенности. Назначение. Основные параметры.

2. Организация памяти на статическом ОЗУ МК.

3. Режимы адресации памяти программ и данных. Анализ режимов адресации. Привести примеры использования различных режимом адресации.

4. Интерфейс внешней памяти и его характеристики.

5. Сигналы управления внешней памятью и их назначение.

6. Привести схему подключения внешней памяти.

7. Прокомментируйте биты регистра управления внешней памятью XMCRA

8. Для чего нужны состояния ожидания при обращении к памяти?

9. Как разбить память на сектора?

10. Адресация внешней памяти и ее особенности.

11. Что означает «износостойкостью EEPROM»?

12. Чтение и запись EEPROM. Регистры управления доступом к EEPROM.

13. Адресные регистры EEPROM– EEARH, EEARL и их назначения. Приведите пример записи адреса в регистры EEARH, EEARL.

14. EEDR- Регистр данных (EEDR) EEPROM и его назначение. Приведите пример записи данных в регистр EEDR.

15. Приведите формат регистра управления EEPROM – EECR и объясните назначение битов регистра. Для чего они используются.

16. В какой последовательности производится запись (чтение) данных в (из) EEPROM? Приведите алгоритм и дайте разъяснения.

17. Перечислите причины нарушения содержимого EEPROM.

18. Приведите (с комментариями) подпрограммы записи и чтения EEPROM.

19. Приведите примеры команд доступа к ОЗУ с использованием различных режимов адресации.

20. Биты защиты памяти программ и данных и их назначение. Особенности программирования битов защиты.

21. Перечислите режимы защиты памяти МК.

22. Конфигурационные биты и их назначение. Приведите примеры их использования.

23. Калибровочный байт. Назначение.

Наши рекомендации