How to reduce power consumption with ultra-low power MCU
[Copy link]
Low power consumption is a very important indicator of MCU. For example, some wearable devices have limited power. If the power consumed by the entire circuit is particularly large, the battery will often be insufficient.
Usually, when we are making products, the basic functions are very simple to implement, but as long as it involves the issue of low power consumption, it is more difficult. For example, some MCU microcontrollers can be as low as microamperes, but the low power consumption of our own design is always in the milliamperes level. The current can be hundreds to thousands of times higher than the standard. Don't be afraid when you encounter this situation. As long as you are serious, you will win. Then analyze the reasons carefully.
(1) Cut off the lifeblood of the peripherals and turn off the peripheral clock.
Let's talk about the most intuitive aspect first, which is also the aspect that engineers pay more attention to, that is, turning off the peripheral clock of the MCU microcontroller. For most MCU microcontrollers on the market, their peripheral modules correspond to a clock switch. You only need to turn on the clock of this peripheral to use this peripheral normally. Of course, this peripheral will also generate corresponding power consumption; if you want to make this peripheral not generate power consumption, you only need to turn off its clock.
(2) Slow down the work pace and do not multiply the clock. In addition to the power consumption of peripheral modules, there is another power-hungry user that needs attention, which is the PLL and FLL modules. PLL and FLL are mainly used to multiply the original clock signal, thereby increasing the overall clock of the system, and its power consumption will also be increased. Therefore, before entering low power consumption, it is necessary to switch to this mode and bypass the PLL and FLL modules to reduce the power consumption of the MCU as much as possible, and then switch the clock back after the MCU wakes up.
(3) Block the trickle and pay attention to the level status of the IO port. If you think that you can ensure that the peripheral no longer consumes power by turning off the peripheral clock, then you are too naive. If the IO port is not handled properly, it will steal power in secret without you knowing it. The specific reason is this: generally, there are pull-up and pull-down resistors inside or outside the IO. If an IO port has a 10K pull-up resistor, pull the pin to 3.3 V. However, when the MCU enters low power mode, this IO port is set to output low level. According to Ohm's law, this pin will consume 3.3 V/10 K = 0.33 mA. If there are four or five such IO ports, several mA will be added. Therefore, before entering low power mode, please check the status of each IO port.
If this IO port has a pull-down, please set it to low level output or high impedance input. Do not waste good current on functions that generate heat.
(4) Friendly cooperation, pay attention to the coordination of IO and peripheral IC.
The factor of current consumption by the pull-up and pull-down resistors of the IO port is relatively obvious. Let's talk about a less obvious factor: the current consumption when the IO port is connected to an external IC. If an IO port has a built-in pull-up function, and the IC pin connected to the IO port happens to have a built-in pull-down function, then no matter what level the pin is at, it will inevitably generate a certain amount of current consumption. Therefore, whenever you encounter this kind of situation, you need to first read the manual of the peripheral IC to determine the status of the pin and know it well; then, before controlling the MCU to sleep, set the pull-up and pull-down mode and input and output status of the MCU's IO port to ensure that no current is consumed by it.
(5) Disconnect the debugger connection and don't be fooled by the illusion. There is another strange type, where the detected current consumption is very large, but the actual result is that you are worrying too much. The reason is that the MCU is still connected to the debugger when testing the power consumption. At this time, most of the current will be taken away by the debugger, making the engineer extremely depressed for no reason. Therefore, when measuring low power consumption, you must not connect the debugger, and you must not measure the current while debugging.
The low power design of MCU is a delicate job. You need to develop a good habit to verify whether the low power consumption meets the requirements every time you add a function, so that you can reduce the power loss factors anytime and anywhere. If you design all functions before considering the low power consumption, you may have to change the program architecture if you are not careful, and even then you may not be able to completely reduce the power consumption.
Smart low power MCU product model
Part Number |
Speed (MHz) |
He paid him |
RAM |
I/O |
Advanced TM(16bit) |
GPTM (16bit) |
WDG |
UART |
IC |
SPI |
ADC |
Package |
MM32L373NT |
96 |
128 |
20 |
22 |
1 |
3 |
2 |
2 |
1 |
1 |
10×12bit |
QFP32 |
MM32L373PT |
96 |
128 |
20 |
22 |
1 |
3 |
2 |
2 |
1 |
1 |
10×12bit |
LQFP32 |
MM32L373PS |
96 |
128 |
20 |
51 |
1 |
3 |
2 |
3 |
2 |
2 |
16×12bit |
LQFP64 |
MM32L372PF |
96 |
128 |
20 |
36 |
1 |
3 |
2 |
3 |
2 |
2 |
10×12bit |
LQFP48 |
MM32L372NT |
96 |
128 |
20 |
22 |
1 |
3 |
2 |
2 |
1 |
1 |
10×12bit |
QFP32 |
MM32L373PF |
96 |
128 |
20 |
36 |
1 |
3 |
2 |
3 |
2 |
2 |
10×12bit |
LQFP48 |
MM32L372PT |
96 |
128 |
20 |
22 |
1 |
3 |
2 |
2 |
1 |
1 |
10×12bit |
LQFP32 |
MM32L361NT |
96 |
64 |
20 |
22 |
1 |
3 |
2 |
2 |
1 |
1 |
10×12bit |
QFP32 |
MM32L361PT |
96 |
64 |
20 |
22 |
1 |
3 |
2 |
2 |
1 |
1 |
10×12bit |
LQFP32 |
MM32L361PF |
96 |
64 |
20 |
36 |
1 |
3 |
2 |
3 |
2 |
2 |
10×12bit |
LQFP48 |
MM32L361PS |
96 |
64 |
20 |
51 |
1 |
3 |
2 |
3 |
2 |
2 |
16×12bit |
LQFP64 |
MM32L360TW |
96 |
64 |
20 |
16 |
1 |
3 |
2 |
2 |
1 |
1 |
-- |
TSSOP20 |
MM32L360NT |
96 |
64 |
20 |
22 |
1 |
3 |
2 |
2 |
1 |
1 |
-- |
QFP32 |
MM32L351NT |
96 |
32 |
10 |
-- |
1 |
3 |
2 |
2 |
1 |
1 |
10×12bit |
QFP32 |
MM32L352NT |
96 |
32 |
10 |
22 |
1 |
3 |
2 |
2 |
1 |
1 |
10×12bit |
QFP32 |
MM32L353NT |
96 |
32 |
10 |
22 |
1 |
3 |
2 |
2 |
1 |
1 |
10×12bit |
QFP32 |
MM32L361TW |
96 |
64 |
20 |
16 |
1 |
3 |
2 |
2 |
1 |
1 |
10×12bit |
TSSOP20 |
MM32L362PS |
96 |
64 |
20 |
51 |
1 |
3 |
2 |
3 |
2 |
2 |
16×12bit |
LQFP64 |
Since its establishment, Yuxin Co., Ltd. has focused on acting as an agent for semiconductor components of major domestic and foreign brands. The agent brands include NETSOL, JSC, everspin, Lyontek, ISSI, CYPRESS, VTI and other brands with general agent qualifications. The main product lines are sram, mram, psram and other memory chips. We are committed to providing customers with products with competitive advantages. We are a professional storage solution provider.
|