嗨,我使用共享SPI线之间的外部闪存和SD卡。对于SD卡,我使用use 430的SPI引擎,但对于外部闪存,我使用相同的SPI线,但作为GPIO BitBanging。
SD卡是很少使用的,因此即使是init函数也不会被调用。
问题:i观察到,如果SD卡被插入但从未使用,并且外部闪存被访问,则会出现突然的电流增加(13 if ),并且在SD卡被移除之前不会减少。如果SD卡没有插入,就没有这样的问题。
SD卡的芯片选择永远不会被触及,而且总是很高,但是闪存上的通信正在影响SD卡的睡眠模式。根据Sandisk的数据表,SD自动进入睡眠模式。
意见:
Ø Both SD and flash use common SPI lines, all 4 lines state is observed in both HIGH and LOW current states and observed no difference
**LINE HIGH Current Low Current**
Clock H H
D_Out H H
D_In H H
SD_CS H H
Ø **SD Card Removed**
Clock H H
D_Out H H
D_In H H
SD_CS H H>观察到,将BitBanging改为SPI引擎用于FLASH和SD卡并不存在这样的当前问题。
检查线路状态,如果在SPI引擎中使用,但发现所有信号相同。试着使所有的信号低时,不使用,但没有区别。
查询? 1。如果SD卡的芯片选择是高的(CS是活动的低),为什么SD卡不保持其睡眠模式?
限制
我不能使用闪光灯在SPI引擎模式,这是重要的,我只使用BitBanging。 该设备需要消耗最少的电力在任何时候,并应工作一年的电池。
发布于 2016-07-04 18:58:17
首先,您需要提到SD卡、SPI闪存和MSP部件编号(最好是pdf链接),因为答案可能在文档中。你有没有研究过所有可以让SD卡在睡眠中进出的条件?当SCLK行上有活动时,卡片可能需要一些寄存器初始化才能保持休眠模式。
第二,找出当前尖峰的确切时刻(指令)。是当SCLK第一次高,还是当MOSI高的时候?
第三,如果可能的话,分别测量所有三个涉及芯片的当前消费(MSP,SD,FLASH),以确定是谁产生了额外的消费。
SD卡在没有使用时有动力吗?如果不是,那么当I/O行很高时,它可以通过I/O行进行输入/输出。
介意分享不使用SPI引擎与闪存芯片通信的原因吗?为什么要共用这些别针呢?如果你想要最低的功耗,咬不是一条路。
https://stackoverflow.com/questions/38148293
复制相似问题