根据资料,CH582M有一组SPI外设:SPI0。其特性如下:
· SPI0 支持主机模式(Master)和从机模式(Slave),SPI1 只支持主机模式(Master)。
· 兼容串行外设接口(SPI)规范。
· 支持模式 0 和模式 3 数据传输方式。
· 8 位数据传输方式,数据位序可选:字节低位在前或者高位在前。
· 时钟频率最高可达系统主频 Fsys 的一半。
· 8 字节 FIFO。
· SPI0 从机模式支持首字节为命令模式或数据流模式。
· SPI0 支持 DMA,数据传输效率更高。
与这个SPI0有关的寄存器:

SPI 模式控制寄存器(R8_SPI0_CTRL_MOD)

SPI 配置寄存器(R8_SPI0_CTRL_CFG)

SPI 中断使能寄存器(R8_SPI0_INTER_EN)

SPI 主机模式时钟分频寄存器(R8_SPI0_CLOCK_DIV)

SPI 从机模式预置数据寄存器(R8_SPI0_SLAVE_PRE)

SPI 数据缓冲区(R8_SPI0_BUFFER)

SPI 工作状态寄存器(R8_SPI0_RUN_FLAG)

SPI 中断标志寄存器(R8_SPI0_INT_FLAG)

SPI 收发 FIFO 计数寄存器(R8_SPI0_FIFO_COUNT)

SPI 收发 FIFO 计数寄存器(R8_SPI0_FIFO_COUNT1)

SPI 收发数据总长度寄存器(R16_SPI0_TOTAL_CNT)

SPI 数据 FIFO 寄存器(R8_SPI0_FIFO)

寄存器 R8_SPIx_BUFFER 和 R8_SPIx_FIFO 均为 SPI 数据相关寄存器,主要区别在于:
读 R8_SPIx_BUFFER 是取自 SPI 最近一次交换到的数据,不影响 FIFO 和 R8_SPIx_FIFO_COUNT,
主机模式下写 R8_SPIx_BUFFER 是直接发送该字节,从机模式下写操作未定义;
读 R8_SPIx_FIFO 是取自 FIFO 中最早交换到的数据,将减少 FIFO 和 R8_SPIx_FIFO_COUNT,
写 R8_SPIx_FIFO 是将数据暂存到 FIFO 中,在从机模式下由外部 SPI 主机决定何时取走,在主机模式下当 R16_SPIx_TOTAL_CNT 非 0 时自动启动发送。
SPI0 DMA 缓冲区当前地址(R16_SPI0_DMA_NOW)

SPI0 DMA 缓冲区起始地址(R16_SPI0_DMA_BEG)

SPI0 DMA 缓冲区结束地址(R16_SPI0_DMA_END)

我要赚赏金
