
最近在调一款STM32F407做主控的产品,SD卡偶尔会出现加载失败的情况,以前做的电路都是一颗MCU对一张卡,这次的电路有一点不一样,把一张SD卡做了复用,目的是两颗MCU可以分时管理同一张SD卡。 思路如下: BASE板上一颗MCU做主要的SD卡管理。如果control板上的MCU需要接管SD卡,则通过给模拟开关的select管脚置“0”来切换数据通路。模拟开关默认将SD卡接在BASE板上。 æ¶æå¾ ![]() 下边是具体的原理图,倒着贴的。 sdå¡ ![]() 模æå¼å ³ ![]() base ![]() 硬件电路就是这样,但会报SD卡加载失败。据软件的同事讲,这个是错误是由SD卡的电源引起的,比如SD初始化时会检查自己的电压,并记录下来,如果偏低,待MCU通讯时就会告知MCU,我的电源不正常,于是就加载失败。我仔细检查过SD卡的电源,他是和BASE板上的STM32F407用的同一个电源。并且3.3V电源电压稳定,建立也很迅速,没发现什么毛病。请高手帮忙分析分析,谢谢! |
楼主应该加一个处理,只要有一路SD接通时,另外一路就不要再去操作了。如果单个操作没有问题,很肯能是由于同时操作导致的。
多谢指教!问题解决了,
是MCU2在初始化的时候,通道选择管脚电平没有做控制,导致MCU1正在跟SD卡握手的时候,通道选择信号出现了83us的低电平,这个时候所有的信号通路全部切换到MCU2,包括clk,所以MCU1与SD卡会握手失败,于是串口打印出“SD card initializing!”然后就卡住了。软件修改后就一切OK!