Микроконтроллер aTmega64
Структура микроконтроллера ATmega64 приведена на Рис. 4 .9.
Рис. 4.9 Структура микроконтроллера ATmega 64.
Микроконтроллер имеет богатый набор средств, включающий в себя 32 рабочих регистра. Все они непосредственно подключены к арифметико-логическому устройству (АЛУ/ALU), позволяющий двум регистрам быть использованным в одной инструкции, выполняемой за один такт.
ATmega 64 обладает следующими особенностями: 64 кБ внутрисистемной программируемой Flash, 2 кБ EEPROM, 4 кБ SRAM, 53 линии ввода/вывода общего назначения, 32 регистра общего назначения, таймер реального времени (RTC), четыре таймера/счетчика с возможностью сравнения и режимом ШИМ, два интерфейса USART, байтовый интерфейс «Two-wire Serial Interface», восьмиканальный десятибитный АЦП с возможностью дифференциальной загрузки, программируемый сторожевой таймер (Watchdog Timer) с встроенным генератором, последовательный порт SPI, применяемый для отладки и программирования интерфейс JTAG.
Спящий режим останавливает CPU, в то время как SRAM, таймеры/счетчики, порт SPI и система прерываний продолжают функционировать. Режим Powerdown сохраняет содержимое регистров, но останавливает генератор, прекращая все другие функции контроллера да очередного прерывания или внешнего сброса. В режиме Power-save таймеры продолжают работать, позволяя пользователю поддерживать базовое время во время спящего режима.
Режим шумопонижения АЦП останавливает CPU и все модули ввода/вывода кроме таймеров и АЦП, снижая шум переключений во время преобразования АЦП.
В режиме Standby генератор работает в течение всего времени, пока устройство находится в спящем режиме. Это позволяет очень быстро «разбудить» контроллер с минимальным потреблением энергии. В режиме Extended Standby продолжают работать и генератор и таймеры.
Flash позволяет производить внутрисистемное перепрограммирование посредством SPI-интерфейса. Совмещение восьмибитного RISC процессора с Flash с возможностью внутрисистемного самопрограммирования на одном кристалле делает ATmega 64 мощным микроконтроллером с предоставляя очень гибкие и выгодные решения для применения в различных системах управления.
Описание выводов
VCC – питание цифровой части
GDN – общий
Port A (PA7..PA0) – восьми разрядный двунаправленный порт А с подтягивающими встроенными сопротивлениями (с возможностью программирования включения/отключения сопротивлений для каждого разряда). Выводы порта могут находиться в одном из трех состояний.
Port B (PB7..PB0) -//-
Port C (PC7..PC0) -//-
Port D (PD7..PD0) -//-
Port E (PE7..PE0) -//-
Port F (PF7..PF0) -//-
Port G (PG4..PG0) -//-
RESET – вход внешнего сброса микроконтроллера
XTAL1 – вход инвертирующего усилителя генератора или вход внешнего тактового генератора
XTAL2 – выход инвертирующего усилителя генератора.
AVCC – питание АЦП. При использовании АЦП этот вход должен быть подключен к источнику питания через фильтр, а в противном случае – напрямую к источнику питания цифровой части.
AREF – вход опорного напряжения АЦП.
PEN – вывод для режима последовательного программирования SPI.
Регистры общего назначения расположены в общем адресном пространстве микроконтроллера. Шесть старших регистров могут быть использованы в качестве шестнадцатиразрядных регистров при работе с двухбайтными инструкциями (регистры X, Y, Z).
Рис. 4.10 Структура регистрового файла
В адресном пространстве микроконтроллера выделены:
Регистровый файл (область регистров общего назначения);
Регистры ввода/вывода;
Область данных;
Область встроенной оперативной памяти (SRAM).
Кроме того, в микроконтроллере имеется перепрограммируемое постоянное запоминающее устройство с электрическим стиранием информации. Допускается внутрисхемное программирование EEPROM (выполняемой программой).
Рис. 4.11 Структура адресного пространства микроконтроллера
Указатель стека – шестнадцатиразрядный регистр, указывающий положение стека. Он адресуется отдельно младшим и старшим регистрами SPL и SPH.
Рис. 4.12 Структура указателя стека
В контроллере имеется три порта ввода-вывода B (восьмиразрядный), C (шестиразрядный), D(восьмиразрядный). Каждая линия которых может быть запрограммирована на ввод данных, вывод данных или на выполнение альтернативных функций.
Регистр состояния SREG. Разряды регистра отражают результат выполнения операций с данными.
Рис. 4.13 Структура регистра SREG
Разряды регистра имеют следующее назначение:
I - общее разрешение прерываний (0 – все прерывания запрещены, 1 – разрешены прерывания, у которых установлены маски в соответствующих регистрах):
Т - приемник для инструкций при работе с битами;
H - флаг переноса из младшего полубайта;
S - флаг знака результата операции;
V - флаг переполнения;
N - флаг отрицательного числа (индицирует значение старшего разряда результата);
Z - флаг нулевого результата (устанавливается в 1 при равенстве результата нулю);
С - флаг переноса (устанавливается если в результате выполнения операции произошел перенос).
В микроконтроллере имеется встроенный RC-генератор, к которому допускается подключение внешней RC-цепи, а также программная коррекция рабочей частоты через регистр калибровко генератора OSCCAL.
Рис. 4.14 Подключение внешней частотозадающей цепи
Регистр управления микроконтроллером MCUCR разрешает режим сна (SLEEP), устанавливает его вид, а также определяет причину прерывания на входах INT0 и INT1.
Рис. 4.15 Структура регистра MCUCR
Разряды регистра имеют следующее назначение:
SE - разрешение перехода в режим сна по команде SLEEP;
SM2, SM1, SM0 - выбор вида режима сна;
ISC11, ISC10 - выбор воздействия на INT1 для формирования прерывания;
ISC01, ISC00 - выбор воздействия на INT0 для формирования прерывания.
Регистр управления прерываниями GICR разрешает прерывания от входов внешних прерываний INT0 и INT1. Установка 6-го разряда в нем разрешает прерывания от INT0, а 7-го – от INT1.
Регистр флагов прерываний GIFR устанавливает флаги при выполнении условий прерываний от внешних источников. 6-й разряд - флаг INT0, а 7-й – INT1.
Таймеры/счетчики микроконтроллера имеют приведенную ниже структуру.
Рис. 4.16 Структура счетчика/таймера
Таймеры/счетчики могут производить подсчет как импульсов от тактового генератора микроконтроллера, поступающих с делителя (Prescaler) с программно устанавливаемым коэффициентом передачи от 1 до 1024, так и сигналов от внешних входов (Tn). Значение хранится в регистре TCNTn (восьмеричном для таймеров/счетчиков TC0 и TC2, шестнадцатеричном для TC1). Логическое устройство анализирует накопленный код и сравнивает его с регистром сравнения TCCRn. При равенстве значений или при переполнении таймера/счетчика устанавливаются соответствующие флаги и происходят (если они разрешены) прерывания. Также может быть подключен внешний выход сравнения таймера TOVn. Он позволяет реализовать управление исполнительными элементами при ШИМ-режиме работы таймера/счетчика.
Система прерываний. Микроконтроллеры семейства AVR имеют возможность работы с различными источниками прерываний. Прерывания от каждого источника и сбросы микроконтроллера по различными причинам имеют свои собственные вектора прерываний. Прерывания могут быть разрешены или запрещены установкой разряда разрешения прерываний в регистре SREG. Таблица векторов прерываний приведена в программе. Прерывания с меньшим вектором прерывания имеют наибольший приоритет.
В момент, когда происходит прерывание, снимается разряд I в SREG (запрещаются прерывания от других источников) и управление передается по вектору прерывания. Команда возврата из прерывания RETI вновь устанавливает разряд общего разрешения прерываний.
- Содержание
- Описание токарного станка
- Техническая характеристика
- Функциональная схема электропривода
- Принципиальная схема электропривода
- Описание микроконтроллера
- Микроконтроллеры семейства avr
- Микроконтроллер aTmega64
- Синтез структуры регулятора
- Программное обеспечение
- Подпрограмма прерывания от таймера/счетчика 3
- Подпрограмма расчета угла очередной фазы
- Подпрограмма выбора скважности для заданного угла
- Литература