8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 134 135 136 137 138 139 140 ... 195

глава

10

Последовательный периферийный интерфейс SPI

10.1. Общие сведения

Последовательный периферийный интерфейс SPI (Serial Peripheral Interface), реализованный во всех микроконтроллерах семейства Mega, имеет два назначения. Во-первых, с его помощью может осуществляться обмен данными между микроконтроллером и различными периферийными устройствами, такими как цифровые потенциометры, ЦАП/АЦП, FLASH-ПЗУ и др. Посредством этого интерфейса также может производиться обмен данными между несколькими микроконтроллерами AVR. Использование интерфейса SPI в качестве высокоскоростного канала связи и рассматривается в данной главе.

Кроме того, через интерфейс SPI может быть осуществлено программирование микроконтроллера (так называемый режим последовательного программирования). Использование интерфейса SPI в этом качестве будет описано в главе 14.

При обмене данными по интерфейсу SPI микроконтроллер AVR может работать как ведущий (режим Master) либо как ведомый (режим Slave). При этом пользователь может задавать следующие параметры:

•скорость передачи (восемь программируемых значений);

•формат передачи (от младшего бита к старшему или наоборот). Дополнительной возможностью подсистемы SPI является «пробуждение» микроконтроллера из режима Idle при поступлении данных.

10.2. Функционирование модуля SPI

Структурная схема модуля SPI приведена на Рис. 10.1.

Модуль SPI использует четыре вывода микроконтроллера. Как и в большинстве прочих периферийных устройств, эти выводы являются линиями портов ввода/вывода общего назначения (см. Табл. 10.1).

При включенном модуле SPI режим работы указанных выводов (направление передачи данных) переопределяется согласно Табл. 10.2.


XTAL

Делитель 2/4/8/16/32/64/128

MSB LSB

8-битный

сдвиговый регистр

Приемный буфер

- MISO

— MOSI

SCK

ss

Запрос на Внутренняя прерывание от SPI шина данных

Рис. 10.1. Структурная схема модуля SPI Таблица 10.1. Выводы, используемые модулем SPI

Вывод

ATmega8515x/8535x

ATmega8x

ATmegal6x/32x

ATmega64x/128x

ATmega48x/88x/168x

ATmega 162x

ATmegal64x/324x/644x

ATmegal65x

ATmega325x/3250x, ATmega645x/6450x

ATmega640x,

ATmegal280x/1281x,

ATmega2560x/2561x

Назначение

SCK

PB7

PBS

PB7

PB1

PBS

PB7

PB7

PB1

PB1

PB1

Выход (МаБ1ег)/вход (Slave) тактового сигнала

MISO

PB6

PB4

PB6

PB3

PB4

PB6

PB6

PB3

PB3

PB3

Вход (МаБ1ег)/выход (Slave) данных

MOSI

PBS

PB3

PBS

PB2

PB3

PBS

PBS

PB2

PB2

PB2

Выход (МаБ1ег)/вход (Slave) данных

SS

PB4

PB2

PB4

PBO

PB2

PB4

PB4

PBO

PBO

PBO

Выбор ведомого устройства


Таблица 10.2. Переназначение режима работы выводов модуля SPI

Вывод

Режим Master

Режим Slave

MOSI

Определяется пользователем

Вход

MISO

Вход

Определяется пользователем

SCK

Определяется пользователем

Вход

SS

Определяется пользователем

Вход

Как видно из таблицы, в определенных случаях пользователь должен самостоятельно задать режим работы вывода, используемого модулем SPI, в соответствии с его назначением (см. далее). При этом возможность управления внутренними подтягивающими резисторами выводов, работающих как входы, сохраняется независимо от способа управления их режимом работы.

Для управления модулем SPI предназначен регистр управления SPCR. В моделях ATmega8515x/8535x, ATmega 162х и ATmega8x/16x/32x/64x/128x этот регистр располагается по адресу $0D ($2D), а в остальных моделях — по адресу $2С ($4С). Формат этого регистра приведен на Рис. 10.2, а краткое описание функций битов регистра приведено в Табл. 10.3. Подробно использование различных битов регистра будет описано далее.

Чтение(Р)/Запись(\Л/) Начальное значение

7

6

5

4

3

2

1

0

SPIE

SPE

DORD

MSTR

CPOL

CPHA

SPR1

SPR0

R/W 0

R/W 0

R/W 0

R/W 0

R/W 0

R/W 0

R/W 0

R/W 0

Рис. 10.2. Формат регистра SPCR

Таблица 10.3. Биты регистра SPCR

Бит

Название

Описание

7

SPIE

Разрешение прерывания от SPI

6

SPE

Включение/выключение SPI

5

DORD

Порядок передачи данных

4

MSTR

Выбор режима работы (Master/Slave)

3

С POL

Полярность тактового сигнала

2

CPHA

Фаза тактового сигнала

1,0

SPR1:SPR0

Скорость передачи

Контроль состояния модуля, а также дополнительное управление скоростью обмена осуществляются с помощью регистра состояния SPSR,



0 ... 134 135 136 137 138 139 140 ... 195