专栏中心

EEPW首页 > 专栏 > SPI四种模式区别

SPI四种模式区别

发布人:电子禅石 时间:2019-08-05 来源:工程师 发布文章

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。

例如这个波形图

11.png

(注意红色框)
如果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_test.c,内核驱动spidev.c,设备树devicetree,下载
spidev的移植,参考文章:http://blog.csdn.net/yihui8/article/details/54142351
--------------------- 
原文:https://blog.csdn.net/yihui8/article/details/54316888 


专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

2011研华嵌入式设计论坛——北京站 媒体提问

视频 2011-11-04

HBM,爆炸式增长

网络与存储 2025-07-08

集成电路与自主创新

基于DSP技术的2M传输性能分析仪的论文

集成电路应用索引

线控技术重构汽车电子架构,电感式位置传感器成就标杆应用

研华中国嵌入式市场策略及业务方向

视频 2011-11-04

嵌入式软体趋势 迎接未来无限可能

视频 2011-11-04

瑞萨获得法国嵌入式 FPGA 技术许可

mr-library中的GPIO是怎么封装的?完整拆解+实战思路

嵌入式系统 2025-07-08

Gartner:到2030年,80%企业软件和应用将为多模态,2024年尚不足10%

智能计算 2025-07-08

仿人型机器人能同时流利地说15种语言

俄罗斯据称正在测试由英伟达 Jetson Orin 驱动的致命下一代人工智能无人机

百亿估值:宇树科技计划在2025年底前递交IPO申请,腾讯阿里押注

迎接蜕变——谈嵌入式运算核心技术与产业之最新应用

视频 2011-11-04

为探索者赋能,RIGOL发布多通道波形发生及先进计算解决方案

据报道英伟达计划在以色列建设价值数十亿美元的园区,将成为该国最大的园区

中国微特电机行业现状与发展趋势

更多 培训课堂
更多 焦点
更多 视频

技术专区