【科普贴】SPI接口详解

【科普贴】SPI接口详解一、SPI接口简介SPI接口是一种同步串行总线(SerialPeripheralInterface)多用于Flash存储器(如NORFlash&NandFlashd),ADC、LCD控制器等外围器件的通讯接口。大大增强了处理器的外设扩展能力。SPI接口缩写SSEL:slaveselect,常常也被写作CS(chipselect)或SS(slaveselect)SCK:serialclock,常常也写作SCLK或SCLMISO:masterinputslaveoutpu

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

一、SPI接口简介

SPI接口是一种同步串行总线(Serial Peripheral Interface)多用于Flash存储器(如NOR Flash&Nand Flash),ADC、LCD控制器等外围器件的通讯接口。大大增强了处理器的外设扩展能力。
SPI接口缩写
SSEL:slave select,常常也被写作CS(chip select)或SS(slave select)
SCK:serial clock,常常也写作SCLK或SCL
MISO:master input slave output,常常被简写为SO(slave output,也有说是serial output)
MOSI:master output slave input,常常被简写为SI(slave input,也有说是serial input)
在这里插入图片描述
在SPI总线上,当一个主机和多个从机进行通讯时,通过CS来选择和那个设备进行通讯,可以将CS理解为enable信号,低电平有效。当多个从机存在时,这就要求从机的MISO口具有三态特性,使得该接口在器件未被选通时表现为高阻抗。当前多数SPI设备在不做通讯时,默认的状态通常就是高阻抗状态。
如下图是某个SPI Nand Flash中的Timing图。
在这里插入图片描述
SPI接口通常少有被用作一主多从的状态。常常被用作一对一的SPI通讯,常常的连接方式如下方式。
在这里插入图片描述

二、SPI通讯方式

标准的SPI通讯协议,通常会采用时钟的极性和采样的相位,将SPI分为四种工作模式
说人话就是:时钟的空闲状态分为高电平和低电平两种状态。采样方式可以选择上升沿采样或者是下降沿采样两种方式,进行排列组合就是四种状态。详细见下。
在这里插入图片描述
通常设备手册是中会描述SPI设备支持那些模式。下图是某家SPI NAND所支持的SPI模式。
下图中
CPOL :Clock Polarity(时钟极性 )
CPHA :Clock Phase(时钟相位)
时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外设音时钟相位和极性应该一致。
输入数据在上升沿的时候保持,数据在下降沿的时候允许变化。说白了就是上升沿采样。 在这里插入图片描述
SPI通讯常用到的被分为四种通讯方式1)单线模式,2)标准模式,3)双线模式,4)四线模式,各自的应用场景不同。SPI标准模式上面有介绍过这里不过多累述。
SPI单线通讯模式
SPI单线模式是将原来的两根数据线改成一根,通讯方式变成了半双工的通讯方式,在接线上,只需要三根线分别是SCLK、I/O、CS。时钟频率通常可以做到10MHz
在这里插入图片描述
SPI双线通讯模式(Dual SPI)
SPI双线模式,是将原来的SI、SO两个数据线单线数据线,改成双向数据线。也是一种半双工的通讯模式。下图是某家SPI NAND中对于这种模式的描述。
在这里插入图片描述
SPI四线通讯模式
SPI四线模式,通常是Flash使用较多,SPI NOR Flash和SPI NAND Flash都有使用,这种方式是将SI、SO、WP、HOLD全部改成双向IO进行通讯。也是一种半双工通讯模式。下图是某家SPI NAND中对于这种模式的描述。
在这里插入图片描述

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/150374.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 喊山第二部_喊山主演

    喊山第二部_喊山主演原题链接喊山,是人双手围在嘴边成喇叭状,对着远方高山发出“喂—喂喂—喂喂喂……”的呼唤。呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的“讯号”,达到声讯传递交流的目的。原来它是彝族先民用来求援呼救的“讯号”,慢慢地人们在生活实践中发现了它的实用价值,便把它作为一种交流工具世代传袭使用。(图文摘自:http://news.xrxxw.com/newsshow-8018.html)一个山头呼喊的声音可以被临近的山头同时听到。题目假设每个山头最多有两个能听到它的临近山头。给定任意一个发

  • 服务器查询外网ip的方法

    服务器查询外网ip的方法curlhttpbin.org/ip[root@yx01~]#curlhttpbin.org/ip{“origin”:”120.24.109.9″}[root@yx01~]#

  • 2020年kali最新国内更新源sources.list

    2020年kali最新国内更新源sources.list打开sources.list文件命令:leafpad/etc/apt/sources.list添加以下更新源:#中科大debhttp://mirrors.ustc.edu.cn/kalikali-rollingmainnon-freecontribdeb-srchttp://mirrors.ustc.edu.cn/kalikali-rollingmainnon-f…

  • 安卓app十大开发框架_web应用开发学什么

    安卓app十大开发框架_web应用开发学什么国内第一本基于Android2.0的经典著作,5大专业社区联袂推荐,权威性毋庸置疑!·Android开发与传统的J2ME开发有何相似与不同?·如何通过SharedPreferences、Files、Network和SQLite等方式高效实现Android数据的存储?又如何通过ContentProviders轻松地实现Android数据的共享?·如何使用OpenCore、MediaPlayer、MediaRecorder方便快速地开发出包含音频和视频等流媒体的丰富多媒体应用?·如何

  • transparentblt[通俗易懂]

    transparentblt[通俗易懂]透明位图的显示作者:王骏下载本文示例代码包含透明色的位图的绘制方法有多种,最简单的方法是调用现成的函数:TransparentBlt,也可以通过自己的代码实现类似TransparentBlt的功能,实现过程也有两种形式,一种是事先做一张掩码位图,另一种是动态生成掩码位图。本文将介绍动态生成掩码位图绘制具有透明区域位图的方法。一、TransparentBlt函数的使用TransparentBlt

    2022年10月21日
  • bat命令大全_bat暂停命令

    bat命令大全_bat暂停命令文章目录一、bat(批处理文件类型)注意事项命令简介二、使用步骤1.引入库2.读入数据总结一、bat(批处理文件类型)注意事项1.文件保存格式为ANSI2.以管理员身份运行文件命令简介cmd #相当于已管理员身份执行了命令提示符@echo(off|on) #关闭或打开回显命令@echooffipconfigpause #相当于自动打开cmd(命令提示符)输入ipconfig查看电脑网络信息cd/d路径地址 #Windows下进入指定路径pause #一般在

发表回复

您的电子邮箱地址不会被公开。

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