суббота, 16 марта 2013 г.

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

Интерфейс SPI предназначен для коммуникации с периферийными устройствами, такими как сдвиговые регистры, внешняя память, часы реального времени и пр. При этом микроконтроллер может выступать как в качестве ведущего устройства, так и ведомого.

Характеристики интерфейса SPI:
  • Полный дуплекс, трехпроводная синхронная передача данных
  • Возможность работы в качестве ведущего/ведомого устройства
  • Выбор порядка передачи данных (младший или старший бит первым)
  • 7 скоростей передачи
  • Прерывания по окончанию передачи
  • Защита от записи в еще не опустошенный буфер передачи
  • Режим пробуждения 
  • Повышение скорости передачи вдвое в режиме ведущего устройства
Регистры интерфейса SPI:
  • SPCR - регистр управления модулем SPI
  • SPSR - регистр контроля
  • SPDR - регистр данных
Регистр SPCR:
7
6
5
4
3
2
1
0
SPIE
SPE
DORD
MSTR
CPOL
CPHA
SPR1
SPR0

Бит SPIE (7) регистра SPCR разрешает прерывания от модуля SPI если установить в 1.
Бит SPE (6) регистра SPCR включает модуль SPI если установить в 1.
Бит DORD (5) регистра SPCR управляет порядком передачи (1 - младший бит первым / 0 - старший бит первым).
Бит MSTR (4) регистра SPCR выбирает режим работы (1 - ведущий / 0 - ведомый).
Бит CPOL (3) регистра SPCR управляет полярностью тактового сигнала ( 0 - импульсы положительной полярности, если нет импульсов, на выходе 0 / 1 - импульсы отрицательной полярности, если нет импульсов, на выходе 1).
Бит CPHA (2) регистра SPCR управляет фазой тактового сигнала (0 - для CPOL=0 - по нарастающему фронту, для CPOL=1 - по спадающему фронту / 1 - наоборот)
Бит SPR1 (1) и SPR0 (0) регистра SPCR выбор скорости передачи:
  • 00 - CLK/4
  • 01 - CLK/16
  • 10 - CLK/64
  • 11 - CLK/128
Регистр SPSR:
7
6
5
4
3
2
1
0
SPIF
WCOL
-
-
-
-
SPI2X
-

Бит SPIF (7) регистра SPSR - флаг прерывания от SPI (1 - если поступило прерывание)
Бит WCOL (6) регистра SPSR - конфликт записи данных (1 - если запись в регистр SPDR происходит во время передачи предыдущего байта).
Бит SPI2X (1) регистра SPSR - увеличивает скорость передачи вдвое, если установить 1.