
- •Микроконтроллеры
- •Базовая информация о микроконтроллерах
- •Сущность и назначение микроконтроллера. Семейства микроконтроллеров
- •Состав микроконтроллера
- •Назначение микроконтроллера
- •Cемейства микроконтроллеров
- •Отправная точка. Микроконтроллерi8051
- •Основные характеристики микроконтроллераi8051
- •Назначение выводовi8051
- •Структурная схемаi8051
- •Микроконтроллеры семействаavrкомпанииatmel
- •Общая характеристика архитектуры, системы команд и ассемблераAvr
- •Состав семейства и основные характеристики микроконтроллеровAvr
- •Структура ассемблерного кодаAvr
- •Группы команд микроконтроллеров avr
- •Директивы ассемблераAvr
- •Список директив ассемблераAvr
- •Директива byte
- •Директива cseg
- •Директива db
- •Директива def
- •Директива device
- •Директива dseg
- •Директива dw
- •Директивы macro иEndmacro
- •Директива equ
- •Директива set
- •Микроконтроллер atmega8535
- •Характеристики, назначение выводов и структура микроконтроллера aTmega8535
- •Характеристики микроконтроллера aTmega8535
- •Назначение выводов микроконтроллера aTmega8535
- •Структура микроконтроллера aTmega8535
- •Сброс микроконтроллера aTmega8535. Режимы пониженного энергопотребления. Сигналы запроса внешних прерываний. Регистры управления
- •Сброс микроконтроллера aTmega8535
- •Регистр mcucsr (mcu Control and Status Register)
- •Регистр mcucr (mcu Control Register)
- •Режимы пониженного энергопотребления
- •Форма сигналов запроса внешних прерываний
- •Регистры общего назначения, регистр состояния и указатель стека микроконтроллера aTmega8535
- •Регистры общего назначения
- •Регистр состояния (sreg)
- •Указатель стека
- •Ввод-вывод
- •Регистры и команды ввода-вывода
- •Порты ввода-вывода
- •Прерывания
- •Источники и таблица векторов прерываний
- •Регистр gicr (General Interrupt Control Register)
- •Внешние прерывания
- •Регистр gifr (General Interrupt Flag Register)
- •Таймеры микроконтроллера aTmega8535
- •Общая информация о таймерах микроконтроллера aTmega8535
- •Множество таймеров aTmega8535
- •Регистр timsk (Timer/Counter Interrupt Mask Register)
- •Регистр tifr (Timer/Counter Interrupt Flag Register)
- •Примеры программ работы с таймером
- •Таймер t0
- •Назначение и свойства таймера t0
- •Структура таймера t0
- •Регистры таймера t0
- •Регистр tccr0 (Timer/Counter Control Register)
- •Устройство сравнения таймера t0
- •Режимы работы таймера t0
- •Режим Normal
- •Режим ctc
- •Режим быстрой шим (fastPwMmode)
- •Режим шим с корректировкой фазы (Phase Correct pwm Mode)
- •Таймер t1
- •Назначение и свойства таймера t1
- •Структура таймера t1
- •Регистры таймера t1
- •Регистр tccr1a (Timer/Counter1 Control Register a)
- •Регистр tccr1b (Timer/Counter1 Control Register b)
- •Задание режима генерации сигнала битами wgm13:0
- •Устройство захвата (Input Capture Unit)
- •Режимы работы таймера t1
- •Список режимов работы таймера t1
- •Режим быстрой шим (fast pwm mode) таймера t1
- •Режим шим с корректировкой фазы (Phase Correct pwm Mode) таймера t1
- •Режим шим с корректировкой фазы и частоты (Phase and Frequency Correct pwm Mode) таймера t1
- •Таймер t2
- •Назначение и свойства таймера t2
- •Структура таймера t2
- •Регистры таймера t2
- •Регистр tccr2 (Timer/Counter Control Register)
- •Устройство сравнения таймера t2
- •Режимы работы таймера t2
- •Режим Normal
- •Режим ctc
- •Режим быстрой шим (fast pwm mode)
- •Режим шим с корректировкой фазы (Phase Correct pwm Mode)
- •Асинхронный режим работы таймера t2. Регистр assr (Asynchronous Status Register)
Структура микроконтроллера aTmega8535
Рис. Структурная схема ATmega8535
Последние шесть из тридцати двух регистров могут быть использованы в качестве 16-разрядных указателей памяти данных. Они обозначаются как X, Y и Z. Z может быть использован как указатель на справочную таблицу во Flash-памяти программ.
АЛУ поддерживает однооперандные арифметические, логические и битовые операции над регистром или двухоперандные над двумя регистрами или регистром и константой. Результат операций отражается в регистре состояния (Status Register, SREG). Некоторые реализации поддерживают также операции умножения и деления знаковых и беззнаковых чисел.
Поток управления обеспечивают команды условных и безусловных переходов (jump) и вызовов подпрограмм (call), которые прямо могут адресовать все адресное пространство. Большинство команд AVR 16-битные, но есть и 32-битные.
Все пространства памяти в архитектуре AVR являются линейными регулярными картами памяти.
Память программ делится на две части: загрузочную (Boot Program section) и прикладную (Application Program section). Обе секции имеют биты блокировки для защиты по записи или чтению-записи.
При вызове подпрограмм и обработке прерываний адрес возврата сохраняется в стеке, который размещается в SRAM-памяти данных. Все пользовательские программы должны инициализировать указатель стека (SP) в reset-программе. SP доступен по чтению-записи в пространстве ввода-вывода.
В архитектуре AVR имеются пять способов адресации для доступа к SRAM-памяти данных.
Пространство ввода-вывода содержит 64 адреса, оно может быть доступно напрямую или как область данных, следующая за регистровым файлом, 0x20 - 0x5F.
Модуль прерываний включает управляющие регистры в пространстве ввода-вывода и глобальный флаг разрешения прерываний (Global Interrupt Enable Бит) в регистре состояния. Все прерывания имеют свой вектор (адрес) прерывания в таблице векторов прерывания (Interrupt Vector table). Приоритет прерывания определяется положением в таблице векторов прерывания. Чем меньше адрес, тем выше приоритет.
Сброс микроконтроллера aTmega8535. Режимы пониженного энергопотребления. Сигналы запроса внешних прерываний. Регистры управления
Сброс микроконтроллера aTmega8535
ATmega8535 имеет четыре источника сброса:
сброс по включении питания (Power-on Reset);
внешний сброс, происходит, когда на вход RESET# поступает сигнал низкого уровня в течение более чем одного такта;
сброс сторожевого таймера (Watchdog Reset);
Brown-out Reset, происходит, когда напряжение питания VCC падает ниже Brown-out Reset threshold (VBOT) и Brown-out Detector разрешен.
После сброса MCU начинает выполнение программы с Reset-вектора. Reset-вектор должен содержать команду RJMP на Reset-обработчик.
Регистр mcucsr (mcu Control and Status Register)
Регистр MCUCSR содержит бит управления распознаванием сигнала внешнего прерывания INT2 и флаги сброса MCU:
бит 6 — ISC2 (Interrupt Sense Control 2), бит управления распознаванием сигнала внешнего прерывания INT2;
бит 3 — WDRF (Watchdog Reset Flag), флаг сброса сторожевого таймера;
бит 2 — BORF (Brown-out Reset Flag);
бит 1 — EXTRF (External Reset Flag), флаг внешнего сброса;
бит 0 — PORF (Power-on Reset Flag), флаг сброса по включению питания.
Биты 7, 5 и 4 зарезервированы.
Таким образом, регистр MCUCSR позволяет определить источник сброса MCU. Флаги сбросов устанавливаются при осуществлении соответствующих событий, но сброс по включению питания, устанавливая PORF, очищает все остальные флаги. Конечно, все флаги сбросов могут быть очищены программно, что и рекомендуется делать сразу после чтения MCUCSR для отслеживания источников сброса.