TI中文支持网
TI专业的中文技术问题搜集分享网站

spi 多主机模式

有没有人尝试过spi的多主机通讯呀?

何帅帅:

是不是只要CLK统一,就能进行通讯呀

Susan Yang:

个人感觉多主机会比多从机更加复杂。

不知道您现在使用的是哪款MSP430的芯片?

在主要的MSP430芯片中,使用多主机的时候,您需要使一个主机如master 1 将通过软件(如使用GPIO引脚)将trigger 连到另一主机如master 2上,以确保第二个不会中断。

即master 1应该通过普通端口(如使用GPIO引脚)控制master 2的STE(slave transmit enable)引脚。同理,master 2也应该通过普通端口(如使用GPIO引脚)控制master 1的STE。

这样master 1就知道自己是否被master 2 “shut-up” 或者 released(禁言或者释放)

但是据我所知目前没办法得知 STE pin当前的确切状态,所以实现起来比较困难。

PS:没有实际做过多主机的项目,所以请实际做过的大神分享一下经验 谢谢

何帅帅:

回复 Susan Yang:

我目前使用的是MSP430G2202款芯片。
我的想法是master1 通过GPIO 来给master2 一个中断信号,然后master2 进行数据发送,在两个主机时钟统一的情况下,理论上应该也能实现数据读取。其中,master1 master2都可用于扩展读取其他设备。

何帅帅:

回复 Susan Yang:

或者,能否通过外部中断来控制USIMST变量的0/1(0为从机模式,1位主机模式),这样来实现主从机模式的切换。

灰小子:

回复 何帅帅:

spi多主机的应用,本人觉得重点是对CS线状态的监听,并在操作完毕及时释放cs线。

cs线的状态是所有cs引脚状态的线与

何帅帅:

回复 灰小子:

与啥?兄嘚,后面是啥0.0

Susan Yang:

回复 何帅帅:

之前是我理解错了STE的功能,如果目标是主设备,当使用STE时,则时钟输出也将被禁用,并且内部状态将被重置。所以不太适合多主机的情况。

您的想法“master1 通过GPIO 来给master2 一个中断信号” 这个更确切说应该是

“一个主机master1将通过软件(使用GPIO引脚)将中断发拉到另一主机master2 上,以确保在mster1通信时master2不会中断”

我在E2E上发现了一个帖子,您可以参考一下

e2e.ti.com/…/93631

Susan Yang:

回复 何帅帅:

cs线的状态是所有cs引脚状态的线与

灰小子 说的应该是 “线与”

baike.baidu.com/…/10525288

何帅帅:

回复 Susan Yang:

非常感谢你~~
我的作品不需要两个主机同时为master模式
需要主机1固定为master模式
主机2平时为master模式,仅在接收到主机1的信号(GPIO拉高电平)期间切换为slave模式,
从而让主机1对主机2的数据进行读取
所以是否可以通过程序配置,让主机2在程序运行期间进行master和slave模式的切换呢。。。
我目前的想法是这样的~~

灰小子:

回复 何帅帅:

没法配置,都为master模式时是没法通讯的,主机2收不到主机1的信号。除非主机1用额外的io控制主机2的状态。
个人觉得,可能你的应用中,主机2平时应该保持为slave模式,这是可以和主机1通讯,在需要的时候再转换为master模式模式。

赞(0)
未经允许不得转载:TI中文支持网 » spi 多主机模式
分享到: 更多 (0)