突然有个奇怪的想法,想用两个UNO读取同一个SD卡,不知道能否实现,有经验的谈一谈?
本帖最后由 shenhaiyu 于 2013-10-24 12:14 编辑RT,最近用UNO做了个东西,32K的Flash几乎都写满了,IO也快用光了,无奈之下决定用两块UNO实现更多的功能。
(当然,有人会推荐我换mega,但是我真的不想重新设计硬件部分啊,换mega盒子也要重做,两块UNO勉强能塞下)
遇到的问题就是两块UNO的数据共享问题,第一块IO除了pin 0和1外全用了,总不能用这两个pin实现两块UNO的串口通信吧,一是麻烦,二是我的数据没有时效性,第二块只要能在上电的时候一次性读取完SD卡中的数据就行了。
于是就有了这么个想法,两块UNO读取同一个SD卡。
网上卖的SD卡模块大部分是图中的样子:
SPI接口上有两排针,硬件连接倒是很方便,可以同时连两块UNO,可是能实现读取同一块SD卡吗?
目前不敢试验,怕把SD卡弄坏,希望有经验的同学提供些建议 硬件上来说,可以! 本帖最后由 迷你强 于 2013-10-24 08:59 编辑
:L不可以吧。。。每个spi主机都给时钟信号,这不就傻了么?不过有协商机制就可以,比如,这1号板卡,断开读写卡的时候,会拉低一个IO口的电平。。。。,然二号板卡读写前确认这个电平是否为低。应该是OK的。。。单位时间只有一个板卡读写 原理上确实需要协调机制,保证不同是工作,否则会不稳定.另一个定时的问题,工作时其它端口并用无关,但是时钟只能一个,而且需和读写端口同步. 林定祥 发表于 2013-10-24 10:10 static/image/common/back.gif
原理上确实需要协调机制,保证不同是工作,否则会不稳定.另一个定时的问题,工作时其它端口并用无关,但是时钟只 ...
就是说只要安排好两块UNO不同时操作SD卡,硬件上这样并联没问题呗? 我的理解,两板按正常情况联接sd模块!
在读写之前先检测cs片选电平,如果为高则放弃操作,为低则sd模块空,置为高,并进行操作 没问题的,你可以把sd卡、第二块uno当做从机,第一块当做主机就行,反正都是通过SPI通信,
不过sd卡选通信号应该只能接一块uno,如果不添加其他器件,否则会出现电平不同的问题 maxims 发表于 2013-10-24 14:27 static/image/common/back.gif
我的理解,两板按正常情况联接sd模块!
在读写之前先检测cs片选电平,如果为高则放弃操作,为低则sd模块空 ...
嗯,软件上片选我懂,就是想问一下硬件上这样链接是否有问题~ 最多就是隔离一下嘛~隔离的话,具体方案我也暂时没有想过 maxims 发表于 2013-10-26 18:19 static/image/common/back.gif
最多就是隔离一下嘛~隔离的话,具体方案我也暂时没有想过
那到底是用不用隔离呢 {:soso_e103:}其实我是进来看美女头像的 弘毅 发表于 2013-10-26 21:38 static/image/common/back.gif
其实我是进来看美女头像的
:$ 楼主实现了吗?能分享下不 patrick诚 发表于 2015-12-17 11:42 static/image/common/back.gif
楼主实现了吗?能分享下不
理论上,2个主机SPI,1个从机SD卡,是可以的。每个主机读写SD卡前,先检测CS判断SPI总线是否忙。如忙则等,不忙就当自己是主机。 maxims 发表于 2015-12-18 22:00 static/image/common/back.gif
理论上,2个主机SPI,1个从机SD卡,是可以的。每个主机读写SD卡前,先检测CS判断SPI总线是否忙。如忙则等 ...
那具体实现呢?
页:
[1]
2