Moin Leute,
Ich frage mich gerade ob ich zu bloed zum programmieren bin und brauch
da mal eine externe Bewertung. :-D
Ich habe hier zwei Board mit einem STM32L451 und eines mit einem
STM32L452 (STM Nucleo)
Ich habe zu testzwecken meinen eigentlichen Code komplett
runtergestrippt.
Ich schalte alles aus:
1 | led_reset();
|
2 |
|
3 | GPIO_InitStruct.Pin = LL_GPIO_PIN_ALL;
|
4 | GPIO_InitStruct.Mode = LL_GPIO_MODE_ANALOG;
|
5 | GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
|
6 | GPIO_InitStruct.Alternate = LL_GPIO_AF_0;
|
7 |
|
8 | LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
9 | LL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
10 | LL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
11 | LL_GPIO_Init(GPIOD, &GPIO_InitStruct);
|
12 | LL_GPIO_Init(GPIOE, &GPIO_InitStruct);
|
13 | LL_GPIO_Init(GPIOH, &GPIO_InitStruct);
|
14 |
|
15 | //Sollte ueberfluessig sein
|
16 | LL_AHB2_GRP1_DisableClock(LL_AHB2_GRP1_PERIPH_GPIOC); //Disable PortC
|
17 | LL_AHB2_GRP1_DisableClock(LL_AHB2_GRP1_PERIPH_GPIOB); //Disable PortB
|
18 | LL_AHB2_GRP1_DisableClock(LL_AHB2_GRP1_PERIPH_GPIOA); //Disable PortA
|
19 |
|
20 | //auch ueberfluessig weil sowieso nicht genutzt
|
21 | LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_SPI2);
|
22 | LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_I2C1);
|
23 | LL_AHB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_USART1);
|
24 |
|
25 | LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_SYSCFG);
|
26 |
|
27 | //macht man das nicht ist die Stromaufnahme mit angestecktem
|
28 | //j-link leicht erhoeht.
|
29 | LL_DBGMCU_DisableDBGStopMode();
|
30 | LL_DBGMCU_DisableDBGStandbyMode();
|
31 |
|
32 | __disable_irq();
|
33 |
|
34 | HAL_SuspendTick();
|
35 |
|
36 | PWR->CR1 &=(uint32_t) ~PWR_CR1_LPMS;
|
37 | PWR->CR1 |=(uint32_t) PWR_CR1_LPMS_STANDBY;
|
38 |
|
39 | SCB->SCR |= (uint32_t) SCB_SCR_SLEEPDEEP_Msk;
|
40 |
|
41 | while(1)
|
42 | {
|
43 | __ASM volatile ("wfi");
|
44 | }
|
Die Controller stehen dann. Aber alle drei Controller ziehen
dann noch 140uA. Also etwa 10x mehr wie man es erwarten sollte.
Hab ich noch irgendwas uebersehen?
Beim Nucleoboard messe ich direkt an JP6, also die Corespannungen.
Auf meinen Testboards ist nichts drauf bis auf einen externen Quarz
und eine LED die mit Widerstand an einem Port haengt, aber hier
abgeschaltet ist.
Vanye