极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 29530|回复: 14

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

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

使用道具 举报

发表于 2012-6-25 10:05:54 | 显示全部楼层
有木有一个类似片选的引脚?
回复 支持 反对

使用道具 举报

发表于 2012-6-25 11:31:23 | 显示全部楼层
都应该有片选的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-6-25 12:28:48 | 显示全部楼层
SPI 设备都有CS片选线,多个设备也可以工作。 但是,我先是网络模块读取命令,然后切换到SD卡存取数据,在切换到LCD5110先是状态,第一次切换可以,但是再切换时,设备就冲突了,无法工作。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-6-25 12:35:02 | 显示全部楼层
这是我写的测试代码,见笑了,新手!麻烦哪位大侠给看看指导下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2012-6-26 15:21:57 | 显示全部楼层
wo 跟你一个 问题 求解决
回复 支持 反对

使用道具 举报

发表于 2012-6-26 15:22:21 | 显示全部楼层
简单方案,大不了 2个 arduino 哈哈 然后串联。
回复 支持 反对

使用道具 举报

发表于 2012-6-26 18:09:52 | 显示全部楼层
{:soso_e117:}不懂得飘过。。同求
回复 支持 反对

使用道具 举报

 楼主| 发表于 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上的~~
回复 支持 反对

使用道具 举报

发表于 2012-10-9 11:14:15 | 显示全部楼层
那楼上的怎么连的?
回复 支持 反对

使用道具 举报

发表于 2012-10-9 12:34:40 | 显示全部楼层
各SPI设备的数据与时钟线并联,每个SPI设备的片选脚都独占一个IO。然后用SPI库编程,用到哪个,就先拉高不用的那些片选脚,再拉低用到的设备片选脚
回复 支持 反对

使用道具 举报

发表于 2013-3-9 11:47:23 | 显示全部楼层
devgoon 发表于 2012-6-25 12:28
SPI 设备都有CS片选线,多个设备也可以工作。 但是,我先是网络模块读取命令,然后切换到SD卡存取数据,在切 ...

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

使用道具 举报

发表于 2013-3-11 19:04:20 | 显示全部楼层
可以试试Mux Shield。https://www.sparkfun.com/products/9832
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-5 07:57 , Processed in 0.048590 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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