
- •5.3. Микроконтроллер avr at90s8515 семейства Classic
- •Организация памяти микроконтроллера
- •Память программ
- •Память данных
- •Использование внешнего озу
- •Регистры общего назначения
- •Регистры ввода/вывода
- •Энергонезависимая память данных
- •Сторожевой таймер
- •Последовательный периферийный интерфейс spi
- •Прерывания
- •Обработка прерываний
- •Программирование микроконтроллеров
- •Защита программного кода и данных
- •Система команд и способы адресации памяти данных
- •Прямая адресация
- •Прямая адресация одного регистра общего назначения
- •Прямая адресация двух регистров общего назначения
- •Прямая адресация регистра ввода/вывода
- •Прямая адресация озу
- •Косвенная адресация
- •Простая косвенная адресация
- •Относительная косвенная адресация
- •Косвенная адресация с преддекрементом
- •Косвенная адресация с постинкрементом
- •Система команд
- •Операнды
- •Типы команд
- •Команды арифметических и логических операций
- •Команды пересылки данных
- •Команды передачи управления
- •Команды операций с битами
- •Команды управления системой
- •Пример программы и её оформление
- •Микропроцессорная система управления на базе мк at90s8515
- •7. Микроконтроллер экр1847вг6
- •8. Частотно-регулируемые привода
- •Режимы управления асинхронными электродвигателями
- •Преобразователь частоты 1336Plus
Последовательный периферийный интерфейс spi
Последовательный периферийный интерфейс SPI (Serial Peripheral Interface), реализованный в микроконтроллерах семейства, имеет два назначения. Прежде всего через него может быть осуществлено программирование микроконтроллера (так называемый режим последовательного программирования).
Вторым назначением интерфейса является организация высокоскоростного обмена данными между микроконтроллером и различными периферийными устройствами, такими как ЦАП/АЦП, Flash-ПЗУ и др. Посредством этого интерфейса также может производиться обмен данными между несколькими микроконтроллерами AVR. При обмене данными по интерфейсу SPI микроконтроллер AVR может работать как в режиме Master, так и в режиме Slave. При этом пользователь может задать следующие параметры:
• скорость передачи (четыре программируемых значения);
• формат передачи (от младшего разряда к старшему или наоборот);
Дополнительной возможностью подсистемы SPI является «пробуждение» микроконтроллера из режима Idle при поступлении данных.
Функционирование модуля SPI
Модуль SPI использует четыре вывода микроконтроллера. Как и для большинства прочих периферийных устройств, эти выводы являются линиями порта ввода/вывода общего назначения (табл. 5.23).
Для управления модулем SPI предназначен регистр управления SPCR, расположенный по адресу $0D ($2D). Формат этого регистра приведен на рис. 6.7, а краткое описание функций разрядов регистра приведено в табл. 6.8.
Таблица. 5.23. Выводы, используемые модулем SPI
Название сигнала |
AT90S8515 |
Описание |
SCK |
РВ7 |
Выход (master)/ вход (slave) тактового сигнала |
MISO |
РВ6 |
Вход (master)/выход (slave) данных |
MOSI |
РВ5 |
Выход (master )/вход (slave) данных |
|
РВ4
|
Выбор ведомого устройства
|
Режимы передачи данных
Спецификация интерфейса SPI предусматривает 4 режима передачи данных. Эти режимы различаются соответствием между фазой (момент считывания сигнала) тактового сигнала SCK, его полярностью и передаваемыми данными. Всего существует 4 такие комбинации, определяемые состоянием разрядов СРНА и CPOL регистра SPCR (табл. 5.24).
Частота тактового сигнала SCK и, соответственно, скорость передачи данных по интерфейсу определяются состоянием разрядов SPR1: SPR0 регистра SPCR (табл. 5.25) при работе МК, работающего в режиме Master, т.к. именно он является источником тактового сигнала. Для устройства, находящегося в режиме Slave, состояние этих разрядов безразлично.
Таблица. 5.24. Задание режима передачи данных
Разряд |
Описание |
CPOL
|
Полярность тактового сигнала 0 - генерируются импульсы положительной полярности, при отсутствии импульсов на выводе присутствует НИЗКИЙ уровень; 1 - генерируются импульсы отрицательной полярности, при отсутствии импульсов на выводе присутствует ВЫСОКИЙ уровень
|
СРНА
|
Фаза тактового сигнала 0 - обработка данных производится по переднему фронту импульсов сигнала SCK (для CPOL = 0 - по нарастающему, а для CPOL =1 - по спадающему фронту). 1 - обработка производится по заднему фронту импульсов сигнала SCK
|
Таблица 5.25. Задание частоты тактового сигнала SCK
SPR1
|
SPR0
|
Частота сигнала SCK
|
0
|
0
|
FCLK /4*
|
0
|
1
|
FCLK /16
|
1
|
0
|
FCLK /64
|
1
|
1
|
FCLK /128
|
*FCLK- тактовая частота микроконтроллера.
Аналоговый компаратор
Компаратор позволяет сравнивать значения напряжений, присутствующих на двух выводах микроконтроллера. Результатом сравнения является логическое значение, которое может быть прочитано из программы. По результату сравнения может быть сгенерировано прерывание, а также выполнена функция захвата таймера/счетчика Т1.
Используемые компаратором выводы являются контактами портов ввода/вывода общего назначения.
Чтобы указанные линии портов ввода/вывода могли использоваться аналоговым компаратором, они должны быть сконфигурированы как входы (соответствующий разряд регистра DDRx установлен в «1»). Кроме того, необходимо отключить внутренние подтягивающие резисторы записью лог. «0» в соответствующий разряд регистра PORTx.
Управление компаратором и контроль его состояния осуществляются с помощью регистра ACSR, расположенного по адресу $08 ($28).
По своему действию рассматриваемый узел микроконтроллера является обычным компаратором. Если напряжение на выводе AIN0 (неинвертирующий вход) больше напряжения на выводе AIN1 (инвертирующий вход), то результат сравнения будет равен «1». В противном случае результат сравнения будет равен «0». Этот результат (состояние выхода компаратора) сохраняется в разряде АСО регистра ACSR.
Разряд ACD отвечает за включение и выключение компаратора. При включении напряжения питания все разряды регистра ACSR сбрасываются в «0», поэтому компаратор автоматически включается при подаче напряжения питания на микроконтроллер. Чтобы его выключить, разряд ACD следует установить в «1». При изменении состояния этого разряда необходимо запретить прерывание от компаратора.