位模式传输
20 Mar 2024
位模式传输是以位为单位进行数据传输,用于对 SPI 接口的非 Flash 类型的外设进行访问,兼容更多的 SPI 设备。
位模式分为标准模式和三线模式。可通过下列步骤完成位模式传输配置:
- 通过0x040 SPI_BMTC 寄存器的 BMOD_SEL
位域,选择两种不同的工作模式中的一种。注: 关于标准模式和三线模式的详细说明,可查看总线模式 。
- 通过 0x040 SPI_BMTC 寄存器选择位模式下的工作时钟。
- 确定位模式的传输位数。位模式一次最大传输的位数为 32 bits:
- 对于写操作,将待发送数据写入到 0x048 SPI_BMTXD 寄存器,并通过 0x040 SPI_BMTC.BM_TXCNT 配置写有效数据的长度。
- 对于读操作,通过 0x040 SPI_BMTC.BM_RXCNT 配置读有效数据的长度, 读到的数据会自动存入 0x048 SPI_BMTXD 寄存器。
- 使能 BM_START 寄存器启动数据传输,传输完成后 BM_TD 寄存器会置 1,也可以使能 BM_TD_INTE 完成中断,
在中断服务程序中检查数据传输完成标志。注: 位模式连续传输时,每笔传输结束后需要硬件复位一次,或者至少等待一个时钟周期,再传输下一笔数据。