SD卡共享SPI高电流消耗

时间:2016-07-01 14:46:18

标签: spi msp430 battery-saver

您好我在外部闪存和SD卡之间使用共享SPI线路。对于SD卡,我使用MSP430的SPI引擎,但对于外部闪存,我使用的是相同的SPI线,但是使用GPIO BitBanging。

SD卡很少使用,因此甚至不会调用init函数。

问题: 我观察到如果插入但未使用SD卡,并且访问外部闪存,则会突然出现电流增加(13mA),并且在SD卡被移除之前不会减少。如果没有插入SD卡,则不存在此类问题。

永远不会触摸SD卡的CHIP SELECT,并且始终为HIGH,但通过FLASH进行通信会影响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

>观察到将FLASH和SD卡的BitBanging更改为SPI ENGINE没有这样的当前问题。

  

检查线路状态是否在SPI引擎中使用,但发现所有信号都相同。   尝试在不使用时将所有信号设为低电平但没有差别。

查询吗 1.如果SD卡的芯片选择为高电平(CS为低电平有效),为什么SD卡不能保持其休眠模式?

  1. 为什么BitBanging和SPI引擎通信都没有问题,但是虽然没有与SD卡通信,但是SD卡中的电流消耗有效?
  2. 限制

      

    我不能在SPI ENGINE模式下使用FLASH,对我来说只使用BitBanging非常重要。

         

    设备需要始终消耗最少的电量,并且应该使用电池工作1年。

1 个答案:

答案 0 :(得分:0)

首先,您需要提及SD卡,SPI FLASH和MSP部件号(最好是pdf链接),因为答案可能在文档中。你有没有研究过SD卡进出SLEEP的所有条件? 当SCLK线路上有活动时,卡可能需要进行一些寄存器初始化以保持睡眠模式。

其次,找出当前峰值的确切时刻(指令)。是SCLK第一次变高,还是MOSI变高的时候?

第三,如果可能的话,分别测量所有3个采样芯片的电流消耗(MSP,SD,FLASH),以确定是谁产生了这种额外功耗。

SD卡在不使用时是否已通电?如果它不是,那么当它们很高时它可以通过I / O线馈送。

请注意不使用SPI引擎与FLASH芯片通信的原因?为什么要分享这些针脚?如果你想要最低功耗,那么就不应该采用bitbanging了。