
- •Модуль 7: SPI - интерфейс C28x
- •Передача данных через SPI
- •Структура SPI интерфейса
- •Выравнивание данных в SPI
- •SPI-A Регистры
- •SPI-A Регистр управления
- •операциями
- •SPI-A Регистр скорости порта
- •SPI-A Регистр статуса
- •SPI-A Регистр FIFO буфера
- •SPI резюме
- •SPI Пример 1: ЦАП TLV 5617
- •SPI Пример : ЦАП TLV 5617
- •SPI Пример : ЦАП TLV 5617
- •Лабораторная работа 7: ЦАП TLV
- •SPI Пример 2: Электрически программируемое ПЗУ M95080
- •SPI Пример 2: Электрически программируемое ПЗУ M95080
- •SPI Пример 2: Электрически
- •SPI Пример 2: Электрически программируемое ПЗУ M95080
- •SPI Пример 2: Электрически программируемое ПЗУ M95080
- •SPI Пример 2: Электрически
- •SPI Пример 2: Электрически
- •SPI Пример 2: Электрически программируемое ПЗУ M95080
- •Лабораторная работа 7B:

Модуль 7: SPI - интерфейс C28x
Цифровой сигнальный контроллер TMS320F2812
Texas Instruments Incorporated

Передача данных через SPI
интерфейс
Одновременный прием и передача
SPI Ведущий - обеспечивает сигнал тактирования
SPII Устройство #1 Ведущий
сдвиг |
Сдвиговый |
регистр SPI |
SPII Devicei #2
Ведомый
сдвиг
Сдвиговый регистр SPI
такты
7 - 2

Структура SPI интерфейса |
|
||||
C28x - SPI режим ведущего |
|
|
|
||
|
|
RX FIFO_0 |
|
SPISIMOI I |
|
|
|
|
|
|
|
|
RX FIFO_15 |
|
|
|
|
|
SPIRXBUF.15-0 |
|
|
|
|
|
MSB SPIDAT.15-0 |
LSB |
SPISOMI |
||
|
|
|
|
I |
I |
|
SPITXBUF.15-0 |
|
|
|
|
|
|
TX FIFO_0 |
|
|
|
|
TX FIFO_15 |
|
|
|
|
LSPCLK |
Полоса |
Полярн. |
Фаза |
SPICLKI |
|
частот |
. |
|
7 - 3 |
||
|
|
|
|
|

Выравнивание данных в SPI
Программируемая длина данных от 1 до 16 бит
Переданные данные меньше 16 бит должны быть выровнены по левому краю
Старший бит (MSB)
передается первым
Принятые данные меньше 16 бит выравниваются по правому краю
Программа пользователя должна маскировать неиспользуемые
старшие биты (MSB)
SPIDATI - процессор #1
11001001XXXXXXX X
SPIDATI - процессор #2
XXXXXXXX1100100
1
7 - 4

SPI-A Регистры
Адрес |
Регистр |
Название |
|
0x00704 |
|
|
|
0 |
SPICCR |
регистр управления конфигурацией |
|
0x00704 |
|||
10x0070 |
SPICTL |
регистр управления операцией |
|
SPISTS |
регистр статуса |
||
42 |
SPIBRR |
регистр скорости |
|
0x00704 |
|||
6 |
SPIEMU |
регистр буфера эмуляции |
|
0x00704 |
|
|
|
7 |
SPIRXBU |
регистр буфера последовательного |
|
0x00704 |
F |
приема |
|
8 |
SPITXBU |
регистр буфера последовательной |
|
0x00704 |
F |
передачи |
|
A |
SPIFFTX |
регистр FIFO буфера передатчика |
|
0x00704 |
|||
SPIFFRX |
регистр FIFO буфера приемника |
||
B |
SPIFFCT |
регистр FIFO буфера управления |
|
0x00704 |
|||
0x00704 |
SPIPRI |
регистр управления приоритетом |
|
F |
|
|
7 - 5

SPI-A Регистр управления
конфигурацией
SPICCR @ 0x007040
15-8 |
7 |
6 |
5-4 |
3 |
2 |
1 |
0 |
зарезерв. зарезерв.
|
SPI символы . 3-0 |
|
|
|
Длина символов = число + 1 |
|
|
SPI программный |
Например : 0000b |
: длина = |
1 |
сброс |
1111b |
: длина = |
16 |
0 = SPI флаг сброса |
Полярность тактов |
|
|
1 = нормальная работа 0 = передача данных по возрастающему фронту
1 = передача данных по ниспадающему фронту
7 - 6

операциями
SPICTL @ 0x007041
Разрешение прерывания |
|
Разрешение |
||||
при ошибке |
Ведущий/Ведомый/ |
|||||
0 = запрещено |
|
0 = ведомый |
прерывания от SPII |
|||
1 = разрешено |
|
1 = ведущий |
|
0 = запрещено |
||
|
|
1 = разрешено |
||||
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-5 |
|
|
|
|
|
15- |
4 |
3 |
2 |
1 |
0 |
зарезервировано
|
Фаза такта |
0 |
«РАЗГОВОР» |
|
0 |
= запрещена |
|
||
= нет задержки CLK |
|
, |
|
|
1 |
|
передача, |
|
|
= CLK задержан на 1/2/2 тактавыход в третьем |
|
|||
|
|
состоянии |
|
|
|
|
1 |
= разрешение |
|
|
|
передачи |
7 - 7 |

SPI-A Регистр скорости порта
SPIBRR @ 0x007044
Необходимо устанавливать только в режиме вед
15-7 |
6-0 |
- |
- |
зарезервировано |
SPI скороcть передачи |
|
|
,, SPIBRRI = c 3 до 127
SPICLK сигнал =
,, SPIBRRI = 0,, 1,, или 2
7 - 8

SPI-A Регистр статуса
SPISTS @ 0x007042
15-8 |
7 |
6 |
5 |
4-0 |
зарезерв. |
|
|
|
зарезервировано |
Ошибка приемника (только чтение/стирание)
•Устанавливается, если
прием закончился до чтения SPIRXBUF
•Прерывание появится,
если разрешение прерывания при ошибке бит установлен (SPICTL.4)
•Стирается записью 1
TX буфер полон (только чтени
•устанавливается в 1 когда символ записан в SPITXBUF
•Стирается когда символ
в SPIDAT
SPI флаг прерывания (только чтение)
•Устанавливается в 1 когда
передача завершена
•Прерывание появится, если
бит разрешения прерывания SPI установлен (SPICTL.0)
•Стирается чтением |
7 - 9 |
|

SPI-A Регистр FIFO буфера
передатчика
SPII FIFOI
SPIFFTX @ 0x00704A
РасширениеTX FIFOI Сброс
0 = запрещено 0 = сброс ((указывает на 0)) 1 = разрешено 1 = разрешение операции
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
зарезервSPIFFEN.. TXFIFORESET TXFFST4TXFFST3TXFFST2TXFFST1TXFFST0
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|||
|
TXFFINT |
|
TXFFINT |
|
TXFFIENTXFFIL4 |
TXFFIL3 |
TXFFIL2 |
TXFFIL1 |
TXFFIL0 |
|
|
|
CLR |
|
TX FIFOI |
|
|
TX FIFOI |
|
|
|
|
Флаг |
TX FIFOI |
|
Разрешение |
|
|
|
|
|
прерывания |
TX FIFOI |
уровень |
||||
прерыванияСтереть флаг |
совпадении)) |
||||||
|
|
(при( |
прерывания |
|
|||
)прерывания |
|
|
|
|
|
||
(только чтение) |
|
|
|
|
|
|
|
0 = нет эффекта0 = разрешено |
Прерывание когда |
||||||
0 = не происходит |
1 = стирает |
|
1 = запрещено |
||||
1 = происходит |
|
-0 и |
7 - 10 |
||||
|
|
|
|
TXFFST4- |
|
||
|
|
|
|
|
TXFFIL4I --0 совпадают |

|
|
SPI-A Регистр FIFO буфера |
|
|||||||||||||||||||
RX FIFOI |
|
|
|
|
|
|
|
|
|
приемника |
|
|
|
|
|
|
|
|||||
|
Флаг |
|
|
|
|
SPIFFRX @ 0x00704B |
|
|
|
|
|
|||||||||||
переполнения |
|
|
|
|
RX FIFOI сброс |
|
|
|
|
|
|
|
||||||||||
(только чтение) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
( |
) |
|
|
|
|
|
|
|
|
0 = сброс |
|
|
|
|
|
|
|
|
||||
0 = нет переполнения |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
(указатель на 0) |
|
|
|
|
|
|
|
|||||||||||||
1 = переполнение |
|
|
|
|
( |
|
|
|
|
) |
|
|
|
|
|
|
|
|||||
|
|
RX FIFOI |
1 = разрешение |
|
|
|
|
|
|
|
||||||||||||
|
|
Стереть Флаг |
|
работы |
|
|
|
|
|
|
|
|
||||||||||
|
|
переполнения |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
0 = нет эффекта |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
1 = стирание |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
15 |
|
|
|
|
14 |
|
|
13 |
|
|
12 |
|
11 |
10 |
|
9 |
|
8 |
|
|
|
|
|
RXFF- |
|
|
RXFF- |
|
RXFIFO |
|
|
RXFFST4RXFFST3RXFFST2RXFFST1RXFFST0 |
|
|
|
|
||||||||
|
|
OVF |
|
OVF CLR |
RESET |
|
|
|
|
|
||||||||||||
|
7 |
|
|
|
|
6 |
|
|
5 |
|
|
4 |
|
3 |
2 |
|
1 |
|
0 |
|
|
|
|
|
RXFFINT |
RXFFINT |
|
|
|
RXFFIENRXFFIL4RXFFIL3RXFFIL2RXFFIL1RXFFIL0 |
|
|
|
|
|||||||||||
|
|
|
|
CLR |
|
|
|
|
|
|||||||||||||
RX FIFO Флаг |
|
|
RX FIFOI |
RX FIFOI |
|
|
RX FIFOI |
уровень |
||||||||||||||
I |
|
|
|
|
|
|
|
|
|
|
|
|
Разрешение |
|
||||||||
прерывания |
Стереть флагапрерывания |
|
прерывания |
|
||||||||||||||||||
((только чтение)) |
|
|
|
|
|
|
|
|
(при совпадении) |
|
||||||||||||
|
|
|
|
|
|
прерывания ( |
|
|
) |
Прерывание когда |
||||||||||||
0 = не происходит |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
1 = происходит |
|
|
0 = нет эффекта 0 = запрещено |
|
-0 |
|
|
|||||||||||||||
|
|
|
|
1 = стирает |
1 = разрешено |
|
|
|
||||||||||||||
|
|
|
|
|
RXFFST4--0 совпадают |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
и RXFFIL4I |
- |
|
7 - 11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|