Skocz do zawartości

Kurs STM32L4 – #6 – oszczędzanie energii (5 lat na baterii?)


Pomocna odpowiedź

@fidelty miło słyszeć, że kurs Ci się spodobał 🙂 Jeśli chodzi o X-Nucleo-LPM01A to temat ten nie był poruszany w żadnych poradnikach Forbota.

  • Lubię! 1
  • 3 miesiące później...
Dnia 12.01.2023 o 15:00, dudoxx napisał:

Pod tym linkiem jest zgłoszony ten bug do ST:

https://community.st.com/s/question/0D53W00001U3x5oSAB/does-not-generate-halrtcexsetwakeuptimerit?t=1673531776852

Wygląda na to że w wersji CubeMX 6.6 naprawili to ale ja uzywam teraz wersji 6.7.0-RC2 i bug jest więc mają chyba regresje. Napisałem im to. Zobaczymy

Ćwiczę kurs używając wersji CUBE IDE 1.17.0
Problem nadal występuje.

Dodanie Kawałka kodu w odpowiednim miejscu, tak jak można wyczytać w postach sprzed lat.

/* USER CODE BEGIN RTC_Init 2 */

if (HAL_RTCEx_SetWakeUpTimer_IT(&hrtc, 20479, RTC_WAKEUPCLOCK_RTCCLK_DIV16) != HAL_OK)//To trzeba dołożyć, aby procek się wybudził po 10s.

{

Error_Handler();

}

/* USER CODE END RTC_Init 2 */

 

  • Lubię! 1

Świetny kurs i odcinek o oszczędzaniu energii.

Podobnie jak koledzy kilka lat temu natknąłem się na problem nie wybudzania się procesora przez przerwanie RTC. Rozwiązanie opisane kilka lat temu na forum. Minęło kilka lat, wersja CUBE się zmieniła (1.17.0), a błąd nadal jest.

Co do mikroamperomierza to niedawno zakupiłem multimetr YATO YT-730893.  Jest niedrogi, dość dokładny, 4 cyferki plus jedynka, true RMS... a mikroampery mierzy z rozdzielczością do 0.01 mikroampera. Można kupić w kraju w popularnym e-sklepie narzędziowym, w dodatku z porządnymi silikonowymi lejcami.

14 godzin temu, aimeiz napisał:

Świetny kurs i odcinek o oszczędzaniu energii.

@aimeiz dziękuję za miłe słowa, cieszę się, że kurs jest pomocny 🙂 

14 godzin temu, aimeiz napisał:

Minęło kilka lat, wersja CUBE się zmieniła (1.17.0), a błąd nadal jest.

Zgłosiłem przed chwilą raz jeszcze sprawę bezpośrednio do inżynierów z firmy ST.

  • 3 miesiące później...
(edytowany)

Cześć, z tego co widzę to w najnowszej wersji CubeIDE 1.18.1 problem z wybudzaniem przez RTC nadal występuje. Na szczęście dodanie jednej linijki kodu od @Gieneq rozwiązało sprawe. Może warto dodać adnotacje do kursu, że w razie problemów trzeba coś dodatkowo dopisać i nie jest to wina użytkownika skoro problem przewija się już od kilku dobrych lat 😄

Edytowano przez Unique

@Unique witam na forum i dziękuję za informację. Dodałem odpowiednią ramkę w kursie. Ten błąd prawdopodobnie pojawia się i znika cyklicznie, zgłaszałem go już kilka razy do ST. Chyba faktycznie lepiej zadbać o ten fragment osobiście 😉

  • Lubię! 1
  • 4 miesiące później...

Hej, dla wersji IDE 1.19.0 kwestia wywołania Enable WakeUp:

  if (HAL_RTCEx_SetWakeUpTimer_IT(&hrtc, 20479, RTC_WAKEUPCLOCK_RTCCLK_DIV16) != HAL_OK)
  {
    Error_Handler();

jest rozwiązana.

 

Jednak, wspominał już o tym @bczwartk, flagę PWR_FLAG_WU należy tą flagę wyczyścić ręcznie. Nie pisał bym postu, gdyby to był bug i takie rozwiązanie byłoby obejściem problemu, ale jednak ST opisało samo to w dokumentacji i brak tego w tekście kursu uważam za niedopatrzenie, gdyż to jest opisane wprost w dokumentacji i aktualny program zgodnie z tym co widzę u siebie jak i również jest w dokumentacji: wejście w stan STANDBY odbywa się tylko raz w takiej sytuacji.

Link do dokumentacji:
https://wiki.st.com/stm32mcu/wiki/Getting_started_with_PWR#Configure_the_Standby_Mode

  • Lubię! 1

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...