Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

uC with FLASH memory (SPI) - High current consumption in SLEEP mode

Status
Not open for further replies.

nickagian

Member
I am using the EM250 module from Ember and a SPI Flash memory from micron-numonyx (M25P128) connected to it. The memory is used to save data taken from several sensors. The system stays in sleep mode most of the time, except for the sampling periods. The power supply of the memory is controlled by the EM250 by using an external power switch (one of the two included in TPS2042B).

Originally, I planed to turn-off the power supply of the memory during sleep periods, to save energy. However, when I constructed the circuit I am facing some problems and the power consumption is higher than theoretically expected.

All relevant GPIOs of the processor are the following:
GPIO0-MOSI, GPIO1-MISO, GPIO2-SCLK, GPIO3-CS#, GPIO15-controls the power switch

The first three are controlled by the integrated SPI serial controller SC1 of the EM250, however during sleep mode these pins are automatically configured as GPIOs and released by the controller SC1.

TEST #1: I first tested the system as theoretically designed. During sleep GPIO15 is set HIGH, which turns the relevant power switch of TPS2042B off. However, the current consumption of the EM250 and the total consumption of the PCB was ~3.5mA!!!!!

TEST #2: I guessed that the SPI bus pins, when the memory is turned-off, draw or sink current and thus the consumption of EM250 also increases. So at next test, during SLEEP I leave the power supply of the memory on. The current consumption is around 700-800uA for the PCB and 600-700uA for the EM250 (the difference is obviously the memory's consumption).

TEST #3: I completely removed the memory from the PCB and this time the consumption is around 200uA and below.

For all tests, during sleep I do the following settings:
GPIO0, GPIO1 and GPIO3: INPUT direction with internal pull-up, GPIO2 : INPUT direction with internal pull-down

Can anyone help me with this problem? How can I even reduce the current consumption? I feel that I will not be able to even go close to the 4uA that the datasheet says the EM250 draws during SLEEP. Even in test #3, with the memory off (which is something that doesn't fit my needs) the consumption is very high. Of course, this may be caused by other peripherals connected to the processor.
 
To put it otherwise... in what state should I put the pins that connect the uC with the flash memory during sleep to achieve the lowest possible current consumption? I keep these pins to inputs with pull-ups at MISO/MOSI lines and pull-down at the SCLK and CS# line, but I cannot achieve the lowest possible current consumption of the uC. And the same problem is encountered for the pins that connect the uC with the FTDI FT232 chip.

Can anyone help me please with this?
 
Last edited:
You should change them all to outputs. You should set all IO to outputs, especially ones you are not using. I have no experience with an EM250, or even heard of it before now, but your datasheets should have a full set of steps for achieving maximum sleep current. In some chips you can turn on/off individual peripheral clocks. It's also best to clock the whole chip as slow as you can go and still maintain functionality.
 
Status
Not open for further replies.

Latest threads

Back
Top