devgoon 发表于 2012-6-25 02:31:38

救命了,如果访问多个SPI总线设备

购买的ENC28J60以太网模块、NokiaLCD5110模块、SD模块,按照接线图,3个设备都同时连接SPI总线(Pin11/12/13), 单个的模块可以正常使用,也就是网络模块可以收发数据、LCD5110也可以显示数据、SD模块可以存储数据。但是我希望三个都可以同时工作,比如可以显示和存储网络模块收到的数据、网络模块可以读取SD卡数据,同时显示"正在读取",但是,只能有一个工作,一旦工作后就无法切换到其他模块工作。那位大侠赐教:Arduino怎么操作SPI总线的多个设备,而且可以自由切换。 特别是够买的模块,比如:ENC28J60以太网模块、NokiaLCD5110模块、SD模块、传感模块等等模块。 谢谢!

飞翔的红猪 发表于 2012-6-25 10:05:54

有木有一个类似片选的引脚?

laoyang 发表于 2012-6-25 11:31:23

都应该有片选的

devgoon 发表于 2012-6-25 12:28:48

SPI 设备都有CS片选线,多个设备也可以工作。 但是,我先是网络模块读取命令,然后切换到SD卡存取数据,在切换到LCD5110先是状态,第一次切换可以,但是再切换时,设备就冲突了,无法工作。

devgoon 发表于 2012-6-25 12:35:02

这是我写的测试代码,见笑了,新手!麻烦哪位大侠给看看指导下。

Chenmin 发表于 2012-6-26 15:21:57

wo 跟你一个 问题 求解决

Chenmin 发表于 2012-6-26 15:22:21

简单方案,大不了 2个 arduino 哈哈 然后串联。

弘毅 发表于 2012-6-26 18:09:52

{:soso_e117:}不懂得飘过。。同求

devgoon 发表于 2012-6-26 21:06:58

哇! 那不麻烦了,不会一个Arduino主板,只能接一个SPI设备吧! 哎!技术不到位害死人拉!:'( 但是看老外的Project,好像可以连接操作多个SPI设备的。

羽衣甘蓝 发表于 2012-8-31 15:21:37

arduino板上其他的端口也可以通过程序控制,用作SPI接口

飞翔的红猪 发表于 2012-8-31 15:35:39

我的W5100和24L01就是接在一个ARDUINO上的~~

Pizzro 发表于 2012-10-9 11:14:15

那楼上的怎么连的?

test01 发表于 2012-10-9 12:34:40

各SPI设备的数据与时钟线并联,每个SPI设备的片选脚都独占一个IO。然后用SPI库编程,用到哪个,就先拉高不用的那些片选脚,再拉低用到的设备片选脚

zintiger 发表于 2013-3-9 11:47:23

devgoon 发表于 2012-6-25 12:28 static/image/common/back.gif
SPI 设备都有CS片选线,多个设备也可以工作。 但是,我先是网络模块读取命令,然后切换到SD卡存取数据,在切 ...

用完后,马上把相应的片子的CS置为高电位。请看spi说明。

kittka_h 发表于 2013-3-11 19:04:20

可以试试Mux Shield。https://www.sparkfun.com/products/9832
页: [1]
查看完整版本: 救命了,如果访问多个SPI总线设备