搜索
bottom↓
回复: 21

关于SPI通信一主多从的疑问

[复制链接]

出0入0汤圆

发表于 2024-1-17 20:45:27 | 显示全部楼层 |阅读模式
我尝试用1个SPI主机与3路SPI从机连接,即SCK,MISO,MOSI共享总线,3个从机分别用3根片选来选择。

当2个或3个从机连接上去时,SPI一直接收到0,但是任何1路从机单独通信都正常,一旦再插上1路,原本正常的数据立刻变成0。

例如,单独接从机1,可以正常通信,此时接上从机2,从机2是没有被片选的(从机2的片选一直接3.3V高电平),从机1的通信立刻变成0。

SCK,MISO,MOSI这些总线需要加电阻吗?还是其他什么原因?难道是从机芯片自身特性不支持一主多从?

出0入8汤圆

发表于 2024-1-17 21:20:25 | 显示全部楼层
片选没使能所有脚应该是输入状态

出0入0汤圆

 楼主| 发表于 2024-1-17 21:32:45 | 显示全部楼层
蓝蓝的恋 发表于 2024-1-17 21:20
片选没使能所有脚应该是输入状态
(引用自2楼)

“所有脚”是指从机的引脚?

出0入22汤圆

发表于 2024-1-17 22:10:03 来自手机 | 显示全部楼层
stm32的spi从鸡是半残废的。dma不好用,miso不受cs控制。或许我的水平不够吧。

出200入2554汤圆

发表于 2024-1-17 22:11:38 | 显示全部楼层
这就是 MISO 没释放。 有些片子支持释放 MISO,当 SS=H 时候 MISO 释放给别人用; 有些片子不支持,就无法直接复用 SPI 总线。

出0入0汤圆

 楼主| 发表于 2024-1-17 22:55:12 | 显示全部楼层
会不会是从机芯片空闲时(指没有被片选信号选中时)MISO就是默认低电平,导致把总线MISO全部拉低了?

出0入31汤圆

发表于 2024-1-18 07:54:52 来自手机 | 显示全部楼层
示波器,观察

出0入0汤圆

发表于 2024-1-18 08:34:46 | 显示全部楼层
t3486784401 发表于 2024-1-17 22:11
这就是 MISO 没释放。 有些片子支持释放 MISO,当 SS=H 时候 MISO 释放给别人用; 有些片子不支持,就无法 ...
(引用自5楼)

独占了,确实没法复用

出0入16汤圆

发表于 2024-1-18 08:37:17 | 显示全部楼层
有的SPI芯片 MISO会强制拉低,无法复用

出0入0汤圆

 楼主| 发表于 2024-1-18 08:38:51 | 显示全部楼层

我用示波器接MISO看了下,接一路(SS1 low),信号正常,接两路(SS1 low, SS2 high),信号波形还在,但是电压峰值从3.4V降低为1.44V,接三路(SS1 low, SS2&SS3 high),信号波形还在,但是电压峰值再度降低为0.75V。

为什么每接一路从机,电压都下降?照理说从机未被片选应该处于高阻态,不影响电压才对。

这种情况是不是该在sck miso mosi总线上接上拉电阻?

出0入0汤圆

 楼主| 发表于 2024-1-18 10:43:02 | 显示全部楼层
NFYG2022 发表于 2024-1-18 08:38
我用示波器接MISO看了下,接一路(SS1 low),信号正常,接两路(SS1 low, SS2 high),信号波形还在,但是电 ...
(引用自10楼)

进一步测试发现从机未被片选时 MISO一直被置低电平......而不是高阻态

出615入1076汤圆

发表于 2024-1-18 10:49:01 | 显示全部楼层
NFYG2022 发表于 2024-1-18 10:43
进一步测试发现从机未被片选时 MISO一直被置低电平......而不是高阻态
(引用自11楼)

从机是什么芯片?能不能说一下让大家避坑

出0入0汤圆

 楼主| 发表于 2024-1-18 11:20:06 | 显示全部楼层
dukelec 发表于 2024-1-18 10:49
从机是什么芯片?能不能说一下让大家避坑
(引用自12楼)

MT6816 麦歌恩的磁编码器芯片

出0入4汤圆

发表于 2024-1-18 12:40:05 | 显示全部楼层
NFYG2022 发表于 2024-1-18 11:20
MT6816 麦歌恩的磁编码器芯片
(引用自13楼)

3线模式还是4线?

The MT6816 also provides a 4-Wire or 3-Wire SPI (Register ‘SPI_Mode’ should be
programmed to ‘High’ to enable 3-Wire SPI Mode)

出0入0汤圆

 楼主| 发表于 2024-1-18 13:10:10 | 显示全部楼层
Xujuango 发表于 2024-1-18 12:40
3线模式还是4线?

The MT6816 also provides a 4-Wire or 3-Wire SPI (Register ‘SPI_Mode’ should be ...
(引用自14楼)

4线模式,没修改MT6816的寄存器

出0入0汤圆

发表于 2024-1-18 13:39:54 | 显示全部楼层
NFYG2022 发表于 2024-1-18 08:38
我用示波器接MISO看了下,接一路(SS1 low),信号正常,接两路(SS1 low, SS2 high),信号波形还在,但是电 ...
(引用自10楼)

在MISO线上加个强上拉电阻。单片机内部上拉电阻太弱。

出0入0汤圆

 楼主| 发表于 2024-1-18 13:55:27 | 显示全部楼层
trave_yang 发表于 2024-1-18 13:39
在MISO线上加个强上拉电阻。单片机内部上拉电阻太弱。
(引用自16楼)

也不知道MT6816内部上拉/下拉电阻多大,还得一个个试出合适的外部上拉阻值

出200入2554汤圆

发表于 2024-1-18 14:43:58 | 显示全部楼层
NFYG2022 发表于 2024-1-18 13:55
也不知道MT6816内部上拉/下拉电阻多大,还得一个个试出合适的外部上拉阻值 ...
(引用自17楼)

这不是上拉/下拉的事,不释放 MISO 你怎了拉都不可靠: 能拉上去了,某些片子又拉不下来了。
国产片子就这点不好,工作模式啥的都不写明,但凡复用一下全是坑。

建议上三态门搞一下,MISO 由 SS 负责使能。

出0入0汤圆

 楼主| 发表于 2024-1-18 15:47:39 | 显示全部楼层
t3486784401 发表于 2024-1-18 14:43
这不是上拉/下拉的事,不释放 MISO 你怎了拉都不可靠: 能拉上去了,某些片子又拉不下来了。
国产片子就 ...
(引用自18楼)

感觉你这个建议最靠谱

出0入45汤圆

发表于 2024-1-18 16:18:18 | 显示全部楼层
本帖最后由 myiccdream 于 2024-1-18 16:19 编辑
NFYG2022 发表于 2024-1-18 13:55
也不知道MT6816内部上拉/下拉电阻多大,还得一个个试出合适的外部上拉阻值 ...
(引用自17楼)


上拉是不行的
曾经有一个芯片的供应商 的芯片。 他们的CS 为高时候,MISO 会把总线拉到地
他们给出的方案是 在该芯片的MISO总线上串联一个 合适的电阻。
就是即使我把总线拉到地了,但是有电阻在,总线上其他设备还是能通信。
或者你可以试试那种零点几伏的二极管

出615入1076汤圆

发表于 2024-1-18 17:00:09 来自手机 | 显示全部楼层
NFYG2022 发表于 2024-1-18 15:47
感觉你这个建议最靠谱
(引用自19楼)


确定没有片选时,miso 一定为低的话,还可以考虑加一片三输入或门来解决问题

或者试试它的 3 线模式

出0入0汤圆

发表于 2024-1-18 17:35:00 | 显示全部楼层
myiccdream 发表于 2024-1-18 16:18
上拉是不行的
曾经有一个芯片的供应商 的芯片。 他们的CS 为高时候,MISO 会把总线拉到地
他们给出的方案 ...
(引用自20楼)

这种设计还是老老实实加一个三态门芯片比如74LVC1G126最靠谱,或者加一个模拟开关74LVC1G3157也行
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-3 09:22

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表