经常遇到一些朋友,在设计SPI主机和从机的逻辑互联时,会习惯性地仿照UART上的TXD和RXD交叉连接,而将SPI主机的MISO和从机的MOSI进行逻辑连接,SPI主机的MOSI和从机的MISO进行逻辑连接,结果导致设计错误。这里给大家提供一个不再出错而记忆简单的方法--- 理解MISO和MISO缩写的具体含义。

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信号不用交叉接!

SPI接口的MISO和MOSI连接时注意相关推荐

  1. SPI接口的MISO和MOSI连接时是否需要交叉接? SI和SO呢?

    经常遇到一些朋友,在设计SPI主机和从机的逻辑互联时,会习惯性地仿照UART上的TXD和RXD交叉连接,而将SPI主机的MISO和从机的MOSI进行逻辑连接,SPI主机的MOSI和从机的MISO进行逻 ...

  2. spi通讯不需要地线吗_SPI通信时是不是主机和从机的MISO、MOSI两根线应该交叉接呀?...

    [吐槽]河北-河中草 朋友们,SPI通信时是不是主机和从机的MISO.MOSI两根线应该交叉接呀? [吐槽]辽宁-林中水滴 不交叉啊 mosi和mosi [吐槽]河北-河中草 直接接? [吐槽]辽宁- ...

  3. 基于labview的温湿度数据采集_【零偏原创】基于FPGA的多路SPI接口并行数据采集系统...

    摘 要:本文简述了SPI协议,建立了基于FPGA的SPI接口电路模型,并说明其输入输出端口和数据发送和接收过程,仿真验证了在主状态机控制下10个SPI接口并行采集数据,并在FPGA开发板上进行验证. ...

  4. SPI、I2C、UART三种串行总线协议的区别和SPI接口介绍(转)

    SPI.I2C.UART三种串行总线协议的区别 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART( ...

  5. 非标准语法;请使用 _一文读懂使用MCU SPI访问具有非标准SPI接口ADC的方法

    好文章当然要分享啦~如果您喜欢这篇文章,请联系后台添加白名单,欢迎转载哟~ 问题 能否用MCU访问非标准SPI接口? 答案 可以,但可能需要做一些额外的努力. 当前许多精密模数转换器(ADC)具有串行 ...

  6. java如何编写spi接口_软件模拟SPI接口程序代码(4种模式)

    软件模拟SPI接口程序代码(4种模式) SPI协议简介 SPI的通信原理很简单,一般主从方式工作,这种模式通常有一个主设备和一个或多个从设备,通常采用的是4根线,它们是MISO(数据输入,针对主机来说 ...

  7. 软件模拟SPI接口程序代码

    目录 SPI协议简介 SPI接口介绍 SPI接口连接图 SPI数据传输方向 SPI传输模式 模拟SPI程序 SPI协议简介 SPI的通信原理很简单,一般主从方式工作,这种模式通常有一个主设备和一个或者 ...

  8. 使用MCU SPI访问具有非标准SPI接口ADC的方法

    关注.星标公众号,不错过精彩内容 整理:黄工 来源:亚德诺半导体 提问:能否用MCU访问非标准SPI接口? 答案:可以,但可能需要做一些额外的努力. 当前许多精密模数转换器(ADC)具有串行外设接口( ...

  9. 用GPIO模拟SPI接口读取传感器数据

    本文基于平头哥开发板RVB2601,简要介绍了用GPIO模拟SPI时序逻辑,实现SPI协议,按照特定温度传感器的时序,读取其数据,及示例程序 一.概述 SPI(Serial Peripheral In ...

最新文章

  1. 零基础可以学python吗-对于几乎是零基础的人,直接学 Python 编程合适吗?
  2. 使用 Flex 布局与其他普通布局的简单对比
  3. 如何在github发布个人网站或开源项目-手把手教您制作并发布个人网站或主页(二)
  4. 离散数学及其应用 (Kenneth H·Rosen 著)
  5. BZOJ 4417 Luogu P3990 [SHOI2013]超级跳马 (DP、矩阵乘法)
  6. Spring MVC竟然有5种参数绑定的方式?你知道几种?
  7. 微信开发学习日记(一):快速阅读5本书,掌握整体背景
  8. Jmeter基础使用
  9. java之classpath到底是什么
  10. 第一篇论文:改进TCP及UDP的性能分析及比较
  11. python中文版下载32位-Python 2 32位
  12. mysql数据库的流水号生成,数据库流水号生成解决方案
  13. cad图纸服务器共享文件慢,DWG文件打开慢?3个技巧教你实现快速预览!
  14. 学习PS软件的渐变工具
  15. xp计算机调亮度,老xp系统怎么调亮度台式电脑(教你XP系统如何调节亮度)
  16. Chelly个人训练
  17. 通俗易懂的理解:什么是数据埋点?
  18. 美团html页面代码,html+css+js制作美团官网
  19. kubernetes 日志收集
  20. 生产者消费者问题:管程法

热门文章

  1. 高德地图 街道范围_高德地图发布交通“评诊治”系统:让城市上班族每天多睡十分钟...
  2. SSM 电影后台管理项目
  3. python字符串这一篇就够了
  4. 英文字符和数字间隔突然变大
  5. 基于Matlab的交通限速标志的识别系统 数字图像处理大作业
  6. java8的sorted,Java8排序stream.sorted()
  7. 蚂蚁海图tms切片工具
  8. 美颜sdk版本是什么意思?如何选择第三方美颜sdk?
  9. android qq登录分析,Android第三方登录之QQ登录
  10. i9级E52450处理器_来了!十代英特尔酷睿标压处理器,实测跑分首发