А
ЦП
– это схема, которая преобразует
аналоговую информацию с датчиков в
цифровую. В AVR контроллерах АЦП
10-разрядное. Время преобразования одного
показания от 13 до 250 микросекунд в
зависимости от битности измерения, а
также от тактовой частоты генератора,
тактирующего контроллер. Так же АЦП
поддерживает запуск по прерываниям
Регистр ADMUX — это регистр для управления каналами мультиплексора АЦП
REFS1-REFS0 — комбинация битов задает опорную частоту от внутреннего генератора. (00 – опорная частота от контакта AREF, 10- от AVCC, 11 – от внутреннего источника с внешним конденсатором на AREF)
ADLAR – позволяет выравнивать результат преобразования по левому краю при записи в него единички.
MUX2-MUX0 данные биты определяют какой из восьми аналоговых каналов (0 - 7) будет подключен к АЦП.
Регистр управления и состояния АЦП - ADCSR - (ADC Control and Status Register)
ADEN (ADC Enable) включает или выключает АЦП. Единичка – включение.
ADSC (ADC Start Conversion) режим однократного преобразования, для запуска каждого цикла преобразования необходимо устанавливать единичку.
ADFR (ADC Free Run Select) при единичке АЦП будет работать в циклическом режиме и обращаться к регистрам один за другим.
ADIF (ADC Interrupt Flag) флаг прерываний. После преобразований и обновления регистров данных устанавливается в единичку.
ADIE (ADC Interrupt Enable) при установленных в состояние 1 бите ADIE и I-бите регистра SREG активируется прерывание по завершению преобразования АЦП.
ADPS2 - ADPS0 выбирают режим работы предделителя тактовой частоты. (2,2,4,8,16,32,64,128)
Регистры данных - ADCL и ADCH
Таймеры-счетчики
– это устройства, предназначенные для
сравнения, генерации ШИМ-сигнала и
прерываний. Atmega8 их три штуки (2-8 разрядных
и 1-16-п разрядный).
Регистр таймера-счетчика (TCNT0) и регистр порога сравнения (OCR0) - 8-разр. регистры. Сигналы запроса на прерывание представлены как флаги прерываний таймера в регистре TIFR. Все прерывания индивидуально маскируются с помощью регистра маски прерываний таймеров (TIMSK). Регистры TIFR и TIMSK не представлены на функциональной схеме, т.к. они совместно используются с другими таймерами микроконтроллера.
Таймер-счетчик может тактироваться через предделитель внутренне или асинхронно через внешние выводы TOSC1/2. Асинхронная работа управляется регистром асинхронного состояния (ASSR). Значение регистра порога сравнения с двойной буферизацией (OCR0) непрерывно сравнивается со значением таймера-счетчика. Результат сравнения может использоваться для генерации сигналов с ШИМ или прямоугольных импульсов переменной частоты на выводе OC0
В регистре TCNT0 происходит счёт импульсов. Регистр доступен как для чтения, так и для записи.
OCR0. Его значение постоянно сравнивается со счетным регистром TCNT0, и в случае совпадения таймер может выполнять какие-то действия
Регистр управления таймером-счетчиком 0 - TCCR0.
FOC0 (Force Output Compare) бит предназначен для принудительного изменения состояния вывода OC0.
Биты WGM01, WGM00 (Wave Generator Mode) - определяют режим работы таймера-счетчика Т0 (00 – нормальный режим, 01 - Phase Correct PWM, 10 - сброс таймера при совпадении. 11 - FastPWM)
Биты COM01, COM00 (Compare Match Output Mode) - определяют поведение вывода OC0. Если хоть один из этих битов установлен в 1, то вывод OC0 перестает функционировать как обычный вывод общего назначения и подключается к схеме сравнения таймера счетчика Т0
Биты CS02, CS01, CS00 (Clock Select) - определяют коэффициент делителя частоты.
Регистр масок прерывания по таймерам/счетчикам – TIMSK
OCIE0: (Timer/Counter0 Output Compare Interrupt Enable) - Разрешение прерывания по совпадению таймера/счетчика0. При установленном бите OCIE0 и установленном бите I регистра статуса разрешается прерывание по совпадению содержимого регистра сравнения и состояния Т-С1.
TOIE0 (Timer/Counter0 Overflow Interrupt Enable) - Разрешение прерывания по переполнению таймера/счетчика0. При установленном бите TOIE0 и установленном бите I регистра статуса разрешается прерывание по переполнению таймера/счетчика0.
Регистр флагов прерываний по таймерам/счетчикам TIFR
OCF0: Output Compare Flag 0 - Флаг 0 совпадения состояния таймера/счетчика0 и содержимого регистра OCR0
TOV0: Timer/Counter0 Overflow Flag - Флаг переполнения таймера/счетчика0.
Обычный режим работы. Самый распространенный режим, когда таймер просто считает приходящие импульсы и при переполнении счетного регистра устанавливает флаг прерывания по переполнению. При этом счетный регистр сбрасывается в 0 и подсчет импульсов начинается сначала.
Режим подсчета импульсов (Сброс при совпадении). Также называется CTC. В этом режиме при совпадении счетного регистра с одним из регистров сравнения выставляется флаг прерывания по совпадению, счетный регистр обнуляется и подсчет начинается сначала. При этом по совпадению может меняться сигнал на выходе таймера, соответствующего используемому регистру совпадения.
Режим ШИМ. В данном режиме изменяется ширина импульса в зависимости от значения, записанного в регистр совпадения. Для 8-битного таймера, к примеру, если записать в регистр совпадения число 10, состояние логической единицы на выходе совпадения будет 10 тактов из 256, а логический 0 246 тактов из 256 (для неинверсного режима). В инверсном же режиме 10 тактов будет состояние логического 0 и 246 тактов логической единицы.
Режим коррекции фазы ШИМ. В обычном режиме ШИМ мы получаем плавающую фазу выходного сигнала. Для того, чтобы этого избежать, в режиме коррекции фазы ШИМ при достижении максимального значения, счетный регистр таймера/счетчика начинает уменьшатся. Это происходит циклически.
Сторожевой
таймер представляет собой
аппаратно-реализованную схему контроля
над зависанием системы. Это таймер,
который периодически сбрасывается
контролируемой системой. Если вдруг
сброса не произошло за определённый
интервал времени после предыдущего
сброса данного таймера, то происходит
принудительная перезагрузка
микроконтроллера.
Управляющий регистр WDTCSR
WDIF (Watchdog Interrupt Flag) флаг прерывания. Устанавливается в 1 в случае истечения интервала времени таймера. Сбрасывается аппаратно.
WDIE (Watchdog Interrupt Enable) бит разрешения прерываний от таймера. если установлен в 1, то прерывания разрешены, если в 0 — запрещены.
WDP2:WDP0 (Watchdog Timer Prescaler) биты, устанавливающие коэффициент деления предделителя сторожевого таймера.
WDCE (Watchdog Change Enable) бит изменения, который должен быть предварительно включен перед тем, как мы соберёмся внести изменения в предделитель с целью изменения коэффициента деления либо для отключения таймера путём занесения в бит WDE значения 0. Сбрасывается аппаратно после четырех тактов.
WDE (Watchdog System Reset Enable) а вернее бит включения режима перезагрузки системы по истечению интервала времени сторожевого таймера.
SREG — это регистр состояния в AVR. Это 8-разрядный регистр, в котором каждый бит (разряд) отображает состояние какой-либо операции (или результата операции).
Флаг I Global Interrupt Enable (Флаг глобального разрешения прерываний), Флаг T Bit Copy Storage (Хранение Копируемого Бита), Флаг H Half Carry Flag (Флаг половинного переноса), Флаг S Sign Bit (Флаг знака), Флаг V Two’s Complement Overflow Flag, Флаг N Negative Flag (Флаг отрицательного значения), Флаг Z Zero Flag (Флаг нуля), Флаг C Carry Flag (Флаг переноса).
Регистр управления MCU – MCU
SRE: External SRAM Enable – Разрешение внешней SRAM. Установленный в 1 бит SRE разрешает обращение к внешней SRAM данных и переводит работу выводов Порт A, С, WR и RD на выполнение альтернативной функции. Затем бит SRE перенастраивает установки направлений любых выводов в соответствующих регистрах направления данных. Очистка бита SRE (установка в 0) запрещает обращение к внешней SRAM и восстанавливает нормальные установки направлений выводов и данных.
SRW: External SRAM Wait State - Режим ожидания внешней SRAM. При установленном в 1 бите SRW к циклу обращения к внешней SRAM добавляется один цикл ожидания.
SE: Sleep Enable – Разрешение режима Sleep. Установленный в 1 бит SE разрешает перевод MCU в режим Sleep по команде SLEEP.
SM1/SM0: Sleep Mode Select bits 1 and 0 - Биты выбора режима Sleep (00 -idle {останавливается работа МК}, 01 – не используется, 10 – Power Down {останавливается практически всё, кроме обработки внешних прерываний}, 11 – Power Save {в работе остается ТС})
Обращение к EEPROM ведется посредством регистров, расположенных в пространстве В/В. Время обращения при записи составляет от 2,5 до 4 мс, в зависимости от напряжения VCC
Регистр адреса EEPROM- EEARH, EEARL.
Регистр данных EEPROM – EEDR
При чтении регистр EEDR содержит данные, считываемые из EEPROM по адресу, определяемому EEAR.
Регистр управления EEPROM – EECR
EERIE (EEPROM Ready Interrupt Enable) – разрешение прерывания по готовности EEPROM. При установленных в состояние 1 бите EERIE и I-бите регистра SREG разрешается прерывание по готовности EEPROM.
EEMWE (EEPROM Master Write Enable) - Управление разрешением записи EEPROM. Бит EEMWE определяет, будет ли установленный в состояние 1 бит EEWE разрешать запись в EEPROM. При установленном в состояние 1 бите EEMWE установка бита EEWE приведет к записи в EEPROM по заданному адресу.
EEWE (EEPROM Write Enable) - Разрешение записи EEPROM. Сигнал разрешения записи является стробом записи в EEPROM. Запись установленных данных по установленному адресу EEPROM выполняется по установке бита EEWE. При этом бит EEMWE обязательно должен быть в состоянии 1, иначе запись не произойдет.
EERE (EEPROM Read Enable) - Разрешение чтения EEPROM. Сигнал разрешения чтения является стробом чтения EEPROM. Бит EERE должен быть установлен по установлении в регистре EEAR требуемого адреса. После аппаратной очистки бита EERE считываемые данные будут располагаться в регистре EEDR.
Lock Bits. При записи нуля в LB1 блокируется запись данных во Flash и EEPROM память. Одновременно блокируется возможность изменять конфигурационные ячейки. Если записать ноль еще и в LB2, то блокируется и возможность чтения всех данных. После этого прочитать содержимое вашей программы становится невозможным. Для повторного использования микроконтроллера нужно выполнить команду «Стирание микросхемы». При этом вся информация, записанная в микросхему, теряется, зато способность чтения и модификации восстанавливается.