【MCU_MOSI_MISO别再交叉了】

一、背景

STM32常见接口SPI,经常会有人把MOSI和MISO接反了。自己之前画板子,也交叉过,是时候做个总结了。

二、MOSI和MISO

1、MOSI = DIN = SDI ,Master发出的数据,Slave接收
2、MISO = DOUT = SDO,Slave发出的数据,Master接收
**=**表示这几个名字是等效的,完全一样的。

三、MOSI和MISO是否要交叉?

Ans:不交叉,直连
1、MOSI <=> MOSI
2、MISO <=> MISO
Q1: 为什么不需要交叉呢?
A1:
MOSI <=> MOSI等同于
Master out
=> Slave in

MISO <=> MISO等同于Master in <= Slave out

四、交叉后,会怎么样?

1、近期接触了一个案例,硬件连接没问题,MOSI和MOSI连接,MISO和MISO连接,但是通信异常。于是开启了定位过程。
Step1:Keil工程,debug调试,代码上没有接收到数据。
Step2:抓Slave侧DIN管脚信号,信号幅度高电平1V左右。比高电平门限低,软件没识别到数据是合理的。
Step3:为什么信号幅度会偏低呢?
Step4:抓取DIN管脚串阻前后的波形比对。DIN串阻前信号幅度只有2V左右,经过33R串阻后,幅度就更小了。
在这里插入图片描述
Step5:将串阻短路后,量DIN管脚,直接量不到信号了。
Step6:将串阻断开后,量MCU发出的信号,幅度正常。百思不得其解。
Step7:最后发现,代码上把DIN和DOUT管脚交叉了,真是防不胜防啊,硬件没交叉,软件上却出现了交叉。到此,定位结束。

五、结论

1、MOSI和MISO软硬件两个层面都别再交叉啦直连就对了
2、为防止交叉,绘制硬件时,容易交叉的地方都预留串阻,避免割线。最好的方式是彻底理解后正确连接,连割线都不需要。串阻只是用于调节信号质量用的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值