我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 582|回复: 0

[技术文章] 浅谈STM32之SPI

[复制链接]

该用户从未签到

36

主题

126

回帖

178

积分

二级逆天

积分
178

终身成就奖特殊贡献奖原创先锋奖

发表于 2021-10-6 09:19:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
1.SPI是串行外设接口的缩写,这句话怎么理解呢?
所谓外设接口 就是同外设(外部设备)通信的端口。通信的方式是采用串行通信。SPI就是这么一个东东。那么问题又来了,他是如何做到这样的呢?
如下图

                               
登录/注册后可看大图
在左上部分中,(1)红色部分,从地址和数据总线中获得数据,通过1写入到2(发送缓冲区)中,2(发送缓冲区)中的数据再送到3(移位寄存器)中,3(移位寄存器)通过移位,将数据一位一位移出到4(MOSI接口)。MOSI和外部设备相连。红色部分是数据发送的过程。
(2)蓝色部分,<1>从外部设备获取到数据,送到<2>(移位寄存器)中,移位寄存器再将其送到<3>(接收缓存器)中,接收缓冲器通过地址和数据总线将其存储下来。


2.在上图中有个SCK(串口时钟),为啥又要这么个东东呢?
主设备可以和很多不同种类的外设进行通信,那么问题来了,不同的外设他们有自己的时钟系统,为了方便主设备和任意外设通信,就制定了一个规则,在通信的时候,必须在这个SCK的情况下,通信,理所当然,这个SCK是由主设备提供的(主设备的波特率发生器,见上图)。关于SCK又会牵扯到时钟极性和相位。之所以出现这个问题是在于,不同外设的时钟极性是不同的,主设备提供了统一的SCK,但是无法确定他们的极性,换句话说,有的设备是高电平有效,有的是低电平有效,为了达到和任何外设都可以通信的目标。所以出现了时钟极性和相位的这么一个选择,

                               
登录/注册后可看大图
3.NSS又是个什么东东呢?
SPI是通过MOSI和MISO和外部设备进行通信的,假如此刻正在通信,如果此刻又想和一个外设进行单独通信,为了避免数据线的冲突,就可以使用NSS。主设备的NSS和从设备的NSS相连。
NSS又是如何做到的呢?如下图:

                               
登录/注册后可看大图
可以通过SSOE(蓝色方框)中的配置,来进入NSS硬件模式。通过硬件来确定NSS输出功能有没有开启。
也可以通过红色方框线的方式(软件NSS模式)进行,首先SSM来确定要不要开启软件NSS,确定开启后,数据通过NSS进入数据选择器,SSI来确定具体的是哪个从设备。从而数据选择器,选择出该从设备发过来的相应的数据。
到此打住,以上的功能满足了SPI的通信功能。接下来只需要好好配置SPI,就可以使用了,在配置SPI方面,芯片手册有明确的规定,只需要按部就班的做即可,如下图

                               
登录/注册后可看大图

                               
登录/注册后可看大图
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

每日签到,有金币领取。


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

平平安安
TOP
快速回复 返回顶部 返回列表