Obsluha externího watchdogu

Všetko čo sa týka mikropočítačov + Sekcia Arduino

Moderátori: psichac, Moderátori

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1537
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

Obsluha externího watchdogu

Príspevok od používateľa jirka.jirka. » 21 Jún 2019, 13:57

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... :rolleyes:

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í... :confused:
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
Prílohy
reset.PNG
connect.PNG
0

Používateľov profilový obrázok
jenda23
Ultimate člen
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

Príspevok od používateľa jenda23 » 21 Jún 2019, 14:47

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

solec
Stály člen
Stály člen
Príspevky: 116
Dátum registrácie: 12 Máj 2016, 14:41
Bydlisko: Prešov

Re: Obsluha externího watchdogu

Príspevok od používateľa solec » 21 Jún 2019, 17:09

tých 3V3 máš 3,3V alebo je to aj niečo pod 3V ?
0

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1537
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

Re: Obsluha externího watchdogu

Príspevok od používateľa jirka.jirka. » 21 Jún 2019, 21:10

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, ...)
0

solec
Stály člen
Stály člen
Príspevky: 116
Dátum registrácie: 12 Máj 2016, 14:41
Bydlisko: Prešov

Re: Obsluha externího watchdogu

Príspevok od používateľa solec » 21 Jún 2019, 21:48

preveril by som pin TOL voči veľkosti napájacieho napätia
0

Používateľov profilový obrázok
jenda23
Ultimate člen
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

Príspevok od používateľa jenda23 » 21 Jún 2019, 21:57

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

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1537
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

Re: Obsluha externího watchdogu

Príspevok od používateľa jirka.jirka. » 21 Jún 2019, 22:35

Já z toho nejsem vůbec moudrý... :roll:
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

Používateľov profilový obrázok
jenda23
Ultimate člen
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

Príspevok od používateľa jenda23 » 21 Jún 2019, 22:55

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

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1537
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

Re: Obsluha externího watchdogu

Príspevok od používateľa jirka.jirka. » 21 Jún 2019, 23:32

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.
0

Používateľov profilový obrázok
jenda23
Ultimate člen
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

Príspevok od používateľa jenda23 » 22 Jún 2019, 07:59

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.
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

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1537
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

Re: Obsluha externího watchdogu

Príspevok od používateľa jirka.jirka. » 24 Jún 2019, 21:26

A jestli nebude problém v tom že WD ignoruje reset pulzy pokud je v režimu reset.
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í. :thumbup:
0

solec
Stály člen
Stály člen
Príspevky: 116
Dátum registrácie: 12 Máj 2016, 14:41
Bydlisko: Prešov

Re: Obsluha externího watchdogu

Príspevok od používateľa solec » 24 Jún 2019, 21:48

procesor je v resete od pripojenia napájania alebo tam po pripojení napájania zbehne nejaká časť programu?
0

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1537
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

Re: Obsluha externího watchdogu

Príspevok od používateľa jirka.jirka. » 25 Jún 2019, 12:51

Takže problém asi objeven....

jak vidno, tak inicializace a "rozblikání" pinu trvá kolem 3sekund. Tak a teď proč? :P :P :P
Prílohy
SCR03.PNG
0

maskrtnik01
Ultimate člen
Ultimate člen
Príspevky: 2563
Dátum registrácie: 20 Júl 2010, 00:00
Bydlisko: okolie KE
Vek: 27

Re: Obsluha externího watchdogu

Príspevok od používateľa maskrtnik01 » 25 Jún 2019, 12:59

Nestabilizuje MCU nejaký interný napäťový regulátor? No a tiež nábeh sysclk.
0

Používateľov profilový obrázok
jenda23
Ultimate člen
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

Príspevok od používateľa jenda23 » 25 Jún 2019, 13:30

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

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1537
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

Re: Obsluha externího watchdogu

Príspevok od používateľa jirka.jirka. » 25 Jún 2019, 14:12

Tak jo chlapci a děvčata. Chcete se pobavit na můj účet? :P :P :P

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);
}
Problém byla pouze priorita.... :crying: :crying: :crying: 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.

Kód: Vybrať všetko

NVIC_SetPriority(TIM3_IRQn, 2);
0

maskrtnik01
Ultimate člen
Ultimate člen
Príspevky: 2563
Dátum registrácie: 20 Júl 2010, 00:00
Bydlisko: okolie KE
Vek: 27

Re: Obsluha externího watchdogu

Príspevok od používateľa maskrtnik01 » 25 Jún 2019, 14:24

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.
0

Napísať odpoveď