SPI仅支持一主多从(无应答机制)
参照:《第十一部分》1.STM32通信接口之SPI通信---SPI介绍《精讲》-CSDN博客
在采用一主多从的模式下。从机未被选中,SN=1时,从机的MISO会处于高阻态状态,SN=0时,MISO才允许变成推挽输出。
时序总结:
- CPOL = 0,CPHA =0; SCK =1 上升沿 采样输入数据,SCK =0 下降沿 移出数据,(自己看时序,简单)
如上图所示,下降沿,代表通信的开始,上升沿代表通信的结束。SN=0,代表正在和某个主机通信。
CPOL:时钟极性
CPHA:时钟相位
向指定地址写入数据,MOSI和MISO一直在交换数据,通过三个字节的交换成功将23位地址写入到了从机,由于是交换数据,主机可以选择不接收从机的数据。所以,从这个时序图看,主机仅仅只是向从机的指定地址写入数据。(MISO一直处于高电平,每个从机芯片手册不一样)
向指定地址读入数据,刚开始MOSI和MISO一直在交换数据,通过三个字节的交换成功读取到从机的地址,由于是交换数据,从机可以选择不接收主机的数据。所以,从这个时序图看,主机仅仅只是向从机的指定地址读出数据。接下来,就是接收数据,主机会发送一个随便一个数据(一般是)0XFF),然后,从机会把数据发送给主机,主机就成功读取到从机的数据了,(MISO一直处于高电平,每个从机芯片手册不一样)
总结:每个芯片的SPI通信大同小异,基本都是,起始,交换交换交换,停止,此过程中,我们只需要关注每个字节的功能定义,就能很方便用SPI的控制外围硬件设备了。