3

I'm working on a project that uses an Atmega328p as the primary controller. I am using the Arduino libraries for programming.

I currently have an SD card in the project. I've done quite a bit of studying on current consumption of SD card and it turns out they're quite power hungry during read/write operations. However, when an SD card is not being interacted with, I believe it should go into an idle mode in which the power consumption is much less.

Now I've noticed that when I start using the Arduino SD library, specifically SD.begin(), the current consumed is approximately 20mA. This is a continuous 20mA without any read/write operations being used. Simply selecting SD.begin().

So I've got a few questions: - Does this seem high for an SD card that is essentially doing nothing? - What exactly does SD.begin do? I assume it configures some pins but does it do anything else? If it's just set up, shouldn't it 'set up' and be done? Why the continuous high current?

Izzo
  • 243
  • 4
  • 11

1 Answers1

1

You should look here and see if it helps. Basically:

  • Ensure that SD.begin() returns true because the card won't sleep if not properly initialized.
  • I don't know if it's been fixed but the SD library may still have a bug that prevents it from letting SD cards sleep. So try the SdFat library instead.
  • Try another SD card, from a reliable source.
  • Connect external pullups or use the Arduino's internal pull-ups with the MOSI, SCK and SS pins so they don't float.
SoreDakeNoKoto
  • 2,422
  • 2
  • 14
  • 23