Калибровочные ячейки и ячейки идентификаторов

Калибровочные ячейки и ячейки идентификаторов

Любую модель  AVR на этапе программирования можно опознать по  содержимому трех 8-разрядных ячеек идентификаторов. Первый байт представляет собой код производителя и, естественно, одинаковый для вех микроконтроллеров. Его значение 0x1E. Во втором байте находится код объема FLASH-памяти программ. Он может иметь одно из ряда значений 0x90…0x98. Наименьшему числу соответствует объем FLASH 1 кб, наибольшему – объем 256 кб. Последняя из ячеек идентификаторов содержит код модели в диапазоне 0x01…0x0C.

Второй и третий байты у различных моделей могут быть одинаковыми, но их комбинация в пределах семейства уникальна. Микроконтроллеры ATmega8 содержат идентификаторы 0x1E, 0x93, 0x07.

Все без исключения AVR-микроконтроллеры могут использовать в качестве источника тактовой частоты внутренний RC-генератор (за выбор источника отвечают конфигурационные ячейки   CKSEL3:CKSEL0). Причем в большинстве моделей этот генератор способен работать на нескольких частотах. Так, у ATmega8 это 1,2,4 и 8 МГц. Однако действующая технология изготовления кристаллов дает значительный разброс по этому параметру.

Для управления частотой RC-генератора, используется РВВ OSCCAL. Изменение содержимого OSCCAL от 0 до 0xFF позволяет перестраивать генератор в пределах -100…+200% от номинальной частоты. Точные же значения, при которых погрешность хода не превышает 1% при температуре 25 C (или 3% во всем рабочем диапазоне температур), определены на заводе изготовителе и записаны  в калибровочные ячейки микроконтроллера. Естественно, что количество калибровочных ячеек равно числу возможных частот  RC-генератора.

В моделях, где доступна только одна частота, константа из калибровочной ячейки загружается при старте в регистр OSCCAL аппаратно. Тем самым производится автоматическая настройка RC-генератора. То же самое относится и ко всем остальным микроконтроллерам, но только по отношению к наименьшей из ряда опорных частот. Например, у ATmega8 при старте в OSCCAL копируется лишь содержимое ячейки с калибровочной константой на частоту 1 МГц. Во всех остальных случаях на этапе программирования необходимо считать значение соответствующей калибровочной ячейки и поместить его по известному адресу в энергонезависимую память FLAS или EEPROM, а прикладная программа в ходе инициализации должна считать это число и скопировать его в регистр настройки генератора.

Перейти к следующей части:


Категория: Микроконтроллеры
Метки:

Написать коментарий

*
= 3 + 8

Добавить изображение

Последние статьи