SPI接口调试

SPI接口调试以MCP2515芯片的SPI接口为例说明。

大家好,又见面了,我是你们的朋友全栈君。

该篇文章参考:http://blog.csdn.net/amj0622/article/details/4981170和

http://ee.ofweek.com/2011-09/ART-8300-2809-28481368.html。

http://www.amobbs.com/thread-5018420-1-1.html

一、SPI简介

   SPI接口的全称是”Serial Peripheral Interface”,意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。

   SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,地位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到几Mbps。

   SPI接口是以主从方式工作的,这种模式通常有一个主器件和一个或多个从器件,其接口包括以下四种信号:

(1)MOSI – 主器件数据输出,从器件数据输入
(2)MISO – 主器件数据输入,从器件数据输出
(3)SCLK – 时钟信号,由主器件产生
(4)/SS  – 从器件使能信号,由主器件控制

SPI接口工作方式

      在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。
      在多个从器件的系统中,每个从器件需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。

SPI接口调试

    SPI接口在内部硬件实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。如下图所示,在SCLK的下降沿上数据改变,同时一位数据被存入移位寄存器。
    1
     SPI接口内部硬件图示:
          2
     最后,SPI接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据。

二、SPI模式

SPI模式由4种mode型,详见下图。

SPI接口调试

SPI接口调试

mode0/3上升沿采样,下降沿锁存。mode1/2下降沿采样,上升沿锁存。

注:Master和Slave同时刻采样或锁存数据。

三、实例说明

以M25P40芯片的SPI接口为例说明。该芯片支持SPI模式如下:

SPI接口调试

即支持Mode0和Mode3两种模式。

3.1读取ID

M25P40的ID号具体组成如下图:

SPI接口调试

datasheet read ID时序

SPI接口调试

DM8168设置Mode0方式操作M25P40,实际读取ID的时序图:

1、DM8168发送读取ID命令 0x9F

SPI接口调试

2、M25P40返回ID

SPI接口调试

下面详细说明制造商ID 0x20返回过程:

SPI接口调试








 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150386.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 宽度学习与深度学习中的时空转化问题

    宽度学习与深度学习中的时空转化问题ž在自然界中运动是绝对的,静止是相对的。这句话也说明了深度学习过去、现在、未来。由于我发现山东大学有个组和澳门大学陈俊龙团队的宽度学习、极限学习等。目前由于神经网络是黑盒研究、所以很多人利用反卷积和卷积可视化来解释这种微分和积分的编程,由于冗余和稀疏特性使用微积分或者差分求导数和偏导是必然。宽度学习文章和代码研究地址:http://www.broadlearning.ai在深度学习上目…

    2022年5月21日
  • 2021pycharm永久激活码[免费获取]

    (2021pycharm永久激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~MLZPB5EL5Q-eyJsaWNlb…

    2022年3月20日
  • 小程序 消息推送配置token无效(解决方法)订阅消息

    小程序 消息推送配置token无效(解决方法)订阅消息代码://验证tokenfunctionverifyToken(){$signature=$_GET[“signature”];$timestamp=$_GET[“timestamp”];$nonce=$_GET[“nonce”];$token=’571247942′;//和token(令牌)一一对应$tmpArr=array($token,$timestamp,$nonce);sort($tmpArr,SORT_STR

    2022年9月12日
  • pycharm设置打不开怎么回事_pycharm界面设置

    pycharm设置打不开怎么回事_pycharm界面设置害,pycharm专业版到期了,不能再用了,下了一个社区版,想要编译程序的时候发现没有解释器。解决方法找到设置(右上角,小齿轮)找到项目的Pythoninterpreter设置,点击小齿轮添加新的解释器。选择添加新的interpreter选择对应版本的Python即可。点确定就设置好了。…

    2022年8月26日
  • javascript_JavaScript走向成熟

    javascript_JavaScript走向成熟javascript明年JavaScript将有20年的历史(从首次在Netscape浏览器中首次亮相开始算起)。这是一门具有悠久历史的语言,并且从其早期开始就带来了很多负担,但是随着它离开少年时代的到来,我认为这是一种最终发展起来的语言。JavaScript通过允许脚本在浏览器中运行来彻底改变了Web。但是,在最初流行之后,它很快就开始受到不良声誉,并且经常与编写不良,剪切粘贴的代码…

    2022年7月13日
  • redhat7.2配置网络yum源

    redhat7.2配置网络yum源

    2022年3月1日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号