[NUCLEO-L4R5ZI Review] Measuring the current of STM32L4R5 in different modes
[Copy link]
Measure the operating current of NUCLEO-L4R5ZI Before measuring, first understand the power supply circuit of NUCLEO-L4R5ZI The power supply of NUCLEO-L4R5ZI is flexible. You can choose to use the ST-LINK on the board or power it through External VIN, E5V and +3.3V power supply When using ST-LINK power supply, the power supply is introduced through the USB of the CN1 debug port 5V, passes through U4 (ST890CDR power switch), then passes through JP6 (power selection jumper), and finally passes through U6 (LD39050PU33R low voltage dropout regulator) to convert 5V to 3.3V When using VIN, the external power supply of 7V to 12V is connected through pin15 of CN8 and pin24 of CN11, and then passes through U5 (LD1117S50TR low voltage dropout regulator) to reduce 7V~12V to 5V, and then passes through JP6, and finally U6 reduces 5V to 3.3V E5VIntroduces external 5V through pin6 of CN11, passes through JP6 and then U6 to reduce 5V to 3.3V +3.3V Introduce 3V~3.6V through pin7 of CN8 and pin16 of CN11 to directly power the MCU The tool I am going to use to test the current has a direct 3.3V output, so the power supply can be directly connected to the +3.3V pin of the development board. However, there are some things to note when directly using +3.3V to power the board. First, the onboard ST-LINK does not work when using an external 3.3V power supply. [s ize=15.0pt]You can choose to break off the ST-LINK part, or disconnect the JP3 jumper and SB6 pad The reason for disconnecting JP3 is that when ST-LINK is not working, the NRST pin will be in a low level state, which will pull the reset pin of STM32L4R5 low and cause the microcontroller to fail to work Disconnecting SB6 is because +3.3V is connected to U6 through SB6. If it is not disconnected, it will cause 3.3V flows back to the ST-LINK circuit through U6, so the tested current is not the actual working current of STM32L4R5 For a newly acquired evaluation board, it is a painful thing whether to cut off the ST-LINK or solder off the SB6 In line with the principle of preserving the original board structure as much as possible, let's see if there are other ways to achieve current measurement without modifying the board You can see that +3V3 is connected to VDD through the JP5 jumper. If you can directly power VDD and then disconnect the JP5 jumper, this problem can be perfectly solved [size=15.0pt ]The premise is that the lack of power supply for +3V3 will not affect other functions on the board +3V3 is also connected to +3V3_PER through the SB5 jumper I looked up +3V3 and +3V3_PER in the schematic diagram and saw that +3V3 has no other connections except connecting to VDD through JP5 +3V3_PERExcept for PA0 connected to JLINK, it is basically used to power the LED on the board. LED is not needed when testing STM32L4R5, so +3V3_PER not connected will not affect the measurement. There is another question. The IOREF of the board is connected to VDD_MCU VDD_MCUIt also supplies power to VDD1~VDD10 of STM32L4R5. VDD_MCU is connected to VBAT through SB154 I have looked at the whole circuit and did not see any connection from VDD to VDD_MCU and VBAT. Who supplies power to VDD_MCU? Check the data sheet of STM32L4R5 and find the circuit of VBAT part. It seems that VBAT is switched between VDD and Backup domain through a single-pole double-throw switch. The single-pole double-throw switch is connected by VDD Domain controlled Seeing this explanation, it is understood that VBAT is the backup power pin. When VDD is working, the switch is switched to VDD to provide external power When VDD[align] is not working, the external backup power supplies the Backup domain through the VBAT pin This also explains why there is no connection between VDD and VDD_MCU or VBAT in the circuit diagram, because it is freely connected internally Looking up the VDD pin, we see that VDD is only on pin 5 of CN11, and the CN11 interface is not soldered when the board leaves the factory. Directly connecting the pin to pin 5 of CN11 will be unstable Continue to search for VDD and see that VDD is finally connected to AVDD through SB158->L3->SB152 Use a multimeter to measure VDD and AVDD and prove that they are conductive, so the next step is to measure the current of STM32L4R5 by powering AVDD AVDDOn pin1 of CN10, you can directly plug the 2.54 pin into CN10 to power the board Don't forget to disconnect JP3 and JP5 when downloading the program and measuring After solving the circuit problem, let's look at the code. The Examples\PWR directory of the project contains many routines for testing low power consumption. The complete directory is STM32Cube_FW_L4_V1.10.0\Projects\STM32L4R5ZI-Nucleo\Examples\PWR Measure the current by comparing it with the data sheet First, it is Shutdown mode. The minimum range of my multimeter is 100nA. The manual says the current of STM32L4R5 is 33nA In Shutdown mode, the current is too small. My tool has limited capabilities and always displays 0, unable to measure The current measurement of the evaluation board cannot show the normal current situation, because 33nA is too low. Next, measure Stop 2 with RTC. The manual says it is 2.8uA, but the multimeter measures 3.0uA. Using the current tool of the evaluation board, it is measured as 3.12uA Standbymode with RTCMode, the data sheet is 420nA, and the multimeter shows 500nA The evaluation board is 481.5nA The LPRUNmode operating frequency is 100KHz, the current in the data sheet is 210uA (25 degrees Celsius), the actual measurement is about 170uA, which is lower than the data sheet Using the graphical tool, we can see that the current is constantly changing, with a maximum of 188uA and a minimum of 150uA Open the PWR_ModesSelection routine, which contains most of the modes used to test low power consumption. It is not convenient to use serial port instructions to control it. Add a sentence test_lprun_2mhz(); below HAL_Delay(1000); in the main function to make it enter LPRUN 2MHz when powered on. The measured current is 557.2uA [attach]340207 [/attach] The data sheet says 490uA, but the actual current is a bit higher than that. Replace test_lprun_2mhz with test_run_range1_80mhz, compile and download. The measured current is 12.02mA The data sheet is 11.5mA which is closer 0pt] The data sheet says 490uA, but the actual current is a bit higher than that Replace test_lprun_2mhz with test_run_range1_80mhz, compile and download The measured current is 12.02mA The data sheet is 11.5mA which is closer 0pt] The data sheet says 490uA, but the actual current is a bit higher than that Replace test_lprun_2mhz with test_run_range1_80mhz, compile and download The measured current is 12.02mA The data sheet is 11.5mA which is closer
|