0

Hi I am using shared SPI Lines between External Flash and SD Card. For SD Card i use MSP430's SPI Engine, however for External Flash I am using same SPI Lines but as GPIO BitBanging.

The SD Card is a very rarely used and hence even the init functions are not called.

The issue: I observed that if SD Card is inserted but never used, and External Flash is accessed, there is a sudden current increase (13mA) and does not reduce until SD card is removed. If SD card is not inserted there is no such issue.

The CHIP SELECT of the SD card is never touched and is always HIGH, yet the communication over FLASH is effecting the SD Card's sleep modes. According to Sandisk's datasheet the SD automatilly enters sleep mode.

Observations:

Ø 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

> Observed that changing the BitBanging to SPI ENGINE for both FLASH and SD card has no such current issues.

Checked the Line states if used in SPI Engine but found all signals as same. Tried making all signals LOW when not in use but no difference.

Queries? 1. IF SD Card's Chip SELECT is HIGH (CS is active LOW) why is SD card not maintaining its SLEEP mode ?

  1. Why both BitBanging and SPI Engine communications work without issue but effect current consumption in SD card though SD card is not communicated with ?

Limitations

I cannot use FLASH in SPI ENGINE mode and it is important for me to use only BitBanging.

The device is required to consume least power at all times and should work for 1 year on battery.

1 Answers1

0

First, you need to mention the SD card,SPI FLASH and MSP part numbers (a pdf link is preferable) as the answer may lay in the documentation. Have you studied all the conditions that can take the SD card in and out of SLEEP? There might be some register initialization required for the card to persist in sleep mode when there is activity on the SCLK line.

Second, find out the exact moment (instruction) on which the current spikes. Is it when SCLK goes high for the first time, or maybe when MOSI goes high?

Third, if possible, measure the current consumption of all 3 involed chips separatedly (MSP, SD, FLASH) to pinpoint who is generating this extra consumption.

Is the SD card powered while not in use? If it isn't, then it can feed through the I/O lines when they are high.

Mind sharing the reason for not using the SPI engine to communicate with the FLASH chip? And why share the pins? If you want the lowerest power consumption, bitbanging is NOT the way to go.

Michael Kusch
  • 340
  • 4
  • 4