Как стать программистом Как устроен компьютер. Что такое программа. Как написать свою программу. И многое другое узнаете вы из этой книги. Получить бесплатно! |
Источники тактовых сигналов
Микроконтроллеры / Для начинающих / Архитектура /Что нужно для того, чтобы стать профессиональным разработчиком программ для микроконтроллеров и выйти на такой уровень мастерства, который позволит с лёгкостью найти и устроиться на работу с высокой зарплатой (средняя зарплата программиста микроконтроллеров по России на начало 2017 года составляет 80 000 рублей). Подробнее... |
Микроконтроллеры AVR имеют следующие варианты источника тактовых сигналов (часов). Каждый вариант выбирается установкой конфигурационных битов CKSEL как показано ниже. Тактовые сигналы от выбранного источника поступают на вход генератора часов AVR и направляются в соответствующие модули.
Источник сигнала | CKSEL, биты 1 и 0 |
Внешний источник сигнала | 00 |
Откалиброванный на 4,8 или 9,6 МГц внутренний генератор | 01, 10 |
Внутренний генератор на 128 кГц | 11 |
ПРИМЕЧАНИЕ
Конфигурационный бит (fuse-бит) считается задействованным (установленным, включенным), если он равен 0.
ВНИМАНИЕ!
Без особой надобности не следует изменять конфигурационные биты. Эти биты находятся в особой области памяти и могут быть установлены или сброшены только с помощью программатора. Неумелое использование этих битов может привести к тому, что вы вообще не сможете использовать микроконтроллер.
Различные варианты выбора для каждого варианта синхронизации приведены в следующих разделах. Когда процессор просыпается при включении питания или из режима энергосбережения (спящего режима), выбранный источник синхронизации используется во время запуска, обеспечивая устойчивую работу генератора до начала выполнения команд.
Когда процессор запускается после сброса, существует дополнительная задержка, позволяющая достичь устойчивого уровня сигнала перед началом нормальной работы.
Генератор сторожевого таймера (WDT) используется для расчёта времени этой задержки запуска в реальном времени. Количество циклов генератора WDT, используемых для каждого тайм-аута, показано в таблице 6-2.
Задержка, мс | Кол-во циклов |
4 | 512 |
64 | 8К (8192) |
Внешний источник сигнала
Чтобы управлять устройством от внешнего источника тактовых сигналов, вывод CLKI следует подключать так, как показано на рисунке 6-2. Для запуска устройства от внешнего источника fuse-биты CKSEL должны быть запрограммированы на 00 (см. таблицу 6.1).
При выборе внешнего источника время запуска определяется fuse-битами SUT, как показано в таблице 6-3.
SUT[1:0] | Время запуска из режима энергосбережения и при включении питания | Дополнительная задержка после сброса | Рекомендуется использовать |
00 | 6 тактов | 14 тактов | Включение BOD (система слежения за питанием) |
01 | 6 тактов | 14 тактов + 4 мс | Быстрый рост мощности |
10 | 6 тактов | 14 тактов + 64 мс | Медленный рост мощности |
11 | Не используется |
При использовании внешних источников тактового сигнала необходимо избегать резких изменений тактовой частоты для обеспечения устойчивой работы микроконтроллера. Изменение частоты более чем на 2% от одного такта к следующему может привести к непредсказуемому поведению. Необходимо предусмотреть возможность сброса микроконтроллера во время таких изменений тактовой частоты.
Обратите внимание, что предварительный делитель частоты системных часов может использоваться для изменения внутренней тактовой частоты во время выполнения программы, обеспечивая при этом устойчивую работу.
Откалиброванный внутренний генератор 4,8/9,6 МГц
Калиброванный внутренний генератор предоставляет источник тактовой частоты 4,8 или 9,6 МГц. Это номинальная частота при напряжении питания 3 В и температуре 25°C. Если частота превышает указанную в характеристиках прибора (зависит от напряжения питания), то fuse-бит CKDIV8 необходимо запрограммировать так, чтобы внутренняя тактовая частота делилась на 8 во время запуска.
Внутренний генератор выбирается в качестве системных часов путем программирования fuse-бита CKSEL, как показано в таблице 6-4. Если выбран этот параметр, генератор будет работать без внешних компонентов.
CKSEL[1:0] | Номинальная частота, МГц |
10* | 9,6 |
01 | 4,8 |
* Устройство поставляется с этим выбранным параметром.
Во время сброса аппаратное обеспечение загружает данные калибровки в регистр OSCCAL и тем самым автоматически калибрует генератор. Существуют отдельные калибровочные байты для работы с частотой 4,8 и 9,6 МГц, но при сбросе автоматически загружается только один байт. Это связано с тем, что единственная разница между режимом 4,8 МГц и 9,6 МГц - это внутренний делитель часов.
Изменяя регистр OSCCAL из SW, можно получить более высокую точность калибровки, чем при использовании заводской калибровки. Подробнее об этом на стр. 119 оригинальной документации (я расскажу об этом позже).
Когда этот генератор используется в качестве часов микросхемы, генератор сторожевого таймера по-прежнему будет использоваться для сторожевого таймера и для тайм-аута сброса.
При выборе этого генератора время запуска определяется fuse-битами SUT, как показано в таблице 6-5.
SUT[1:0] | Время запуска при включении питания | Дополнительная задержка после сброса (Vcc=5В) | Рекомендуется использовать |
00 | 6 тактов | 14 тактов** | Включение BOD (система слежения за питанием) |
01 | 6 тактов | 14 тактов + 4 мс | Быстрый рост мощности |
10* | 6 тактов | 14 тактов + 64 мс | Медленный рост мощности |
11 | Не используется |
* Устройство поставляется с этим выбранным параметром. ** Если fuse-бит RSTDISBL запрограммирован, это время запуска будет увеличено до 14CK + 4 мс, чтобы обеспечить возможность ввода режима программирования
Внутренний генератор 128 кГц
Внутренний генератор на 128 кГц - это генератор для режима низкого потребления, предоставляющий тактовую частоту 128 кГц. Частота зависит от напряжения питания, температуры и погрешностей партии. Эти часы можно выбрать в качестве системных часов, запрограммировав fuse-биты CKSEL в “11".
При выборе этого источника синхронизации время запуска определяется fuse-битами SUT, как показано в таблице 6-6.
SUT[1:0] | Время запуска из режима энергосбережения и при включении питания | Дополнительная задержка после сброса | Рекомендуется использовать |
00 | 6 тактов | 14 тактов* | Включение BOD (система слежения за питанием) |
01 | 6 тактов | 14 тактов + 4 мс | Быстрый рост мощности |
10* | 6 тактов | 14 тактов + 64 мс | Медленный рост мощности |
11 | Не используется |
* Если fuse-бит RSTDISBL запрограммирован, это время запуска будет увеличено до 14CK + 4 мс, чтобы обеспечить возможность ввода режима программирования
Источник тактовой частоты по умолчанию
Устройство поставляется с CKSEL = “10”, SUT = “10” и с запрограммированными CKDIV8. Таким образом, настройка источника синхронизации по умолчанию - это внутренний RC-генератор, работающий на частоте 9,6 МГц с самым длительным временем запуска и предделителем тактовой частоты равным 8. Эта настройка по умолчанию гарантирует, что все пользователи могут настроить нужный источник синхронизации с помощью системного или высоковольтного программатора.
Вступить в группу "Основы программирования"
Подписаться на RUTUBE-канал Подписаться на Дзен-канал Подписаться на рассылки по программированию |
Микроконтроллеры для ЧАЙНИКОВ
Бесплатная рассылка о микроконтроллерах. Рассылка содержит как бесплатную информацию для начинающих, так и ссылки на платные продукты (книги, видеокурсы и др.) для тех, кто захочет вникнуть в тему более глубоко. Подробнее... |