user26003: 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?

user11763: 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.


26003: <p>I'm working on a project that uses an Atmega328p as the primary controller. I am using the Arduino libraries for programming.</p>

<p>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. </p>

<p>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().</p>

<p>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?</p>
 11763: <p>You should look <a href="http://forum.arduino.cc/index.php?topic=149504.15" rel="nofollow noreferrer">here</a> and see if it helps. Basically:</p>

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