I'm designing circuit with STM32L0 MCU that storage some data in microSD via SPI interface.

I have power budget of 5V @ 500mA via VBUS so, I would like to estimate microsd's current consumption.

I have seen two posts(1, 2) about microSD current consumption. to sum it up, the answers in both posts says that current consumption is variant and vendor specific. it differents from microsd to another.

could you please suggest me what to do about it? How should I design the circuit with a variant gap of current consumption?

For example, limit the microsd's current consumption to 150mA and put current limiting IC at microsd's VDD pin?

EDIT: my circuit also contains 8ohm 0.2W speaker that power from 3.3V power rail. speaker's current consumption is about 160mA. only the speaker and the microSD alone current consumption is about ~300mA. the application should record data on demand from UART and write it to micro sd card in real-time. every 2sec the system should write data, 16Kbytes, to micro sd card. meanwhile, the application should play a couple of sounds in different frequencies. my concern is to exceed VBUS current consumption (500mA) while the speaker and the microSD are on


closed as unclear what you're asking by Chris Stratton, pipe, Voltage Spike, Lior Bilia, Daniel Grillo Aug 1 '18 at 17:22

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 2
    \$\begingroup\$ You really don't want to do that. If you put a current limiter and the SD card tries to exceed that, the voltage will droop and the card will likely malfunction. You probably want to be trying to limit the CPU consumption while the SD card is running. \$\endgroup\$ – DoxyLover Jul 28 '18 at 21:16
  • \$\begingroup\$ I'm no expert on these devices, but I believe there are "lower power" modes for operation. In addition, you may be able to slowly "pump up" enough energy onto a capacitor, sufficient to operate the microSD for some (set of) small operation(s); then re-pump it, and continue. Slower. But it means you could stay under some limitation that way. (I'm assuming here that changing the MCU itself isn't warranted because (a) too late, too hard; and, (b) it's not the real problem in any regard. [Otherwise, you might also consider other MCUs with much lower power, as part of your overall considerations.]) \$\endgroup\$ – jonk Jul 28 '18 at 21:22
  • \$\begingroup\$ @jonk could you please to go into details with your idea about "pump up" enough energy onto a cap? it sounds interesting. \$\endgroup\$ – Mercury Avangburg Jul 28 '18 at 21:29
  • 1
    \$\begingroup\$ If you're insistent on using a consumer micro SD card rather than an engineering component with data available, you have an off topic question about the usage of consumer electronics. \$\endgroup\$ – Chris Stratton Jul 28 '18 at 22:07
  • 2
    \$\begingroup\$ "every 2sec the system should write data, 16Kbytes, to micro sd card. meanwhile, the application should play a couple of sounds in different frequencies... each time I make a 'microsd write' I should 'play' sound from RAM" - Why? \$\endgroup\$ – Bruce Abbott Jul 28 '18 at 23:16

From my experience, typical SD card current consumption is ~30mA in SPI mode and ~100mA in 4-bit SD mode. My advice would be to include the first figure with a 2x or 3x safety margin (that is, 60 or 90 mA) in your device power budget, and make sure that the rest of your circuit never consumes more than 500-60 = 440mA or 500-90 = 410mA respectively.

Actively limiting the current consumed by the SD card makes little sense, considering it consumes less that 10% of the overall power. Disabling the speaker when VBUS drops below 4.75V would make more sense. If you absolutely want to control SD card power consumption, send the IDLE command instead of cutting the power.


The SD specification does have power limits. With UHS, there are even programmable current limits. Which will probably reduce the card performance.

It would be wise to consult the standard in this case, to see which classes of cards you're looking to support.

If the design and budget constraints allow it, I would place a high side switch with current limit.
This way you can control the power to the card. This has advantages, it allows you to reboot the card, and prevent a full short on a faulty card.
You can also behave like a nice USB device not drawing too much current when not allowed.


Not the answer you're looking for? Browse other questions tagged or ask your own question.