6.6 串行外设接口SPI

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

名称
功能说明
SPICCR SPICTL SPISTS
SPI配置控制寄存器 SPI操作控制寄存器
SPI状态寄存器
SPI软件复位、SPICLK极性选择、传输 数据长度选择。
SPI中断及超时中断使能、SPICIK相位选 择、主/从操作模式和数据发送使能。
中断及超时中断标志、发送缓冲器满标志。
SPIBRR
SPI波特率寄存器
SPISIMO:从动输入/主动输出引脚 SPISTE:从动发送使能引脚 SPICLK:串行时钟引脚 南京航空航天大学自动化学院DSP技术应用实验室
SPI功能引脚图
南京航空航天大学自动化学院DSP技术应用实验室
地址 7040h 7041h 7042h 7044h 7046h
9个SPI模块寄存器
寄存器
(4).SPI波特率寄存器SPIBRR—地址7044h (5).SPI仿真接收寄存器SPIRXEMU—地址7046h
南京航空航天大学自动化学院DSP技术应用实验室
(6).SPI接收缓冲寄存器SPIRXBUF
SPI模块接收到的数据。 SPIDAT接收完毕数据后,将其传送到SPIRXBUF, 同时置位SPI INTFLAG;数据读出后,自动清除 SPI INTFLAG 。
数据传输波特率(7位)
SPIRXEMU SPI接收仿真缓冲寄存器
存放接收到的数据、支持仿真
7047h 7048h 7049h 704Fh
SPIRXBUF
SPI接收缓冲寄存器
SPITXBUF
SPI发送缓冲寄存器
SPIDAT
SPI串行数据寄存器
SPIPRI SPI中断优先级控制寄存器
存放接收到的数据 存放下一个要发送的数据 存放发送或接收到的数据 规定中断优先级高低及仿真挂起时的操作
①.外部网络主控制器由SPICLK引脚为从控制器提供 时钟,使二者同步。
②.外部网络主控制器从SPISTE引脚输出一低电平给 从控制器,响应从控制器发送数据。
③ . 从 控 制 器 把 数 据 写 入 其PCLK信号的合适边沿,由SPIDAT最高位(MSB) 开始从SPISOMI引脚串行输出。
南京航空航天大学自动化学院DSP技术应用实验室
(1)主模式
③.从控制器从SPISIMO引脚接收串行数据并把数据 移入自身SPIDAT的最低位(LSB)。
④. 数据传输完毕后,从控制器的数据并行写入 SPIRXBUF中,供CPU读出。同时可以产生中断。
南京航空航天大学自动化学院DSP技术应用实验室
从模式
南京航空航天大学自动化学院DSP技术应用实验室
(2).SPI操作控制寄存器 SPICTL—地址7041h

名称
说明
动作
4 OVERRUN INT
ENA
接收超时 中断使能
0-禁止超时中断; 1-使能超时中断
3
CLOCK
PHASE
SPI时钟相 0-无延时; 位选择 1-延时半个周期
2
MASTER
SPI主从模 0-从模式; 1-主模式
SPI可以用于DSP控制器和外部器件或其它控制器 间的通信,典型的应用包括与移位寄存器、显示驱动 器、串行A/D、串行D/A、串行EEPROM以及日历时钟芯 片等外围I/O器件相连进行外设扩展。
SPI与SCI相同点:都是串行信息交换。 不同点:
SPI同步通信、传输速率高、3根引线; SCI异步通信、传输速率低、2根引线。
0 SPI CHAR0
动作
0-SPI复位;1-SPI准备好接收发送
0-时钟上开沿有效;1-时钟下降沿有效
0000-1 0001-2 0010-3 0011-4 0100-5 0101-6 0110-7 0111-8 1000-9 1001-10 1010-11 1011-12 1100-13 1101-14 1110-15 1111-16
5
SPI SUSP SOFT SPI仿真挂起时处理 00-立即停止;
10-完成当前接收/发送操作后停止;
X1-自由运作
4
SPI SUSP FREE
南京航空航天大学自动化学院DSP技术应用实验室
七、 SPI模块的控制过程
(1).设置SPI功能引脚为特殊功能引脚。 (2).设置SPICCR寄存器,将SPI SW RESET位清0,强制SPI
南京航空航天大学自动化学院DSP技术应用实验室
从动发送具体过程
④.主控制器从SPISOMI引脚接收串行数据,并将数 据移入其SPIDAT的最低位(LSB)。
⑤. 数据传输完毕后,主控制器再将完整的数据并行 写入SPIRXBUF中。同时可以产生中断。
南京航空航天大学自动化学院DSP技术应用实验室
注意:
6.6 串行外设接口SPI
一、 概述 二、 SPI模块特性 三、 两种控制模式 四 、SPI模块的波特率和时钟模式 五、 SPI的复位 六、 SPI的控制寄存器 七、 SPI模块的控制过程 八、SPI模块通信示例
南京航空航天大学自动化学院DSP技术应用实验室
一、 概述
串行外设接口SPI模块是一个高速、同步的串行输 入/输出(I/O)端口,它只需要3根引线即可与外设 通信。
(8).SPI串行数据寄存器SPIDAT
用于存放发送/接收到的串行数据。 发送的数据左对齐;接收到的数据右对齐。
南京航空航天大学自动化学院DSP技术应用实验室
(9).SPI优先级控制寄存器SPI PRI—地址704FH

名称
说明
动作
6
SPI PRI ORITY
SPI中断优先级
0-高中断优先级;1-低中断优先 级
无延时的 下降沿
1
有延时的 下降沿
南京航空航天大学自动化学院DSP技术应用实验室
五、 SPI的复位
.系统复位时SPI模块处于从模式, .发送功能被禁止 .在SPICLK的下降沿锁存接收到的数据 .字符长度为1位 .SPIDAT中数据为0000h, .SPI中断被禁止 .SPI的引脚被配置为通用I/O引脚。
(SPICCR.6)和CLOCK PHASE (SPICTL.3)
两个控制位来确定。前者确定时钟的有效沿是在上
升沿还是在下降沿;后者确定是否有半个时钟周期
的延时。
串行外设时钟模式选择
CLOCK
0
0
1
1
POLARITY
CLOCK PHASE
SPICLK的信 号模式
0
无延时的 上升沿
1
有延时的 上升沿
0
/SLAVE
式选择
1
TALK
主/从模式 发送使能
0-禁止发送(输出高阻态); 1-允许发送
0
SPI INT ENA
SPI中断使 0-禁止SPI中断;

1-使能SPI中断
南京航空航天大学自动化学院DSP技术应用实验室
(3).SPI状态寄存器SPISTS—地址7042h 南京航空航天大学自动化学院DSP技术应用实验室
连接如下: A) DIN--SPISIMO C) SYNC--CLOKOUT/IOPE0引脚相连。 D) SCLK--SPICLK引脚相连
南京航空航天大学自动化学院DSP技术应用实验室
南京航空航天大学自动化学院DSP技术应用实验室
(7).SPI发送缓冲寄存器SPITXBUF
下一个需要发送的数据。 向SPITXBUF写数将置位TXBUF FLAG;当前
数据传送完毕,SPITXBUF中数据自动装载到 SPIDAT,同时清除TXBUF FLAG 。
南京航空航天大学自动化学院DSP技术应用实验室
SPI波特率=CLKOUT/(SPIBRR+1) 当SPIBRR=0~2时,
SPI波特率=CLKOUT/4
其中CLKOUT——器件的CPU时钟频率; SPIBRR——主SPI器件中SPIBRR的值。
南京航空航天大学自动化学院DSP技术应用实验室
(2).SPI时钟模式
SPI的时钟模式由CLOCK POLARITY
南京航空航天大学自动化学院DSP技术应用实验室
三、 两种控制模式
SPI主/从控制器的连接
南京航空航天大学自动化学院DSP技术应用实验室
三、 两种控制模式
(1)主模式
①.主控制器由SPICLK输出时钟信号给从控制器, 使二者同步。
②.主控制器将数据写入SPIDAT,由最高位(MSB) 开始,从主控制器SPISIMO引脚上串行输出。
进入复位状态,并确定时钟极性和传输数据长度。 (3).设置SPICTL寄存器,确定其操作模式(主/从)及时钟
模式。设置SPIBRR寄存器,确定SPI通信波特率。 (4).设置SPICCR寄存器,置SPI SW RESET位为1,使SPI进
入工作状态。 (5).向SPIDAT或者SPITXBUF写数据,启动主模式下的通信
南京航空航天大学自动化学院DSP技术应用实验室
六、 SPI的控制寄存器
(1).SPI配置控制寄存器 SPICCR—地址7040h

名称
说明
7 SPI SW RESET SPI软件复位
6
CLOCK POLARITY
移位时钟极性
3 SPI CHAR3 传输字符长
2 SPI CHAR2
度选择
1 SPI CHAR1
南京航空航天大学自动化学院DSP技术应用实验室
二、 SPI模块特性
1) 两种工作方式:主动和从动 2)波特率:125种可编程的波特率 3)数据字长:1~16位 4) 4种时钟方案 5)可同时接收和发送 6)发送和操作可通过中断或查询方式来完成 7) 9个SPI模块控制寄存器 8)4个外部引脚:SPISOMI:从动输出/主动输入引脚
A)主控制器可以在任意时刻起动数据发送; 而从控制器要发送数据,需用软件使能 SPISTE输入引脚。
B)串行数据长度编程。 若数据长度小于16位,写入SPITXBUF时, 需左对齐;从SPIRXBUF读回时右对齐。
南京航空航天大学自动化学院DSP技术应用实验室
四 、SPI模块的波特率和时钟模式
(1).SPI波特率的设定 由SPI波特率寄存器SPIBRR中的值确定。 当SPIBRR=3~127时,
过程。 (6).待设定长度的数据传输完毕后(SPISTS.6=1),读取
SPIRXBUF中的数据
南京航空航天大学自动化学院DSP技术应用实验室
八、SPI模块通信示例
DSP的SPI工作于主模式;DAC7512的SPI工作 于从模式通信。
DAC7512是低压(+2.7V~+5.5V)、12位DAC。 DIN:串行数据输入; SCLK:串行时钟输入; SYNC:输入控制信号(低电平有效)。
相关文档
最新文档