有谁做过两片LM3S系列芯片之间的SPI主从通信?

guguo2010   2011-9-23 15:39 楼主

如题。

 

以前做过两片CM3芯片之间的SPI通信,无论是主器件发给从器件,还是从器件发给主器件,数据都可以正常通信,当时领导也是认可了我的方案的。

我的方案是,两个芯片接口除去SSI四线连接外,还需要一个普通IO作为从器件数据发起的请求端口。

 

现在问题来了,主控CM3芯片IO不够了,所以领导开始要求我改变原先通信方案,努力实现仅依靠4线SSI接口完成主到从、从到主的数据交换与实时通信。哎,难啊~~~

 

谁给教下?或者有现成的程序给学习学习撒

回复评论 (13)

其实,能让我说服领导:没有外加的一个IO,是无法实现交互通信的。也就可以了!
可是,我理论不够,说服不了他···
点赞  2011-9-23 15:42
一条三寸不烂舌 + 一杯子的口水,终于让领导陷入的沉思
点赞  2011-9-23 16:21

回复 楼主 guguo2010 的帖子

不太理解楼主为啥额外增加一个IO,spi本来就是4线的,clk、rxd、txd、cs,cs拉低开始数据传输。
点赞  2011-9-23 16:26
如果是1对1的spi通讯,cs直接接地,从机也可以通过中断方式接收数据。

[ 本帖最后由 永远的不知 于 2011-9-23 16:29 编辑 ]
点赞  2011-9-23 16:27

回复 5楼 永远的不知 的帖子

那如果从机有数据要发起呢? 主机如何知道何时去接收这个数据?
点赞  2011-9-23 16:32
如果时效要求不高的话,可以通过软件来实现,做一个协议,主机每固定时间发一次询问,当从需要做主的时候,可以调换一下,然后如此循环,当协议失效时,主从回到原本定于的关系。

还有一种方法就是不要用cs管脚了,有clk,tx,rx就够用了,把这个cs用来做主从的协调。
点赞  2011-9-23 16:53

回复 7楼 weirgu 的帖子

是的,问题就在这里,项目要求实时性较高的···

对于你后面说的一种方法,好像LM3S系列的SSI模块都不支持3线模式的;不过,我倒是不知道CM3系列芯片能否支持双主通信哦
点赞  2011-9-23 16:58
spi本来就是主从模式,可否用uart?
如果只有1个主和1个从,那应该用3线也可以。
点赞  2011-9-23 17:12
1. SPI是主从模式的串行接口,所有的操作都是由SPI的主机发起
2. 实时性要求不高的应用,可以使用定时器,由主机定时查询从机的状态。
3. 按照楼主的描述,你使用定时器查询的方法可能行不同。
4. 按照我的理解,楼主是想让两个SPI设备分别工作,当任意一端发生一些事件后,都要通知对方,让对方
  及时接收数据。
5. 关键点在于事件发生后,这个实时性有多强。楼主可以把SPI接口设置成普通IO口,当任意一端发生触发事件后,用IO口通知对方,然后,双方切换到SPI模式进行通信。通信结束后切换回普通IO。用时分复用的方法来解决IO的不足的问题。

QQ: 906411450
点赞  2011-9-23 18:02

回复 10楼 Triton.zhang 的帖子


兄弟,在理啊!你说的这种方式应该行的通!我明天去公司就试试看~~~谢谢!
点赞  2011-9-23 21:13

端口复用的方法理论上可行。

以VS1003B和山景方案为基础,倾心研制数字化语音录放产品 排忧邮箱xg_2004_sy@126.com
点赞  2011-9-25 12:19
呵呵 ,我刚做完spi的通讯,一个主两个从,多加了4条IO线才搞定的
点赞  2011-9-26 14:18
引用: Triton.zhang 发表于 2011-9-23 18:02
1. SPI是主从模式的串行接口,所有的操作都是由SPI的主机发起
2. 实时性要求不高的应用,可以使用定时器, ...

大虾,求支持。来给例程配置看看。谢谢!
点赞  2014-3-24 15:14
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复