Ai8051U 系列单片机为 SPI 提供了高速模式(HSSPI)。高速 SPI 是以普通 SPI 为基础,增加了高速模式。
当系统运行在较低工作频率时,高速 SPI 可工作在高达 144M 的频率下。从而可以达到降低内核功耗,提升外设性能的目的。
一、相关寄存器
1、高速 SPI 配置寄存器(HSSPI_CFG)
SS_HLD[3:0]:高速模式时 SS 控制信号的 HOLD 时间
SS_SETUP[3:0]:高速模式时 SS 控制信号的 SETUP 时间
2、高速 SPI 配置寄存器 2(HSSPI_CFG2)(交换 MISO 和 MOSI)
IOSW:交换 MOSI 和 MISO 脚位(普通 SPI 模式和高速 SPI 模式通用)
0:不交换,维持上电默认脚位。
1:交换 MOSI 和 MISO 的脚位。
HSSPIEN:高速 SPI 使能位
0:关闭高速模式。
1:使能高速模式。
当 SPI 速度为系统时钟/2(SPCTL.SPR=3)时,必须设置使能高速模式SPI+DMA 读取数据时,如果开启了 FIFO,也必须开启高速 SPI 模式
FIFOEN:高速 SPI 的 FIFO 模式使能位
0:关闭 FIFO 模式。
1:使能 FIFO 模式。
SPI 发送和接收的 FIFO 深度均为 4 字节。设置 FIFOEN 可以减少 SPI 数据收发间隔时间,提高 SPI收发速度。FIFOEN 只有在使用 SPI+DMA 传输时才可以使能,使用普通 SPI 收发时需要关闭 FIFOEN才能收到 SPIF 标志。
SS_DACT[3:0]:高速模式时 SS 控制信号的 DEACTIVE 时间
注:SS_HLD、SS_SETUP 和 SS_DACT 所设置的值只有在 SPI 主机模式的 DMA 才有意义,只有 SPI 在主机模式时,执行 DMA 数据传输时才需要硬件自动输出 SS 控制信号。当 SPI 速度为系统时钟/2(SPCTL.SPR=3)时执行 DMA,SS_HLD、SS_SETUP 和 SS_DACT 都必须设置为大于 2 的值。
3、高速 SPI 状态寄存器(HSSPI_STA)
TXFULL:发送数据 FIFO 满标志(只读)
TXEMPT:发送数据 FIFO 空标志(只读)
RXFULL:接收数据 FIFO 满标志(只读)
RXEMPT:接收数据 FIFO 空标志(只读)
4、高速 SPI 时钟分频器(HSSPI_PSCR)
DIV[7:0]:高速 SPI 时钟分频器
高速 SPI 工作时钟=高速 SPI 输入时钟 / (HSSPI_PSCR[7:0] + 1)