Mega 2560 se neha odzivati

Arduino je pojav za katerega bi težko rekli, da opisuje samo HW ali samo SW, zato mu tu namenajm poseben prostor.

Moderator: tilz0R

Mega 2560 se neha odzivati

OdgovorNapisal/-a Igor01 » 18 Jul 2020, 12:10

Živjo,

V projektu je uporabljeno :
Arduino Mega (preko ESP8266 na Blynk)
3 x DHT22 na posameznih pinih,
3 linije z več DS18B20 na liniji,
10 x relejni izhod (preklop impulznega releja),
10 x tipanje stanja impulznega releja
1 x senzor tlaka vode
3 x PIR senzor
še nekaj malenkosti.


po tem, ko sem odpravil vse v prejšnjih temah opisane težave (branje DHT22 in povezava z ESP8266), zadeva deluje brezhibno .... 2 do 4 dni.
Potem Mega ni več odziven, ESP8266 pa ostane povezan na router.
Po resetu spet deluje 2-4 dni, ...

Pred časom je enak sistem za kontrolo temperature in daljinko krmiljenje relejev deloval preko SMS sporočil. Tam je bila težava, da se je po določenm številu prejetih oz poslanih sms zapolnil spomin za sms. Ukaz brisanja spomina sms po vsakem prejetem ali poslanem ukazu, je zadevo rešil.

Podatki se pošiljajo na 5s, po utripanju led na ESP8266 trajajo max 3s, preklopi relejev se izvedejo v trenutku.
Če podatke pošiljam na daljši presledek, ni razlike - vseeno se po 2-4 dneh neha odzivati.

Rešitev je sicer reset na 24 ur, vendar bi raje rešil težavo brez reseta.

Je možno, da se tudi tukaj zapolni spomin in bi ga občasno moral pobrisati ?

LP
Igor01
 
Prispevkov: 16
Pridružen: 18 Jan 2015, 09:52
Zahvalil se je: 2 krat
Prejel zahvalo: 2 krat
Uporabnika povabil: S52O
Število neizkoriščenih povabil: 5

Re: Mega 2560 se neha odzivati

OdgovorNapisal/-a mucek » 18 Jul 2020, 12:24

Buffer overflow?
... lahko pa se tudi motim ...
Uporabniški avatar
mucek
 
Prispevkov: 1668
Pridružen: 18 Jan 2015, 21:20
Kraj: Ljubljana
Zahvalil se je: 62 krat
Prejel zahvalo: 504 krat
Uporabnika povabil: s54mtb
Število neizkoriščenih povabil: 94

Re: Mega 2560 se neha odzivati

OdgovorNapisal/-a VolkD » 18 Jul 2020, 12:42

Sem imel podoben problem. Zadeva je obvisela. Ne ravno na dva dni, ampak dokaj pogosto, oziroma vsaj 3 do 4x na teden.
Problem je bil v sočasnosti dveh dogodkov (interuppt) in dejstvu, da imajo mege premalo RAM-a. Stack je povozil nekaj spremenljivk.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 43115
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 9484 krat
Prejel zahvalo: 5327 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 122

Re: Mega 2560 se neha odzivati

OdgovorNapisal/-a Protoncek » 18 Jul 2020, 12:53

Kaj pa, če megi vklopiš watchdog? Sicer je to bolj krpanje ran kot preprečevanje ureznine, ampak mogoče bolje kot nič...
Uporabniški avatar
Protoncek
 
Prispevkov: 4123
Pridružen: 17 Jan 2015, 21:41
Kraj: Mengeš
Zahvalil se je: 420 krat
Prejel zahvalo: 503 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 104

Re: Mega 2560 se neha odzivati

OdgovorNapisal/-a VolkD » 18 Jul 2020, 13:39

Ja saj pes, ki včasih ugrizne je namenjen točno temu.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 43115
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 9484 krat
Prejel zahvalo: 5327 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 122

Re: Mega 2560 se neha odzivati

OdgovorNapisal/-a BosniaCNC » 18 Jul 2020, 14:34

Igor01 je napisal/-a:Živjo,

V projektu je uporabljeno :
Arduino Mega (preko ESP8266 na Blynk)
3 x DHT22 na posameznih pinih,
3 linije z več DS18B20 na liniji,
10 x relejni izhod (preklop impulznega releja),
10 x tipanje stanja impulznega releja
1 x senzor tlaka vode
3 x PIR senzor
še nekaj malenkosti.


po tem, ko sem odpravil vse v prejšnjih temah opisane težave (branje DHT22 in povezava z ESP8266), zadeva deluje brezhibno .... 2 do 4 dni.
Potem Mega ni več odziven, ESP8266 pa ostane povezan na router.
Po resetu spet deluje 2-4 dni, ...

Pred časom je enak sistem za kontrolo temperature in daljinko krmiljenje relejev deloval preko SMS sporočil. Tam je bila težava, da se je po določenm številu prejetih oz poslanih sms zapolnil spomin za sms. Ukaz brisanja spomina sms po vsakem prejetem ali poslanem ukazu, je zadevo rešil.

Podatki se pošiljajo na 5s, po utripanju led na ESP8266 trajajo max 3s, preklopi relejev se izvedejo v trenutku.
Če podatke pošiljam na daljši presledek, ni razlike - vseeno se po 2-4 dneh neha odzivati.

Rešitev je sicer reset na 24 ur, vendar bi raje rešil težavo brez reseta.

Je možno, da se tudi tukaj zapolni spomin in bi ga občasno moral pobrisati ?

LP


Nabavi ArduinoDUO.
LP
Uporabniški avatar
BosniaCNC
 
Prispevkov: 318
Pridružen: 23 Jan 2015, 12:57
Kraj: Zenica - BiH
Zahvalil se je: 59 krat
Prejel zahvalo: 158 krat
Uporabnika povabil: forest70
Število neizkoriščenih povabil: 18

Re: Mega 2560 se neha odzivati

OdgovorNapisal/-a Igor01 » 18 Jul 2020, 15:29

@ BosniaCNC

Mora biti Mega zaradi števila potrebnih portov.


Watchdog ?

vem, lahko googlam, ampak bo razlaga tukaj verjetno bolj razumljiva - kako ga uporabiti in kaj izpljune ?

LP
Igor01
 
Prispevkov: 16
Pridružen: 18 Jan 2015, 09:52
Zahvalil se je: 2 krat
Prejel zahvalo: 2 krat
Uporabnika povabil: S52O
Število neizkoriščenih povabil: 5

Re: Mega 2560 se neha odzivati

OdgovorNapisal/-a VolkD » 18 Jul 2020, 16:27

Igor01 je napisal/-a:Watchdog ?

No glej, saj je enostavno. Sicer od vsega tega ne razumem edino imena, a bom vseeno poskusil.
Imamo psa, ki ima uro. Tako uro kot jo imajo časovne bombe. Ura odšteva do nule. Ko pride na nulo, pes ugotovi, da mora ugrizniti v program. Ugriznjen program se prestraši posledic in začne znova.

Skratka:
Na začetku programa nastavimo nek števec in nastavimo zgornje dogajanje. V glavno zanko dodamo nek ukaz, ki ponastavi števec na določeno vrednost. To je vse.

Če se naš program nekje, kjerkoli zapleza, potem ne bo prišel do ponovne ponastavitve. Števec pa medtem odšteva. Ko pride do nule se vse skupaj zažene znova.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 43115
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 9484 krat
Prejel zahvalo: 5327 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 122

Re: Mega 2560 se neha odzivati

OdgovorNapisal/-a Protoncek » 18 Jul 2020, 16:38

Watchdog je v bistvu čisto ločen števec s svojim oscilatorjem. Vklopiš in nastaviš do kam naj šteje (od nekaj ms do nekaj sekund). Števec je narejen tako, da ko pride do konca udari reset kontrolerja. Torej je na tebi, da PRED TEM ta števec redno postavljaš na nulo. Torej, če program normalno teče, se števec redno resetira in je vse ok. Če pa program zašteka v eni zanki, se števec ne resetira, pride do konca in udari reset AVRja.
Zdaj pa...
- problem št.1: najti vse legalne zanke, podprograme, rutine... in vedno in redno resetirati ta števec, da ne pride do neželjenega reseta.
- problem št.2: če avr slučajno zašteka v neki zanki, kjer se nahaja reset števca, se reset AVR-ja nikoli ne bo zgodil...

Če sem prav prebral ima mega2560 max. 8 sekund ta števec. Torej, ker praviš, da oddajaš na 5 sekund in zadeva neha oddajati lahko števec daš na 8 sekdund in samo v ciklu oddaje resetiraš števec in ko/če oddaje ne bo, bo AVR rebootal.

Koda: Izberi vse
Table 12-2. Watchdog Timer Prescale Select
WDP3 WDP2 WDP1 WDP0 Number of WDT Oscillator Cycles Typical Time-out at VCC = 5.0V
0 0 0 0 2K   (2048) cycles 16ms
0 0 0 1 4K   (4096) cycles 32ms
0 0 1 0 8K   (8192) cycles 64ms
0 0 1 1 16K   (16384) cycles 0.125s
0 1 0 0 32K   (32768) cycles 0.25s
0 1 0 1 64K   (65536) cycles 0.5s
0 1 1 0 128K   (131072) cycles 1.0s
0 1 1 1 256K   (262144) cycles 2.0s
1 0 0 0 512K   (524288) cycles 4.0s
1 0 0 1 1024K   (1048576) cycles 8.0s
Uporabniški avatar
Protoncek
 
Prispevkov: 4123
Pridružen: 17 Jan 2015, 21:41
Kraj: Mengeš
Zahvalil se je: 420 krat
Prejel zahvalo: 503 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 104

Re: Mega 2560 se neha odzivati

OdgovorNapisal/-a Igor01 » 18 Jul 2020, 17:02

Že naloženo, hvala.

LP
Igor01
 
Prispevkov: 16
Pridružen: 18 Jan 2015, 09:52
Zahvalil se je: 2 krat
Prejel zahvalo: 2 krat
Uporabnika povabil: S52O
Število neizkoriščenih povabil: 5

Re: Mega 2560 se neha odzivati

OdgovorNapisal/-a Igor01 » 22 Jul 2020, 20:29

Zadeva je delovala bp 4 dni in slabih 17 ur. Po samodejnem resetu je vse ok. Zanj ne bi niti vedel, če ne bi Blynk javil prekinjene povezave. Izpad za minuto, četudi na 4 dni, je za sedaj sprejemljiv. Senzorji niso problem, ravno zaradi možnih izpadov, pa je vse, kar je na regulaciji kritičnega, na impulznih relejih.

LP
Igor01
 
Prispevkov: 16
Pridružen: 18 Jan 2015, 09:52
Zahvalil se je: 2 krat
Prejel zahvalo: 2 krat
Uporabnika povabil: S52O
Število neizkoriščenih povabil: 5


Vrni se na Arduino

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost