STM32F103 SPI 主机模式分析

时间:2024-04-12 16:04:44

STM32F103的SPI模块,跟通用SPI芯片的工作模式有些区别,手册上也没有特别注明,所以光看手册有时候还不容易理解。

STM32上的不同之处在于SPI模块工作在主机模式时,模块内部有一个控制脚必须由外部给它保持为高电平状态才能工作,为了方便描述这里就简称为CS_ENABLE脚。有了这个概念,里面的各种逻辑关系就比较清晰了。

这里主要分析主机模式,从机模式没有什么特别之处,就简单带过了。先看一下手册上的结构图:

STM32F103 SPI 主机模式分析

要保持CS_ENABLE为高电平,只能通过红线标识的2个途径来实现,但如果选择NSS,那么NSS就不能作为其他用途了。

但主机模式下在某些时候还要考虑从机片选信号的控制,这时候NSS就不能作为CS_ENABLE高电平的维持信号了。下图标识输出从机控制的片选时的信号途径:

STM32F103 SPI 主机模式分析

这种模式下,CS_ENABLE信号的高电平状态必须有SSI来维持!

 

另外还有一种情况,就是SPI模块不使用NSS脚,相当于跟NSS断开连接,NSS作为通用IO口来使用,SPI模块不控制从机的片选信号,由软件的方式通过控制通用IO口来实现,如下图:

STM32F103 SPI 主机模式分析

 

这种情况,CS_EANBLE的高电平状态必须由SSI来维持。

 

综上,再结合控制寄存器的定义,理解起来应该就比较简单了!