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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 手机cpu控制免root_cpu利用率低但是卡

    手机cpu控制免root_cpu利用率低但是卡想不想让CPU利用率展示成一首优美的旋律,就像弹琴一样。我的意思是,你想让系统以及task的CPU利用率是多少它就是多少,一切都是由你的程序自己来调制演奏。这需要一种自指机制。哈哈,完全可以,本文来演示,或者说,你可以把本文的内容看作一个戏弄运维人员的恶作剧。运维人员经常会遇到各种CPU高的问题,然后成群结队地去排查,想让队伍更大些吗?想让事情更诡异吗?我让你查,我让你查。哈哈。事先声明,若用本文描述的手段实施恶意行为,将会受到谴责,这并不是一个真正工程师该有的行为,更有辱手艺人的探索精神。

    2025年8月24日
    3
  • 子网划分详解与子网划分实例精析

    子网划分详解与子网划分实例精析目录子网划分理论基础为什么进行子网划分明确需求知识点子网划分常见问题子网划分实例精析C类子网划分实例分析已知网络地址和子网掩码,求子网划分结果已知IP地址和子网掩码求子网划分B类地址子网划分实例已知网络地址和子网掩码求子网划分已知ip地址和子网掩码求子网划分A类子网划分实例已知网络地址和子网掩码求子网划分已知ip地址和子网掩码求子网划分小结…

    2022年6月27日
    33
  • java observable_java primitive type

    java observable_java primitive typeSortedSet接口主要用于排序操作,即实现此接口的子类都属于排序的子类SortedSet接口定义:publicinterfaceSortedSet<E>extendsSet<E>该接口也继承了Set接口,定义了如下方法:importjava.util.SortedSet;importjava.util.TreeSet;public…

    2022年10月21日
    3
  • Snapde一个全新的CSV超大文件编辑软件

    Snapde一个全新的CSV超大文件编辑软件今天介绍如果数据量超过104万行Excel无法打开了,用什么软件可以打开呢?Snapde,一个专门为编辑超大型数据量CSV文件而设计的单机版电子表格软件;它在C++语言开发的Snapman多人协作电子

    2022年7月1日
    27
  • densenet121网络结构_resnet网络结构详解

    densenet121网络结构_resnet网络结构详解论文:https://arxiv.org/pdf/1608.06993.pdf参考文献:https://blog.csdn.net/u014380165/article/details/75142664https://blog.csdn.net/qq_14845119/article/details/79272082与残差网络的区别:残差网络是加上跳转链接,非线性映射关…

    2022年9月29日
    2
  • vue2 renrne 引入tinymce[通俗易懂]

    vue2 renrne 引入tinymce[通俗易懂]tinymce1.引入和原始使用下载地址:https://www.tiny.cloud/get-tiny/self-hosted/语言包地址:https://www.tiny.clou

    2022年7月2日
    79

发表回复

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

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