Obsluha externího watchdogu
Moderátori: psichac, Moderátori
- jirka.jirka.
- Ultimate člen
- Príspevky: 1538
- Dátum registrácie: 17 Okt 2008, 00:00
- Bydlisko: Uherské Hradiště
- Kontaktovať používateľa:
Obsluha externího watchdogu
Zdravím pánové,
dnes jsem narazil na problém. A ne a ne se hnout z místa. Už mi z toho začíná docela hrabat...
Takže mám zapojený watchdog dle obrázku. Datasheet je zde: https://www.onsemi.com/pub/Collateral/CAT1832-D.PDF
Schema je trošku zavádějící...
Ale MCU_JTAG.RST_N mám připojen na STM32 procesor na pin NRST viz. druhý obrázek connect. Ten pin: MCU_RST není nikde připojen (teda nikde, co by vadilo MCU).
A pin na WDT číslo 7 ozn jako: MCU_WDT_NULL vybavuju procesorem.
A teď o co jde.
Zapojím WDT dle schematu k MCU. Zapnu MCU, začnu tooglovat pinem (nyní hned po startu MCU jsem to pověsil na TIMER). A stejně se mi procesor nerozběhne. Už jsem zkoušel co šlo. Tak mě zajímá, jestli někdo neví, co bych mohl dělat špatně. Pin mi kmitá, dle timeru. Časy jsem zkoušel všechny možné...
Když WDT odpojím a koukám se na něj osciloskopem, tak funguje jak má... Něco je tam po startu MCU špatně. A já nemůžu najít co.
Procesor: STM32F767ZI
WDT: CAT1832
dnes jsem narazil na problém. A ne a ne se hnout z místa. Už mi z toho začíná docela hrabat...
Takže mám zapojený watchdog dle obrázku. Datasheet je zde: https://www.onsemi.com/pub/Collateral/CAT1832-D.PDF
Schema je trošku zavádějící...
Ale MCU_JTAG.RST_N mám připojen na STM32 procesor na pin NRST viz. druhý obrázek connect. Ten pin: MCU_RST není nikde připojen (teda nikde, co by vadilo MCU).
A pin na WDT číslo 7 ozn jako: MCU_WDT_NULL vybavuju procesorem.
A teď o co jde.
Zapojím WDT dle schematu k MCU. Zapnu MCU, začnu tooglovat pinem (nyní hned po startu MCU jsem to pověsil na TIMER). A stejně se mi procesor nerozběhne. Už jsem zkoušel co šlo. Tak mě zajímá, jestli někdo neví, co bych mohl dělat špatně. Pin mi kmitá, dle timeru. Časy jsem zkoušel všechny možné...
Když WDT odpojím a koukám se na něj osciloskopem, tak funguje jak má... Něco je tam po startu MCU špatně. A já nemůžu najít co.
Procesor: STM32F767ZI
WDT: CAT1832
0
- jenda23
- Ultimate člen
- Príspevky: 5779
- Dátum registrácie: 27 Jún 2008, 00:00
- Bydlisko: Česká Třebová
- Vek: 33
- Kontaktovať používateľa:
Re: Obsluha externího watchdogu
Takže watchdog nedrží procik v resetu?
0
Lokomotiva je jako žena.Je jich stovky typů a každej z nich je jinej,každá z nich je svým způsobem krásná.Když jí chceš aspoň trochu poznat jsou to stovky hodin času.Nejde s ní být aniž bys jí bezmezně miloval,je nemožný jí znát do poslední skulinky
- jirka.jirka.
- Ultimate člen
- Príspevky: 1538
- Dátum registrácie: 17 Okt 2008, 00:00
- Bydlisko: Uherské Hradiště
- Kontaktovať používateľa:
Re: Obsluha externího watchdogu
Právě že mi mcu drží jenom v resetu.
A to napětí jsem přesně neměřil. Změřím v úterý.
Nedaří se mi po připojení k MCU aby se procesor rozjel.
Init mcu vypadá následovně:
1. Init hodin
2. Init výstupního pinu pro toggle wdt
3. Init timeru
4. Togling
5. Init zbytku (freertos, lwip, ...)
A to napětí jsem přesně neměřil. Změřím v úterý.
Nedaří se mi po připojení k MCU aby se procesor rozjel.
Init mcu vypadá následovně:
1. Init hodin
2. Init výstupního pinu pro toggle wdt
3. Init timeru
4. Togling
5. Init zbytku (freertos, lwip, ...)
0
- jenda23
- Ultimate člen
- Príspevky: 5779
- Dátum registrácie: 27 Jún 2008, 00:00
- Bydlisko: Česká Třebová
- Vek: 33
- Kontaktovať používateľa:
Re: Obsluha externího watchdogu
Ale přeci MCU nemůže bejt v HW resetu když proběhne incializace registrů timeru atd. Konkrétně tuto architekturu nijak důkladně neznám to je pravda.
0
Lokomotiva je jako žena.Je jich stovky typů a každej z nich je jinej,každá z nich je svým způsobem krásná.Když jí chceš aspoň trochu poznat jsou to stovky hodin času.Nejde s ní být aniž bys jí bezmezně miloval,je nemožný jí znát do poslední skulinky
- jirka.jirka.
- Ultimate člen
- Príspevky: 1538
- Dátum registrácie: 17 Okt 2008, 00:00
- Bydlisko: Uherské Hradiště
- Kontaktovať používateľa:
Re: Obsluha externího watchdogu
Já z toho nejsem vůbec moudrý...
Budu se muset podívat na tu inicializaci pořádně.
Jestli třeba netrvá dlouho. Třeba jsem něco přehlédl.
Takže by to potom bylo následovně:
Init clocku, gpio pinu a timeru by trvalo z nějakého důvodu moc dlouho, pak by to wdt vzal jako že má resetovat mcu .
Budu se muset podívat na tu inicializaci pořádně.
Jestli třeba netrvá dlouho. Třeba jsem něco přehlédl.
Takže by to potom bylo následovně:
Init clocku, gpio pinu a timeru by trvalo z nějakého důvodu moc dlouho, pak by to wdt vzal jako že má resetovat mcu .
0
- jenda23
- Ultimate člen
- Príspevky: 5779
- Dátum registrácie: 27 Jún 2008, 00:00
- Bydlisko: Česká Třebová
- Vek: 33
- Kontaktovať používateľa:
Re: Obsluha externího watchdogu
a WD opravdu padá na výstupu? Koukals osciloskopem?
0
Lokomotiva je jako žena.Je jich stovky typů a každej z nich je jinej,každá z nich je svým způsobem krásná.Když jí chceš aspoň trochu poznat jsou to stovky hodin času.Nejde s ní být aniž bys jí bezmezně miloval,je nemožný jí znát do poslední skulinky
- jirka.jirka.
- Ultimate člen
- Príspevky: 1538
- Dátum registrácie: 17 Okt 2008, 00:00
- Bydlisko: Uherské Hradiště
- Kontaktovať používateľa:
Re: Obsluha externího watchdogu
Koukal...
A jelikož mám wdt PIN pověšený přes jumper, tak když nechám mcu najet tak se wdt nastaví do high a už to funguje.
Takže spíš budu mít blbě inicializaci... Musím zjistit, proč to trvá tak dlouho.
A jelikož mám wdt PIN pověšený přes jumper, tak když nechám mcu najet tak se wdt nastaví do high a už to funguje.
Takže spíš budu mít blbě inicializaci... Musím zjistit, proč to trvá tak dlouho.
0
- jenda23
- Ultimate člen
- Príspevky: 5779
- Dátum registrácie: 27 Jún 2008, 00:00
- Bydlisko: Česká Třebová
- Vek: 33
- Kontaktovať používateľa:
Re: Obsluha externího watchdogu
Ale píšeš že ti timer kmitá což znamená že úvodní inicializací procesor prošel, nebo kmitá po otm co ho odpojíš ne watchdogu?
-- Spojený príspevok 22 Jún 2019, 07:10 --
Je divný že watchdog zasáhne, jelikož ho máš nastavenej na 1200ms, to musí dojít k incializaci MCU desetitisíkrát. A jestli nebude problém v tom že WD ignoruje reset pulzy pokud je v režimu reset.
-- Spojený príspevok 22 Jún 2019, 07:10 --
Je divný že watchdog zasáhne, jelikož ho máš nastavenej na 1200ms, to musí dojít k incializaci MCU desetitisíkrát. A jestli nebude problém v tom že WD ignoruje reset pulzy pokud je v režimu reset.
0
Lokomotiva je jako žena.Je jich stovky typů a každej z nich je jinej,každá z nich je svým způsobem krásná.Když jí chceš aspoň trochu poznat jsou to stovky hodin času.Nejde s ní být aniž bys jí bezmezně miloval,je nemožný jí znát do poslední skulinky
- jirka.jirka.
- Ultimate člen
- Príspevky: 1538
- Dátum registrácie: 17 Okt 2008, 00:00
- Bydlisko: Uherské Hradiště
- Kontaktovať používateľa:
Re: Obsluha externího watchdogu
Takže pokud to chápu správně, tak musím procesor s wdt odpojit a připojit ke zdroji? Jinak je wdt v resetu a pulty bude ignorovat? Noooo, tak to hned zítra otestují.A jestli nebude problém v tom že WD ignoruje reset pulzy pokud je v režimu reset.
0
Re: Obsluha externího watchdogu
procesor je v resete od pripojenia napájania alebo tam po pripojení napájania zbehne nejaká časť programu?
0
- jirka.jirka.
- Ultimate člen
- Príspevky: 1538
- Dátum registrácie: 17 Okt 2008, 00:00
- Bydlisko: Uherské Hradiště
- Kontaktovať používateľa:
Re: Obsluha externího watchdogu
Takže problém asi objeven....
jak vidno, tak inicializace a "rozblikání" pinu trvá kolem 3sekund. Tak a teď proč?
jak vidno, tak inicializace a "rozblikání" pinu trvá kolem 3sekund. Tak a teď proč?
0
-
- Ultimate člen
- Príspevky: 2574
- Dátum registrácie: 20 Júl 2010, 00:00
- Bydlisko: okolie KE
- Vek: 27
Re: Obsluha externího watchdogu
Nestabilizuje MCU nejaký interný napäťový regulátor? No a tiež nábeh sysclk.
0
- jenda23
- Ultimate člen
- Príspevky: 5779
- Dátum registrácie: 27 Jún 2008, 00:00
- Bydlisko: Česká Třebová
- Vek: 33
- Kontaktovať používateľa:
Re: Obsluha externího watchdogu
Ještě nápad, nevim jek tyhle MCU, ale mě u AVR dělal leckdy problém interní napěťovej watchdog (BOD level) a stávalo že prociku trvalo právě dost dlouho než prolez initem. Zkus debugger uvidíš co řekne.
0
Lokomotiva je jako žena.Je jich stovky typů a každej z nich je jinej,každá z nich je svým způsobem krásná.Když jí chceš aspoň trochu poznat jsou to stovky hodin času.Nejde s ní být aniž bys jí bezmezně miloval,je nemožný jí znát do poslední skulinky
- jirka.jirka.
- Ultimate člen
- Príspevky: 1538
- Dátum registrácie: 17 Okt 2008, 00:00
- Bydlisko: Uherské Hradiště
- Kontaktovať používateľa:
Re: Obsluha externího watchdogu
Tak jo chlapci a děvčata. Chcete se pobavit na můj účet?
Problém jsem právě vyřešil.
Inicializace Timeru 3, který řeší blinkání s WDT.
Problém byla pouze priorita.... Kde jsem ji v původním initu neměl. Nyní po dopsání už to jede. Takže chyba byla na straně programátora.
Problém jsem právě vyřešil.
Inicializace Timeru 3, který řeší blinkání s WDT.
Kód: Vybrať všetko
void Start_Timer_3(void)
{
//Enables APB1 TIM16 peripheral clock
LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM3);
//Sets update event source to counter overflows only
LL_TIM_SetUpdateSource(TIM3, LL_TIM_UPDATESOURCE_COUNTER);
//Configures the TIM16 time base
LL_TIM_InitTypeDef TIM_InitStruct;
TIM_InitStruct.Prescaler = 50000 - 1;
TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_UP;
TIM_InitStruct.Autoreload = 250; // perioda 500ms
TIM_InitStruct.ClockDivision = LL_TIM_CLOCKDIVISION_DIV1;
TIM_InitStruct.RepetitionCounter = 0;
LL_TIM_Init(TIM3, &TIM_InitStruct);
//Enables update interrupt
LL_TIM_EnableIT_UPDATE(TIM3);
//Enables timer counter
LL_TIM_EnableCounter(TIM3);
//Enables Interrupt
NVIC_SetPriority(TIM3_IRQn, 2);
NVIC_EnableIRQ(TIM3_IRQn);
}
Kód: Vybrať všetko
NVIC_SetPriority(TIM3_IRQn, 2);
0
-
- Ultimate člen
- Príspevky: 2574
- Dátum registrácie: 20 Júl 2010, 00:00
- Bydlisko: okolie KE
- Vek: 27
Re: Obsluha externího watchdogu
Stáva sa.
Ja som sa raz popálil na nulovaní TIMx->SR. Riešil som gps hodiny. STM32F0 mi nestíhalo multiplex displeja + príjem NMEA.
Respektíve, v prerušení od UARTx mi prijalo NMEA (aj to až po laborovaní s prioritami). Ale v maine mi ju nechcelo dekódovať, proste sa slučka nedostala k slovu.
Pritom vedel som že na arduine uno sa to dá. Potom som dal na začiatok aj koniec ISR GPIO a hodil som to na osciloskop. Nechápal som prečo to furt trčí v prerušení od časovača. Jedna drobnosť a bolo po probléme.
Ja som sa raz popálil na nulovaní TIMx->SR. Riešil som gps hodiny. STM32F0 mi nestíhalo multiplex displeja + príjem NMEA.
Respektíve, v prerušení od UARTx mi prijalo NMEA (aj to až po laborovaní s prioritami). Ale v maine mi ju nechcelo dekódovať, proste sa slučka nedostala k slovu.
Pritom vedel som že na arduine uno sa to dá. Potom som dal na začiatok aj koniec ISR GPIO a hodil som to na osciloskop. Nechápal som prečo to furt trčí v prerušení od časovača. Jedna drobnosť a bolo po probléme.
0