历史上的今天
返回首页

历史上的今天

今天是:2024年10月25日(星期五)

正在发生

2021年10月25日 | stm32专题十八:SPI协议

2021-10-25 来源:eefocus

参考标准SPI协议说明:


1 SPI架构:


SPI的主要部分是状态,控制和数据寄存器,移位器逻辑,波特率发生器,主/从控制逻辑和端口控制逻辑。

SPI模块允许MCU和外围设备之间的双工,同步,串行通信。 软件可以轮询SPI状态标志,或者SPI操作可以是中断驱动的。


2 详细信号说明


2.1 MOSI


master output, slave input


2.2 MISO


master input, slave output


2.3 SS非(低电平使能)


该引脚用于将选择信号从SPI模块输出到另一个外设,当配置为主机时,将其作为数据传输,当SPI配置为从机时,它用作接收从机选择信号的输入。


2.4 CLK


该引脚用于输出SPI传输数据或接收时钟的时钟。注意,这是区分主机和从机的一个非常重要的标志。所有的从机,都只能接收来自主机的时钟,而主机的时钟信号来自于mcu。


3 寄存器映射


SPI的存储器映射如下表3-1所示。 为每个寄存器列出的地址是基址和地址偏移的总和。 基址在SoC级定义,地址偏移在模块级定义。 从保留位读取返回零并且写入保留位无效。

寄存器描述


控制寄存器1

控制寄存器2

波特率寄存器

SPI的速度(可以看到,比I2C要快很多):

SPI状态寄存器

数据寄存器SPIDR

4 功能描述


SPI系统的主要元件是SPI数据寄存器。 主器件中的8位数据寄存器和从器件中的8位数据寄存器由MOSI和MISO引脚相连,形成分布式16位寄存器。当执行数据传输操作时,该16位寄存器通过S-clock时钟从主机串行移位8位,因此在主机和从机之间交换数据。 写入主SPI数据寄存器的数据成为从机的输出数据,传输操作后从主SPI数据寄存器读取的数据是来自从机的输入数据。


读取SPIDER,PTEF = 1,然后写入SPIDR,将数据放入发送数据寄存器。当传输完成且SPIF清零时,接收的数据被移入接收数据寄存器。 这个8位数据寄存器用作SPI接收数据寄存器,用于读取和SPI发送数据寄存器的写入。 单个SPI寄存器地址用于从读数据缓冲区读取数据和将数据写入发送数据寄存器。


SPI控制寄存器1(SPICR1)中的时钟相位控制位(CPHA)和时钟极性控制位(CPOL)选择SPI系统使用的四种可能时钟格式之一。 CPOL位简单地选择非反相或反相时钟。 CPHA位用于通过对奇数SCK边沿或偶数SCK边沿上的数据进行采样来适应两种根本不同的协议。


主机模式:


当MSTR位置1时,SPI以主模式工作。 只有主SPI模块才能启动传输。 通过写入主SPI数据寄存器开始传输。 如果移位寄存器是为空,字节立即转移到移位寄存器。 该字节在串行时钟的控制下开始在MOSI引脚上移出。


从机模式:


当SPI控制寄存器1中的MSTR位清零时,SPI工作在从机模式。


5 传输标准


在SPI传输期间,数据被同时传输(串行移出)和接收(串行移位)。 串行时钟(SCK)同步两条串行数据线上信息的移位和采样。 从选择线允许选择单个从SPI设备,未选择的从设备不会干扰SPI总线活动。 可选地,在主SPI设备上,从选择线可用于指示多主总线争用。

从上面这个框图中可以看到,当开始数据传输时,主机和从机同时往数据寄存器SPIDR中填入数据,然后转移到移位寄存器。在SCK的作用下,两个8位移位寄存器相当于是1个16位寄存器。当一个字节传输完成后,主机的数据发送到从机的移位寄存器中,同时,从机的数据也发送到了主机的移位寄存器中。这时,如果主机想发送数据,就可以忽略从机发过来的数据,继续往DPIDR填入数据,不断循环。而当主机希望接收来自从机的数据时,主机也需要发送一个字节,这时,从机就会把主机需要的数据也发送到主机的移位寄存器(当经过16个时钟边沿,最后一个数据发送完成,数据传输到SPIDR数据寄存器),主机可以直接读取寄存器的值。


使用SPI控制寄存器1中的两位,软件选择串行时钟相位和极性的四种组合之一。CPOL时钟极性控制位指定有效的高或低时钟,并且对传输格式没有显着影响。CPHA时钟相位控制位选择两种根本不同的传输格式之一。主SPI设备和通信从设备的时钟相位和极性应相同。 在某些情况下,在传输之间改变相位和极性以允许主设备与具有不同要求的外围从设备通信。


以下内容转载自:


https://www.cnblogs.com/deng-tao/p/6004280.html


1、什么是SPI?


SPI是串行外设接口(Serial Peripheral Interface)的缩写。是 Motorola 公司推出的一 种同步串行接口技术,是一种高速的,全双工,同步的通信总线。


2、SPI优点

支持全双工通信

通信简单

数据传输速率块


3、缺点

没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据 

可靠性上有一定的缺陷。


4、特点

1):高速、同步、全双工、非差分、总线式

2):主从机通信模式


5、协议通信时序详解

1):SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多 

个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共 

有的,它们是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)。

(1)SDO/MOSI – 主设备数据输出,从设备数据输入;

(2)SDI/MISO – 主设备数据输入,从设备数据输出;

(3)SCLK – 时钟信号,由主设备产生;

(4)CS/SS – 从设备使能信号,由主设备控制。当有多个从设备的时候,因为每个从设 

备上都有一个片选引脚接入到主设备机中,当我们的主设备和某个从设备通信时将需 

要将从设备对应的片选引脚电平拉低或者是拉高。

2):需要说明的是,我们SPI通信有4种不同的模式,不同的从设备可能在出厂是就是配 

置为某种模式,这是不能改变的;但我们的通信双方必须是工作在同一模式下,所以我们 

可以对我们的主设备的SPI模式进行配置,通过CPOL(时钟极性)和CPHA(时钟相位)来 

控制我们主设备的通信模式,具体如下:

Mode0:CPOL=0,CPHA=0

Mode1:CPOL=0,CPHA=1

Mode2:CPOL=1,CPHA=0

Mode3:CPOL=1,CPHA=1


时钟极性CPOL是用来配置SCLK的电平出于哪种状态时是空闲态或者有效态,时钟相位CPHA 

是用来配置数据采样是在第几个边沿:

CPOL=0,表示当SCLK=0时处于空闲态,所以有效状态就是SCLK处于高电平时

CPOL=1,表示当SCLK=1时处于空闲态,所以有效状态就是SCLK处于低电平时

CPHA=0,表示数据采样是在第1个边沿,数据发送在第2个边沿

CPHA=1,表示数据采样是在第2个边沿,数据发送在第1个边沿


例如:

CPOL=0,CPHA=0:此时空闲态时,SCLK处于低电平,数据采样是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在上升沿,数据发送是在下降沿。


CPOL=0,CPHA=1:此时空闲态时,SCLK处于低电平,数据发送是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在下降沿,数据发送是在上升沿。


CPOL=1,CPHA=0:此时空闲态时,SCLK处于高电平,数据采集是在第1个边沿,也就是SCLK由高电平到低电平的跳变,所以数据采集是在下降沿,数据发送是在上升沿。


CPOL=1,CPHA=1:此时空闲态时,SCLK处于高电平,数据发送是在第1个边沿,也就是SCLK由高电平到低电平的跳变,所以数据采集是在上升沿,数据发送是在下降沿。


           

需要注意的是:我们的主设备能够控制时钟,因为我们的SPI通信并不像UART或者IIC通信 那样有专门的通信周期,有专门的通信起始信号,有专门的通信结束信号;所以我们的 SPI协议能够通过控制时钟信号线,当没有数据交流的时候我们的时钟线要么是保持高电平要么是保持低电平。


6、内部工作机制

SSPSR 是 SPI 设备内部的移位寄存器(Shift Register). 它的主要作用是根据 SPI 时钟信号状态, 往 SSPBUF 里移入或者移出数据, 每次移动的数据大小由 Bus-Width 以 及 Channel-Width 所决定.

推荐阅读

史海拾趣

Helium公司的发展小趣事

随着Helium在物联网领域的不断突破和发展,其市场认可度逐渐提升。在2021年,Helium通过Token销售完成了1.11亿美元的融资;次年年初,又以12亿美元估值完成了2亿美元的D轮融资。这些融资的成功不仅为Helium提供了充足的资金支持,也进一步验证了其在物联网和区块链领域的商业价值和发展潜力。同时,Helium还吸引了众多明星机构和投资者的青睐,为其未来的发展奠定了坚实的基础。

EPSON公司的发展小趣事

EPSON始终将品质视为企业发展的生命线。公司建立了严格的质量管理体系,从原材料采购到生产、检测、包装等各个环节都进行严格的质量控制。同时,EPSON还积极引进先进的生产设备和检测技术,不断提高产品的品质和性能。这种对品质的执着追求使得EPSON的产品在市场上赢得了良好的口碑和信誉,逐渐建立了起强大的品牌形象。

Actel公司的发展小趣事

随着业务的不断发展,EPSON开始积极拓展国际市场。公司先后在全球五大洲设立了多个生产和研发机构,以及销售和服务网点,以便更好地服务全球客户。通过不断拓展海外市场,EPSON逐渐实现了全球化战略,其产品和服务已经覆盖全球多个国家和地区。

Elite公司的发展小趣事

随着公司规模的不断扩大和市场的不断拓展,Elite开始实施全球化战略。公司积极开拓国际市场,与全球知名企业建立合作关系,共同推动行业发展。同时,Elite还注重品牌塑造和企业文化建设,通过举办各类公益活动、提升员工福利待遇等方式,增强企业凝聚力和社会影响力。

Henkel公司的发展小趣事

随着公司规模的不断扩大和市场的不断拓展,Elite开始实施全球化战略。公司积极开拓国际市场,与全球知名企业建立合作关系,共同推动行业发展。同时,Elite还注重品牌塑造和企业文化建设,通过举办各类公益活动、提升员工福利待遇等方式,增强企业凝聚力和社会影响力。

Epitex Inc公司的发展小趣事

随着全球环保意识的不断提高,Epitex也积极响应环保号召,将环保理念融入到公司的生产经营中。他们采用环保材料和生产工艺,减少对环境的影响。同时,Epitex还积极参与环保公益活动,推动电子行业的绿色发展。

在可持续发展方面,Epitex也做出了积极努力。他们通过技术创新和产业升级,不断提高资源利用效率和产品附加值。同时,Epitex还注重与供应商和客户的合作,共同推动产业链的可持续发展。

问答坊 | AI 解惑

高速PCB设计指南

高速PCB设计指南,一共八章,word文档,值得一看哦…

查看全部问答>

电脑故障

我的电脑 无法启动 甚至 电源CPU 显卡 风扇 都 不转 电源是 好的 我应该怎样 做 …

查看全部问答>

不仅是外观,揭秘电纸书设计

本帖最后由 jameswangsynnex 于 2015-3-3 20:01 编辑 解读三代kindle,从“书”到“纸”再到“字” “在为汉王设计电纸书之时,我们仔细地研究了电子书的鼻祖——亚马逊推出的三代Kindle产品,然后就发现了一个很有趣的现象:第一代kindle采用了 ...…

查看全部问答>

好心人帮下忙做下毕业设计!

简易声谱仪的固件设计 规定用神州III号的STM32开发板。…

查看全部问答>

求高手

本帖最后由 paulhyde 于 2014-9-15 04:27 编辑 有没有人平时比较空的,能帮助我解决一些问题啊,我在单片机方面不是很专业,需要一个师傅带着,我可以拜他为师,还请师傅不要嫌弃我,回一下我的帖吧!跪谢!!我的qq:335947998 加我的时候最 ...…

查看全部问答>

关于智能小车循迹问题

各位大哥大姐,我在网上买了一个 4路的循迹模块。  程序是一个学长给我们写的。  4路循迹不跟单片机连接起来的时候,每一路指示灯的灭亮显示的正常。  但是只要跟单片机控制端口连接一来 。  指示灯的亮灭 ...…

查看全部问答>

基于LM3s +触摸屏的 计算器程序

基于LM3s +触摸屏的 计算器程序   哪位大侠有啊…

查看全部问答>

MSP-EXP430F5529 培训PPT资料

附件为EXP-MSP430F5529的官方开发板教程,由合肥工大改编,全中文,将之前官版的大实验进行了分解,更容易理解。 [ 本帖最后由 wstt 于 2013-1-28 10:15 编辑 ]…

查看全部问答>

出液晶屏、RS232/RS422转换器、以太网转RS232/RS485/RS422模块

本帖最后由 zhoupxa 于 2013-12-26 18:44 编辑 1. 8块拆机TRULY品牌12864点阵液晶屏,型号MCG12864C2-3,有负压,带背光,可提供规格书及C51驱动测试程序。拆机品,难免磕碰,个别屏面有少许划痕。 实物拍摄,如实描述,成色如图;零售7元/块不 ...…

查看全部问答>

适用于所有便携式电子设备的精确电量监测计

你有这样的经历吗,每次出门前都要检查一下手机的电量,生怕电量不够支撑一天的使用?或者在使用过程中,手机突然就没有电了?TI推出的能够精确地监控电池电量的产品能够帮你解决这些问题。 $(\'flv_GG1\').innerHTML=(AC_FL_RunContent(\'width\', ...…

查看全部问答>