在嵌入式系统中,很多板载芯片都是采用SPI总线进行通信,同一SPI总线上也运行挂载多个相同或者不同型号的芯片。但是要留意不同型号的芯片的SPI通信的时序图,一般会有4种模式。在micropython中,初始化SPI总线时,通过phase和polarity配置即可实现这4种模式。
四种模式
| 模式 | CPHA (phase) | CPLO(polarity) |
|---|---|---|
| MODE0 | 0 | 0 |
| MODE1 | 1 | 0 |
| MODE2 | 0 | 1 |
| MODE3 | 1 | 1 |
CPHA (phase) 0--第1时钟边缘采样 1--第2时钟边缘采样
CPLO(polarity) 0--空闲时钟低电平 1--空闲时钟高电平
常用芯片模式
| 芯片 | 模式 |
|---|---|
| TMC5130 | MODE3 |
| TMC5160 | MODE3 |
| TMC4671 | MODE3 |
| MAX31865 | MODE1&MODE3 |
| ADS1220 | MODE1 |
| DRV8244 | MODE1 |
示例
- 如下示例配置了
MODE3,可以与所有支持MODE3的芯片通信。
import pyb
spi = pyb.SPI(1, pyb.SPI.MASTER,prescaler=256,phase=1,polarity=1)具体还可参考官方文档 https://docs.micropython.org/en/latest/library/pyb.SPI.html
❤️ 转载文章请注明出处,谢谢!❤️