当前位置:   article > 正文

SPI四种模式区别_spi mode

spi mode

SPI四种模式区别

 

spi四种模式SPI的相位(CPHA)和极性(CPOL)分别可以为0或1,对应的4种组合构成了SPI的4种模式(mode)

Mode 0 CPOL=0, CPHA=0 
Mode 1 CPOL=0, CPHA=1
Mode 2 CPOL=1, CPHA=0 
Mode 3 CPOL=1, CPHA=1

时钟极性CPOL: 即SPI空闲时,时钟信号SCLK的电平(1:空闲时高电平; 0:空闲时低电平)
时钟相位CPHA: 即SPI在SCLK第几个边沿开始采样(0:第一个边沿开始; 1:第二个边沿开始)

sd卡的spi常用的是mode 0 和mode 3,这两种模式的相同的地方是都在时钟上升沿采样传输数据,区别这两种方式的简单方法就是看空闲时,时钟的电平状态,低电平为mode 0 ,高电平为mode 3。

例如这个波形图
(注意红色框)
如果CPOL=0, CPHA=0 ,则miso数据是0x83(10000011)
如果CPOL=0, CPHA=1 ,则miso数据是0x07(00000111)
在用内核自带的linux-kernel/xlnx-4.0/Documentation/spi/spidev_test.c例子,读写内核的spidev.c设备的时候,
/spidev_test -r 69 -w 7
写入地址69寄存器,数值7
./spidev_test -r 69
读出地址69寄存器数值:0x83,以为程序代码有bug
./spidev_test -H -r 69
读出地址69寄存器数值:0x07,应该在SCLK第2个边沿开始采样(带H参数表示CPOL=0, CPHA=1),这才读对了。
在调试ad9631时,用默认spi mode读写总返回0x83,以为程序有问题,查查spi mode原理后,再对比波形图,才知道ad9631的mode=1
spidev的移植,参考文章:http://blog.csdn.net/yihui8/article/details/54142351




声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码艺术家/article/detail/60604
推荐阅读
相关标签
  

闽ICP备14008679号