When you're making a low power design, it's interesting to know the energy use of your gizmo.

In this 2nd post of the series, I measure the current in the different power modes.

image source: readme file of the PSoC 6 MCU: Switching Between Power Modes example project

 

The PSoC6 has several sleep modes. Depending on the one that's active, parts of the controller are switched off:

The example project Switching_Power_Modes (source code) demonstrates the modes.

When you load this example, you can cycle through the power modes by pushing the user button.

The best way to see what's happening is by measuring the current in all modes, as explained here.

 

Test steps

 

The example project tells you how to use the user button to navigate between the modes.

WiFi and Bluetooth are off in this exercise.

 

  1. After programming, the application starts automatically.
    Confirm that kit LED blinks at 5 Hz (approximately).
    Take note of the current consumption.
    The device is in Normal Power / MCU Active state at this moment.
  2. Press the kit button for approximately one second and release it.
    Observe that the LED is ON and fully bright.
    Confirm that the current consumption drops a few hundreds of microamperes.
    The device is in Normal Power/MCU Sleep state at this moment.
  3. Quickly press the kit button to return to Normal Power/MCU Active state.
    Observe that the LED blinks quickly again.
  4. Press the kit button for at least two seconds and release it.
    Observe that the LED is OFF and that the current consumption has dropped to a few microamperes.
    The device is in Deep Sleep state at this moment.
  5. Quickly press the kit button to return to Normal Power state.
    Observe that the LED blinks quickly and that the current consumption has increased to the same level measured before.
  6. Quickly press the kit button again to enter Low Power state.
    Observe that the LED blinks slowly and that the current consumption has dropped significantly when compared to Normal Power state.
    You can quickly press the kit button to switch between the two modes.
  7. Keep the device in Low Power state and press the kit button for approximately one second and release it.
    Observe that the LED dims and that the current consumption has dropped a few hundred microamperes.
    The device is in the Low Power / MCU Sleep state at this moment.
  8. Quickly press the kit button to return to the Low Power/MCU Active state.
    Observe that the is blinking slowly again.
  9. Press the kit button for at least two seconds and release it.
    Observe that the LED is OFF and that the current consumption has dropped to a few microamperes.
    The device is in deep sleep state at this moment.
  10. Quickly press the user button and return to the Low Power/MCU Active state.
    Observe that the LED blinks slowly again and that the current consumption has increased to the same level measured before.

 

I recorded the current twice, with a EEVBlog µCurrent, and with a Keithley DMM6500. Here are the measurements.

 

StepPower modeCurrent
1Normal Power MCU Active12 mA
2Normal Power MCU Sleep7 mA
3= 112 mA
4Deep Sleep22 µA
5= 112 mA
6Low Power MCU Active6 mA
7Low Power MCU Sleep4 mA
8= 66 mA
9= 422 µA
10

= 6

6 mA

 

Below is the results of the capture .

The red lines are overflow readings caused by the pullup current when pushing the button.

 

I have attached a spreadsheet with the measurements to the bottom of the post.

 

 

 

PSoC 6 series
Create a Project with its own Board- and Module configurations
Low Power Management - prepare the board for current measurements
Power consumption without WiFi or Bluetooth
Create a FreeRTOS 10.3 Project
UART receiver with FreeRTOS
FreeRTOS message queue
UART receiver with FreeRTOS - Deep Sleep support