概述
SSP是一个同步串口,工作在全双工模式,同时只能有一个模式在工作。LPC13XX只有一个SSP,它的特征有:
² 同Motorola SPI,TI SSI,和NS的MicroWire总线兼容;
² 同步串行通信;
² 支持主从模式;
² 收发都有8个FIFO;
² 4位或者16位帧模式。
引脚描述
以工作在SPI模式来说明,工作在其它模式还要参考数据手册。
引脚 | 类型 | SPI | SSI | Microwire | 描述 |
SCK | I/O | SCK | CLK | SK | 串行时钟。用来同步收发数据。由主机驱动,从机接收。工作在SPI模式时,可以配置成高/低有效,默认为高有效。数据传送时工作,其它时间为三态。 |
SSEL | I/O | SSEL | FS | CS | 帧同步/从机片选。工作在主机模式时,驱动信号为有效模式。有效信号根据工作模式决定。当有一个从机时,可以与对应的管脚直接连接,当有多个从机时,需要另外的处理。 |
MISO | I/O | MISO | DR(M) DX(S) | SI(M) SO(S) | 主入从出。当工作在主机模式时,是一个输入引脚,当工作在从机模式时,是个输出引脚。 当在主机模式时,不被选择的从机是不会驱动这个信号的。 |
MOSI | I/O | MOSI | DX(M) DR(S) | SO(M) SI(S) | 主出从入。同MISO相反。 |
时钟和电源控制
SSP模块可以通过AHBCLKCTRL寄存器来控制,bit11;
SSP_PCLK可以通过SSP的时钟分频寄存器来启动和禁用。SSPCLKDIV, 地址 0x4004 8094。可以设置的范围为1到255.
CPSDVSR时钟预分频寄存器通过SSP0CPSR - 0x4004 0010来设置,偶数,范围2-254。必须正确设置才能工作。
寄存器描述
下表列出了相关的寄存器:
SSP (开始地址0x4004 0000)
名称 | 访问 | 偏移地址 | 描述 | 复位值 |
SSP0CR0 | R/W | 0x000 | 控制寄存器0. 控制数据率、总线类型、数据字长 | 0 |
SSP0CR1 | R/W | 0x004 | 控制寄存器1.控制主从或者其它模式 | 0 |
SSP0DR | R/W | 0x008 | 数据寄存器。写填充发送FIFO,读清除接收FIFO | 0 |
SSP0SR | RO | 0x00C | 状态寄存器。 | - |
SSP0CPSR | R/W | 0x010 | 时钟预置寄存器 | 0 |
SSP0IMSC | R/W | 0x014 | 中断屏蔽、清除寄存器 | 0 |
SSP0RIS | R/W | 0x018 | 原始中断状态寄存器 | - |
SSP0MIS | R/W | 0x01C | 屏蔽的中断寄存器 | 0 |
SSP0ICR | R/W | 0x020 | 中断清除寄存器 | NA |
SPI功能描述
SPI格式的主要特征是活动状态和SCK有效极性是可编程的,通过SSPCR0设置。
名称 | 0 | 1 |
CPOL | 无效数据时为低电平 | 无效时为高电平 |
CPHA | 第一个时钟变化捕捉数据 | 第二个时钟变化捕捉数据 |
CPOL=0和CPHA=0的时序为:
说明:
1 SSEL启动传输,MISO信号有效;
2 半个周期后,MOSI信号有效;
3 半周期后,SCK信号变化,接收数据;
4 数据传送完毕,SSEL变为无效;
5 SSEL再变有效,启动下次传输。