S3C2440包含有两个串行外围设备接口(SPI口),每个SPI口都有两个分别用于发送和接收的8位移位寄存器,在一次SPI通信当中数据被同步发送(串行移出)和接收(串行移入)。8位串行数据的速率由相关的控制寄存器的内容决定。如果只想发送,接收到的是一些虚拟的数据。另外,如果只想接收,发送的数据也可以是一些虚拟的“1”。结构框图如下:
1、SPI接口特性:
- 与SPI接口协议v2.11兼容;
- 8位用于发送的移位寄存器;
- 8位用于接收的移位寄存器;
- 8位预分频逻辑;
- 查询、中断和DMA传送模式;
2、SPI接口操作:
通过SPI接口,S3C2440可以与外设同时发送/接收8位数据。串行时钟线与两条数据线同步,用于移位和数据采样。如果SPI是主设备,数据传输速率由SPPREn寄存器的相关位控制。可以修改频率来调整波特率寄存器的值。如果SPI是从设备,其他的主设备提供时钟,向SPDATn寄存器中写入字节数据,SPI发送/接收操作就同时启动。某些情况下片选nSS要在向SPDATn寄存器中写入字节数据之前激活。3、传输格式:
4、接口控制寄存器:
- SPI控制寄存器(SPICONn)该寄存器控制SPI的工作模式。
- SPI状态寄存器(SPSTAn)
- SPI发送时为单缓冲,这样在前一次发送尚未完成之前,不能将新的数据写入移位寄存器来发送过程中对数据寄存器进行写入
- 操作时,DCOL位将为1以指示数据冲突。此前发送的数据就行发送,而后写入的数据将丢失。
- SPI引脚控制寄存器(SPPINn)
- 当一个SPI系统被允许时,nSS之外的引脚的数据传输方向都由SPCONn的MSTR位控制,nSS引脚总是输入。当SPI是一个主设备是,nSS引脚用于检测多主设备错误(如果SPPIN的ENMUL位被使能),另外还需要一个GPIO 来选择从设备。如果SPI被配置为从设备,nSS引脚用来被选择为从设备。
- SPI发送数据寄存器(SPTDATn)发送数据寄存器中存放待SPI口发送的数据。
- SPI接收数据寄存器(SPRDATn)接收数据寄存器中存放SPI口接收到的数据。