Интерфейс SPI предназначен для коммуникации с периферийными устройствами, такими как сдвиговые регистры, внешняя память, часы реального времени и пр. При этом микроконтроллер может выступать как в качестве ведущего устройства, так и ведомого.
Характеристики интерфейса SPI:
Бит SPIF (7) регистра SPSR - флаг прерывания от SPI (1 - если поступило прерывание)
Характеристики интерфейса 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.
Комментариев нет:
Отправить комментарий