Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой проект - Электропривод шпинделя токарного станка.doc
Скачиваний:
156
Добавлен:
02.05.2014
Размер:
1.78 Mб
Скачать
    1. Микроконтроллер 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 вновь устанавливает разряд общего разрешения прерываний.