概述
目录
SPI全双工
SPI半双工
SPI全双工
SPI全双工,参考《野火STM32库开发指南》
四线模式(NSS, SCK, MOSI, MISO)的基本通信时序见下图
图1 SPI全双工的某一种通信时序图
通信开始,NSS 从 1>>0,通信结束 0>>1. (单字节传输与连续传输在时钟SCK上有区别,在于SCLK是否是连续的,8个时钟周期传输1个完整的字节。)
SCLK(CPOL)与MOSI/MISO(CPHA)的极性决定了具体时钟空闲状态和数据采集发生在上升沿或下降沿。具体可见下图和表。
表1 时钟空闲和采样时
图2 CPHA == 0
图3 CPHA == 1
SPI半双工
SPI半双工,参考《STM32F4xx官方中文手册》
三线模式,NSS, SCLK, DATA(分为MIO or SIO)
图 esp32 半双工三线通信SPI
提到SPI的半双工方式,就不得不提一下Q(Queued)SPI,常应用于外部FLASH,分为Std, Dual, Qual模式,区别是以并行方式,1个clk传输1、2、4 bit(s)的数据。
对于STM32来说,SPI支持半双工模式,可以通过使能BIDIMODE reg位来选择单线双向通信模式或单线单向模式。
使用轮询方式的STM32 SPI half-duplex波形见下图:
图 STM32 HAL轮询方式发送2字节,接收2字节的主机硬件SPI half-duplex 波形 (这里存在一些疑惑,STM32 HAL方式在接收字节的时候会多读取3个字节的数据?)
某国产芯片CCM4202S,同样以轮询方式以半双工收发数据见下图:
图 CCM4202S国产芯片 SPI主机半双工轮询方式的工作状态
在CCM4202S中,需要人为的通过配置MOMI(主机模式下的MOSI)或SISO(从机模式下的MISO)的引脚方向来控制接收或发送权限。
最后
以上就是震动盼望为你收集整理的SPI全双工与半双工的全部内容,希望文章能够帮你解决SPI全双工与半双工所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复