Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
RTC na STM32 za baterijski rad
#6
Kad smo već kod IWDG, kog sam malopre pomenuo kao vrlo korisnu stvarčicu, setup je jako jednostavan i važi za sva Cortex STM uz neka obogaćenja kod većih M.

Evo kako izgleda za STM32F1 (Cortex M3, konkretno na Blue Pill):

Code:
void iwdg_setup(void)
{
    //  RCC->CSR |= (1<<0);                 // LSI enable (ukoliko negde vec nije), necessary for IWDG
  //  while ((RCC->CSR & (1<<1)) == 0);   // wait till LSI is ready

  IWDG->KR  = 0x5555;                   // enable write to PR, RLR
  IWDG->PR  = 4;                          // Init prescaler, /64, max 8 sec trenutno
  IWDG->RLR = 0xFFE;                   // Init RLR
  IWDG->KR  = 0xAAAA;                 // Reload the watchdog, takodje ciscenje u nekoj petlji
  IWDG->KR  = 0xCCCC;                 // Start the watchdog
}

Velika prednost je što je IWDG sasvim nezavisna naprava, kojoj treba čistiti brojač sa IWDG->KR = 0xAAAA; pre nego što istekne, inače resetuje MCU pa otpočetka.

Super je zato što može zaštititi od jedne jako nezgodne stvari, a to je prestanak rada HSI oscilatora. Tada MCU ostaje zaglavljen tu gde jeste, sa svim outs koji su trenutno bili aktivni.
Pošto to može u nekim situacijama biti jako opasna stvar, posebno kod kontrole nekih izvršnih organa koji raspolažu velikim silama, brzinama, itd, onda nezavisna IWDG naprava može sve to počisti resetom MCU i pri tom isključiti opasne izlaze.

Ranije sam kod MCU, koji nisu imali nezavisni hardver za IWDG, koristio eksterni NE555 kog čistim u pravilnim intervalima i koji obara MCU u slučaju nekog problema. Sada je to fino jer postoji unutra u STM32xxx.

P.S.

Da "dokusurim" info o IWDG:
kod Cortex M3 je podesiv od 100uS do 26 sekundi timeout, što je i više nego dovoljno za bilo koju opciju opasnog rada.
Čak može zaštititi i SMPS vođen tim MCU, koji radi do nekih 50KHz, sa timeout od 100uS.
Reply


Messages In This Thread
RTC na STM32 za baterijski rad - by prasimix - 05-01-2019, 09:22 AM
RE: RTC na STM32 za baterijski rad - by Macola - 05-01-2019, 11:05 AM
RE: RTC na STM32 za baterijski rad - by prasimix - 05-01-2019, 11:10 AM
RE: RTC na STM32 za baterijski rad - by Macola - 05-01-2019, 11:16 AM
RE: RTC na STM32 za baterijski rad - by prasimix - 05-01-2019, 11:20 AM
RE: RTC na STM32 za baterijski rad - by Macola - 05-01-2019, 11:24 AM
RE: RTC na STM32 za baterijski rad - by mikikg - 05-01-2019, 11:42 AM
RE: RTC na STM32 za baterijski rad - by Macola - 05-01-2019, 11:46 AM
RE: RTC na STM32 za baterijski rad - by mikikg - 05-01-2019, 12:01 PM
RE: RTC na STM32 za baterijski rad - by Macola - 05-02-2019, 10:10 AM
RE: RTC na STM32 za baterijski rad - by Macola - 05-02-2019, 10:59 AM
RE: RTC na STM32 za baterijski rad - by Macola - 05-02-2019, 12:12 PM

Forum Jump:


Users browsing this thread: 4 Guest(s)