【AT-START-F403A Review】Part 3 F403A STOP Mode Current Test
[Copy link]
This post was last edited by Changjianze1 on 2020-10-17 00:58
32- bit MCUs basically have low-power modes, whether it is sleep mode, stop mode or standby mode.
A brief introduction to STOP mode: Deep sleep mode combines the clock control mechanism of peripherals, while stop mode is generally divided into voltage regulator operation or low power consumption mode. At this time, all clocks in the 1.2V power supply area are stopped, except for systick , PLL HIS and HSE RC functions are disabled, and SRAM and register contents are saved.
In stop mode, all IO ports maintain their runtime state.
I am still more concerned about the performance of some chips. Generally, I will look at the voltage parameters of each IO port, as well as the current parameters of operation and sleep. I accidentally flipped through the manual and saw the stop parameter of AT 's 32 microcontroller .
The STOP current of this M4 is too large. Usually, M3 is used more often, and usually there are only a few UA-20 and a few Ua . This is too exaggerated. I quickly looked up the parameters of ST M4.
It seems that the core of M4 has a larger current, several hundred ua
Prepare to measure the STOP current of M4
RCC_APB1PeriphClockCmd(RCC_APB1PERIPH_PWR , ENABLE); ///<Enable PWR and BKP clock
PWR_EnterSTOPMode(PWR_Regulator_ON, PWR_STOPEntry_WFI);///Request to enter STOP mode with regulator in low power mod
However, there are some LDOs on the development board that cannot be tested directly.
Remove the R13 OR resistor and directly power VDD . Also, remove the U1 chip.
The measured current is much greater than 1.4ma , reaching more than 3Ma
Something is wrong. It is much bigger than in the manual. Please continue reading the manual.
IO port is not configured
void gpio_set()
{
GPIO_StructInit(&GPIO_InitStructure);
RCC_APB2PeriphClockCmd( RCC_APB2PERIPH_GPIOA|RCC_APB2PERIPH_GPIOB|RCC_APB2PERIPH_GPIOC|RCC_APB2PERIPH_GPIOD|RCC_APB2PERIPH_GPIOE, ENABLE );
/*Configure the LED pin as ouput push-pull*/
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pins = GPIO_Pins_All;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_ANALOG
GPIO_Init(GPIOA, &GPIO_InitStructure)
/*Configure the LED pin as ouput push-pull*/
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pins = GPIO_Pins_All;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_ANALOG;
GPIO_Init(GPIOB, &GPIO_InitStructure)
/*Configure the LED pin as ouput push-pull*/
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pins = GPIO_Pins_All;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_ANALOG
GPIO_Init(GPIOC, &GPIO_InitStructure);
/*Configure the LED pin as ouput push-pull*/
GPIO_StructInit(&GPIO_InitStructure)
GPIO_InitStructure.GPIO_Pins = GPIO_Pins_All;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_ANALOG;
GPIO_Init(GPIOD, &GPIO_InitStructure);
/*Configure the LED pin as ouput push-pull*/
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pins = GPIO_Pins_All;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_ANALOG;
GPIO_Init(GPIOE, &GPIO_InitStructure);
// GPIO_StructInit(&GPIO_InitStructure);
// GPIO_InitStructure.GPIO_Pins = GPIO_Pins_13|GPIO_Pins_14|GPIO_Pins_15;
// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT_PP;
//
// GPIO_Init(GPIOD, &GPIO_InitStructure);
}
RCC->AHBEN = 0
RCC->APB1EN = 0;
RCC->APB2EN = 0;
Test current 2m
|