大家好,又见面了,我是你们的朋友全栈君。
该篇文章参考: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接口不需要进行寻址操作,且为全双工通信,显得简单高效。
在多个从器件的系统中,每个从器件需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。
SPI接口在内部硬件实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。如下图所示,在SCLK的下降沿上数据改变,同时一位数据被存入移位寄存器。
SPI接口内部硬件图示:
最后,SPI接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据。
二、SPI模式
SPI模式由4种mode型,详见下图。
mode0/3上升沿采样,下降沿锁存。mode1/2下降沿采样,上升沿锁存。
注:Master和Slave同时刻采样或锁存数据。
三、实例说明
以M25P40芯片的SPI接口为例说明。该芯片支持SPI模式如下:
即支持Mode0和Mode3两种模式。
3.1读取ID
M25P40的ID号具体组成如下图:
datasheet read ID时序
DM8168设置Mode0方式操作M25P40,实际读取ID的时序图:
1、DM8168发送读取ID命令 0x9F
2、M25P40返回ID
下面详细说明制造商ID 0x20返回过程:
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/150386.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...