首页 > 其他分享 >SPI 接线的注意点

SPI 接线的注意点

时间:2024-07-25 13:27:41浏览次数:12  
标签:MISO 主机 MOSI 从机 SPI 接线 注意 管脚

MISO和MOSI的含义以及为何主机从机不能交叉接

   信号 MISO =  Mast In Slave Out,即 在主机这边是输入,在从机那边是输出。

   信号 MOSI =  Mast Out Slave In,即 在主机这边是输出,在从机那边是输入。

根据输入接输出,输出接输入的原理,所以,就应该是

    SPI主机的 MISO,直接 接 SPI从机的MISO,因为前者是输入,后者是输出。

    SPI主机的 MOSI,直接 接 SPI从机的MOSI,因为前者是输出,后者是输入。

也就是,主机的MISO需要接从机的MISO,主机的MOSI需要接从机的MOSI,不能交叉接

那SI和SO呢?

说到这里,可能有些朋友会说:“不对!我记得之前在TI或FreeScale的某个单片机上,主机的SO接的是MOSI,而不是MISO。“  这是怎么回事呢?

这里,就需要理解一下,在FreeScale、NXP等某些单片机或SPI FLASH上,经常会看到 SI 和 SO 这样缩写,这里遵循的确实另外一个缩写含义:

       SO =  Serial Out  串行输出

       SI   =  Serial In   串行输入

这里的S,不是MOSI里的Slave从机的意思,而是Serial串行的意思。所以,单纯看SO或SI,是无法判断对应的是MISO还是MOSI,需要根据这个设备,是SPI主机还是SPI从机,做进一步的分析判断。

比如,假设一个设备是SPI主机,如果其SPI接口管脚标注为SO(串行输出),因为是主机上的,所以就是主机输出,对应的意思就是Master Out,也就是Master Out Slave In,也就是 SPI接口的MOSI,所以就需要去另外一边的SPI设备的MOSI。

这样理解,是不是就好记住,不再犯错了?

总之,如果数据手册上信号标注的是MISO或MOSI,这里的S对应的是Slave。要注意不要交叉接。而如果数据手册上标注的信号名称是SI和SO,这里的S表示的是Serial,要根据是主机还是从机,决定对应的是MISO还是MOSI。

 

另外,有少部分单片机主机,可以通过管脚配置,自由选择SPI管脚所映射的管脚PAD,或者对MISO和MOSI管脚进行管脚交换映射。所以,当设计SPI接错线时,不要着急,先检查一下,这款单片机是否可以进行管脚配置的互换。如果可以,那么恭喜你,你只需要在单片机的配置寄存器里,进行一下互换映射就可以了而不必重新改板。但是遗憾的是,大多数单片机的管脚,都是不可以配置互换的。因此,在进行硬件设计时,千万不要犯迷糊弄错了。始终记住,SPI接线的MISO和MOSI信号不用交叉接!

 

标签:MISO,主机,MOSI,从机,SPI,接线,注意,管脚
From: https://blog.csdn.net/Kodaka_Super/article/details/140687175

相关文章

  • Django 根据指定的数据库表生成相应的 Django 模型和注意事项
    要根据指定的数据库表生成模型,并且将这些模型放入指定的Django应用中,你可以按照以下步骤进行操作:配置数据库连接:确保你的settings.py文件中的数据库配置正确,以便Django能够连接到你的数据库。DATABASES={'default':{'ENGINE':'django.db.backends......
  • 没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成
      ......
  • 零基础STM32单片机编程入门(二十) 华邦W25Q32 SPI FLASH实战含源码
    文章目录一.概要二.W25Q32SPIFLASH主要参数三.W25Q32SPIFLASH芯片介绍1.W25Q32芯片内部框图2.W25Q32芯片指令表格3.W25Q32芯片通讯时序四.W25Q32SPIFLASH读写实验五.CubeMX工程源代码下载六.小结一.概要FLASH是一种存储芯片,通过程序可以修改数据,即平时所......
  • 需要注意的(持续更新)
    注意取模。开longlong。有没有#defineintlonglong。scanf一般要写&。二维的东西,注意不要把m写成n。不要把m和n弄混。用getchar()读字符需谨慎。可以尝试用cin。不要把+=写成=。不要把b写成a。分清要算r-l(给两个横坐标,算横向的距离)还是r-l......
  • C++this指针--指针的介绍用法以及相关注意事项
    什么是this指针this指针是在C++中用来指向当前对象的特殊指针。它是每个非静态成员函数的隐式参数,指向调用该函数的对象。在C++类的成员函数中,除了静态成员函数外,每个成员函数都有一个隐含的this指针,它指向调用该函数的对象。这个指针可以让成员函数访问调用它的对象......
  • SPI协议——结合百问网STM32入门 STM32 HAL快速入门与项目实战视频
    目录1、SPI协议的概念2、SPI的传输模式2.1SPI工作模式2.2SPI传输模式2.3SPI操作方法3、时序图4、代码实现4.1SPIHAL库编程4.2中断方式4.3DMA方式函数说明5、总结5.1SPI协议的优点5.2SPI协议的缺点1、SPI协议的概念SPI(SerialPeripheralInterface,......
  • Android Spingboot 实现SSE通信案例
    SSESSE(Server-SentEvents)是一种用于实现服务器主动向客户端推送数据的技术,它基于HTTP协议,利用了其长连接特性,在客户端与服务器之间建立一条持久化连接,并通过这条连接实现服务器向客户端的实时数据推送。Server-SentEvents(SSE)和Sockets都可以用于实现服务器向客户端推......
  • 学习STM32的SPI总线通信
    学习STM32的SPI总线通信需要了解SPI的基本原理和STM32的库函数使用方法。SPI(SerialPeripheralInterface)是一种全双工的同步串行通信总线,用于在微处理器或微控制器与外围设备之间传输数据。在STM32中,SPI总线通信需要使用SPI外设和相关的库函数。SPI外设包括多个SPI控制器,每个......
  • C++ 运算符重载的注意事项
    C++的运算符重载是一种强大的特性,它允许开发者为已存在的运算符赋予新的含义,以适应特定数据类型的需求。在使用运算符重载时,需要注意以下几点:不改变运算符原有语义:运算符重载应保持运算符原有的基本含义,避免引起混淆。例如,重载加法运算符+时,应确保其结果与常规加法操作相符。......
  • Python贝叶斯、transformer自注意力机制self-attention个性化推荐模型预测课程平台学
    全文链接:https://tecdat.cn/?p=37090原文出处:拓端数据部落公众号 分析师:KungFu近年来,在线课程凭借便捷的网络变得越来越流行。为了有更好的用户体验,在线课程平台想要给用户推荐他们所感兴趣的课程,以便增大点击率和用户黏性。解决方案任务/目标根据学生所选的历史课程,预测出......