www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Krmiljenje centralne se obeša (debug kompleksnega sistema)
Pojdi na stran 1, 2  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3362
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Sre Dec 09, 2009 8:36 am    Naslov sporočila:  Krmiljenje centralne se obeša (debug kompleksnega sistema) Odgovori s citatom

Naredil sem napravo, na katero sem kar ponosen.

Mikroprocesor atmel M32, RTC PCF8583, (ima svoj akuu, da obdrži podatke tudi ob izpadu elektrike). ki ga uporabljam tudi kot dodatni RAM, Dallasovi termometri, LCD, ki kaže delovanje, poleg tega se sekunde stalno vrtijo na njem in mi tako kaže, da le mikro živ, Uart je povezan z mobilnim telefonom, preko SMS-ov upravljam napravo in tudi dobivam poročila.

Gre za napravo za vodenje kotlovnice po v naprej (preko SMS-ov) nastavljenem urniku in po posebnih zahtevah posredovanih preko SMS-ov, Releji vklapljajo mešalni ventil, obtočne črpalke, in kotel, se pravi gorilnik, preko kotlovske avtomatike. Prav fina zadeva, res.

Če me ne bi ta naprava zafrkavala.
Približno enkrat na mesec se zgodi, da mikroprocesor zmrzne, na LCD-u ni nič, releji so vsi pritegnjeni, in centralna dela na vso moč, tako da se zbudimo kot v savni.
V kurilnici je LCD prazen, brez kakršnekoli informacije.

Resetiram napravo. Se pravi izklpim 220 in ga spet vklopim. Čudim se, da ga ne resetira watchdog, saj naj bi ta imel svoj oscilator, a ga ne resetira. Interni watchdog torej ni rešitev iz vseh mogočih težav. In po resetu opazim, da je datum v RTC-u popolnoma nesmiseln, (in verjetno tudi vsebina RAM-a v njem) Datum in ura se namreč stalno prikazjeta na LCD-u. To popravim z zato predvidenim SMS sporočilom. In spet bo nekaj časa mir.

Ker ne morem z instrumenti v kurilnico, da bi pomeril kake napetosti v času izpada, mi ostane le ugibanje, kaj bi lahko bilo narobe. Pogostnost izpada nisem uspel povezati s kakšno koincidenco, ki bi mi dala namig, kje iskati. Vendar, ker gre za tako nizko pogostnost, bi rekel, da ne gre za programsko napako.

Vprašanje za izkušene mojstre: Kako se lotiti in najti vzrok za take izpade.


Podvprašanje: Pri starih atmelih 2051 sem si včasih pomagal z ekksternim watchdogom, ki bi me morda tudi tukaj rešil, vsaj tega, da bi zadeva ne izvisela. kako pa se eksterni watchdog obnaša pri serijskem programiranju, verjetno, ga je potrebno nekako odklopiti takrat, ko programiramo mikro, kaj ne?

_________________
Nihče ni za vojno in vsi so za mir,
vsi so za bratstvo, nihče za prepir.
Od same ljubezni vsak čas na granatah
bo vtisnjeno geslo: "Darilo za brata"
Janez Menart
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9407
Aktiv.: 39.67
Kraj: Kranj - struževo

PrispevekObjavljeno: Sre Dec 09, 2009 9:01 am    Naslov sporočila:   Odgovori s citatom

Jp, zunanji watchdog, lahko tudi s periodo 30 sekund ali 1 minute - da ga ni potrebno izklapljati med programiranjem.

Glede stanja relejev - vsi pritegnjeni - bi bilo mogoče smiselno narediti obratno logiko.

Večina procesorjev ima ob resetu pine v HiZ (mogoče tudi pull-up upore vklopljene?). Smiselno bi bilo dati na te linije take upore, da definirajo stanje relejev kot izklopljeno.

Še ena ideja - na 1-wire vodilo lahko obesiš en eeprom, v katerega shraniš urnik centralne, ko sprejmeš sms. Ko se sistem restarta iz bilo katerega razloga, prebereš nastavitve od tam. Če se procesorju utrga, je sorazmerno malo verjetnosti, da bi uspel pobrkljat vsebino 1-wire eeproma.

Dodaš lahko tudi kak čip z ram-om na 1-wire, v katerega zapisuješ vrednosti spemenljivk, in ga lahko prebereš po tem, ko se procu utrga. Da poskusiš ugotoviti, kaj se mu je zgodilo.

_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
BojanR
Član
Član



Pridružen-a: Tor 08 Apr 2008 9:52
Prispevkov: 693
Aktiv.: 3.31
Kraj: Vnanje Gorice

PrispevekObjavljeno: Sre Dec 09, 2009 9:25 am    Naslov sporočila:   Odgovori s citatom

Zunanji watchdog ne bo rešil ničesar, ker se procesorju zmeša. Vilko je rekel, da mu nobene nastavitve ne veljajo. Tudi e2prom mu ne bo koristil, ker je kurilnica vezana na čas in ne samo na vpisane parametre. Rešitev potem bi bila še sinhronizacija ure.
Po mojem je to zgrešen pristop in je potrebno najti vzrok napake.
In prav to bi tudi mene zanimalo. Kako odkriti napako, ki se vsake toliko, na videz naključno, pojavi. Kaj uporabiti za logger oz. kako sploh se tega lotiti.
Pravilna zasnova PCBja, upoštevanje pravil EMI itd... Ok. Pa kaj če vseeno. Kako potem zadeve rešujete, razen da po mesecu neuspelih poskusov zadevo zabrišete v kot?

Začasna rešitev pri tvojem problemu, Vilko, je verjetno res v zunanjem WD (nasprotno kot sem trdil zgoraj, saj vem, ampak tole me je prešinilo) in da potem centralna dela v nekem safe-modu.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3362
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Sre Dec 09, 2009 9:42 am    Naslov sporočila:   Odgovori s citatom

BojanR je napisal/a:
, upoštevanje pravil EMI i


Prosim, malo več o tem.

_________________
Nihče ni za vojno in vsi so za mir,
vsi so za bratstvo, nihče za prepir.
Od same ljubezni vsak čas na granatah
bo vtisnjeno geslo: "Darilo za brata"
Janez Menart
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
.
Član
Član



Pridružen-a: Pon 23 Avg 2004 16:16
Prispevkov: 16777190
Aktiv.: 70757.83

PrispevekObjavljeno: Sre Dec 09, 2009 9:47 am    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
BojanR
Član
Član



Pridružen-a: Tor 08 Apr 2008 9:52
Prispevkov: 693
Aktiv.: 3.31
Kraj: Vnanje Gorice

PrispevekObjavljeno: Sre Dec 09, 2009 10:24 am    Naslov sporočila:   Odgovori s citatom

vilko je napisal/a:
malo več o tem.


Google?!? ali ta povezava
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3362
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Sre Dec 09, 2009 10:26 am    Naslov sporočila:   Odgovori s citatom

MarE69 je napisal/a:
Za začetek lahko PCF8583 sprogramiraš alarm tako, da se proži dve minuti vnaprej. Potem daj v svojem programu zakasnitev npr. 1 minuto, po kateri popraviš alarm na novo vrednost, da se ne sproži. Če bo mikrokontroler zamrznil, se bo sprožil alarm in pin 7 (INT) bo šel na 0. To daš na reset vhod in imaš zunanji watchdog brez dodajanja komponent.


Sumim, da mi RTC alarm ne bo pomagal, ker tudi RTC je popolnoma zmešan. Ko resetiram mikro, ima RTC popolnoma nesmiselne podatke.
Mislim, da bo potrebno iskati motnjo od zunaj, ali v napajanju, ker se zbluzi obema, tako mikroprocesorju kot tudi RTC-u. Ali bi dal napravo v oklep (faradayevo kletko).

Pred časom sem imel probleme z termostatom kotla: kadarkoli je termostat kotla odklopil, sem imel podobne probleme. Sedaj sem to rešil tako, da sam izklapljalm kotel, predno ga izklopi termostat. Pa tudi vse mogoče filtre sem vgrajeval, takrat.
Saj veste oljni gorilnik ima visokonapestosni transformator in iskrišče, kar je lahko vir motenj...

Sin mi dopoveduje, da je napaka v programu, a mu nekako ne verjemem, saj bi tako napako moral povleči ven Watchdog.

_________________
Nihče ni za vojno in vsi so za mir,
vsi so za bratstvo, nihče za prepir.
Od same ljubezni vsak čas na granatah
bo vtisnjeno geslo: "Darilo za brata"
Janez Menart
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3362
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Sre Dec 09, 2009 10:30 am    Naslov sporočila:   Odgovori s citatom

Hvala Bojan,

bom prebral

_________________
Nihče ni za vojno in vsi so za mir,
vsi so za bratstvo, nihče za prepir.
Od same ljubezni vsak čas na granatah
bo vtisnjeno geslo: "Darilo za brata"
Janez Menart
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
BorisK
Član
Član



Pridružen-a: Sre 02 Apr 2008 23:43
Prispevkov: 278
Aktiv.: 1.33
Kraj: Ljubljana

PrispevekObjavljeno: Sre Dec 09, 2009 11:16 am    Naslov sporočila:   Odgovori s citatom

Pri meni je bilo podobno. Mikrokontrolerska aplikacija z izhodnimi releji in 230V bremeni. V "prostem teku" vse lepo dela, priklopljena bremena ga pa zmedejo.

Rešitev so bili RC členi, vezani na kontakte relejev (3n3 + 100E). Optična ločitev mikrokontrolerskega ter relejskega dela ni zalegla nič.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.88
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Sre Dec 09, 2009 11:18 am    Naslov sporočila:   Odgovori s citatom

Citiram:
Vendar, ker gre za tako nizko pogostnost, bi rekel, da ne gre za programsko napako.


Vilko, to ravno ne drži. Ravno nekomu, ki je bil zadnjič pri meni na simulatorju to dokazoval. Možnost napake je recimo lahko tako "pogosta" kot bi zadel na lotu. Recimo zelo enostaven primer: Uporabljaš neko prekinitev. Ob prekinitvi nisi shranil statusnega registra. Prekinite se zgodi ko recimo izvajaš neko primerjavo. V prekinitveni rutini se statusni biti recimo spremenijo. Ko se program vrne iz prekinitve je seveda stanje statusnih bitov drugačno kakeršno je bilo pred prekinitvijo pa je "štata" tu. Sad

Pri tvoji težavi me moti ena stvar: Kaj povozi PCF8583? Tale čip je namreč izredno stabilen. Če napajanje čipa ločiš preko diode dodaš malo večji elektrolit bo ura tekla še kar precej časa. Poraba vezja je ranga uA. Dela pa še pri napetosti 1V. Kak gold cap bo uro držal nekaj dni. Glede na to, da omenjaš baterisko napajanje je edina razlaga, da je ura povožena preko I2c ? Pa smo spret pri mikrokontrolerju. Uro bi lahko prestavil načeloma le on. Torej program bi se lahko zazankal nekje v I2C rutini.
V nadaljevanju:
Kako kako imaš izvedeno branje sekund? Softversko preko I2C ali hardversko preko izhodnega pina PCF? 1Wire protokol je namreč dokaj počasen. V koliko je na vodilu več senzorjev in bereš še ID-je poleg tega pišeš še vsako sekundo na LCD uporabljaš I2C pa po možnosti še UART je tole za procesor kar znaten zalogaj. Ne vem, če ostane dosti procesrorskega časa, še zlasti ker večina stvari (vsaj delov procedur) ne smeš prekinjati.
Osebno bi za nadzor sekund uporabil ledico, katero bi krmilil diretno z PCF-jem. PCF bi bral recimo vsake pol minute. Displej pa osveževal na minuto.

P.S.
Osebno sumim, da je za tvoja težava softwerskega značaja.

_________________
lp
Silvo


Nazadnje urejal/a Silvo Sre Dec 09, 2009 1:27 pm; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9407
Aktiv.: 39.67
Kraj: Kranj - struževo

PrispevekObjavljeno: Sre Dec 09, 2009 11:45 am    Naslov sporočila:   Odgovori s citatom

Uporabi SSR - Solid State Rele (optokopler + triak) za reševanje takih težav.
Triak naj bo dobolj močan (16A, 20A), da bo požrl tudi kakšne tokovne konice.
Nedavno je bilo na forumu v 2 temah govora o podobnih problemih.


http://www.elektronik.si/phpBB2/viewtopic.php?t=14537
http://www.elektronik.si/phpBB2/viewtopic.php?t=18173

http://www.elektronik.si/phpBB2/viewtopic.php?t=14000

Se pa strinjam tudi s Silvotom - prekinitve znajo biti kar boleč vir težav.
Sploh če imaš tako programsko okolje, kjer zadev nimaš ravno pod kontrolo (Bascom ipd.)...

_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3362
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Sre Dec 09, 2009 2:25 pm    Naslov sporočila:   Odgovori s citatom

Silvo je napisal/a:
Citiram:
Vendar, ker gre za tako nizko pogostnost, bi rekel, da ne gre za programsko napako.


Vilko, to ravno ne drži. Ravno nekomu, ki je bil zadnjič pri meni na simulatorju to dokazoval. Možnost napake je recimo lahko tako "pogosta" kot bi zadel na lotu. Recimo zelo enostaven primer: Uporabljaš neko prekinitev. Ob prekinitvi nisi shranil statusnega registra. Prekinite se zgodi ko recimo izvajaš neko primerjavo. V prekinitveni rutini se statusni biti recimo spremenijo. Ko se program vrne iz prekinitve je seveda stanje statusnih bitov drugačno kakeršno je bilo pred prekinitvijo pa je "štata" tu. Sad

Pri tvoji težavi me moti ena stvar: Kaj povozi PCF8583? Tale čip je namreč izredno stabilen. Če napajanje čipa ločiš preko diode dodaš malo večji elektrolit bo ura tekla še kar precej časa. Poraba vezja je ranga uA. Dela pa še pri napetosti 1V. Kak gold cap bo uro držal nekaj dni. Glede na to, da omenjaš baterisko napajanje je edina razlaga, da je ura povožena preko I2c ? Pa smo spret pri mikrokontrolerju. Uro bi lahko prestavil načeloma le on. Torej program bi se lahko zazankal nekje v I2C rutini.
V nadaljevanju:
Kako kako imaš izvedeno branje sekund? Softversko preko I2C ali hardversko preko izhodnega pina PCF? 1Wire protokol je namreč dokaj počasen. V koliko je na vodilu več senzorjev in bereš še ID-je poleg tega pišeš še vsako sekundo na LCD uporabljaš I2C pa po možnosti še UART je tole za procesor kar znaten zalogaj. Ne vem, če ostane dosti procesrorskega časa, še zlasti ker večina stvari (vsaj delov procedur) ne smeš prekinjati.
Osebno bi za nadzor sekund uporabil ledico, katero bi krmilil diretno z PCF-jem. PCF bi bral recimo vsake pol minute. Displej pa osveževal na minuto.

P.S.
Osebno sumim, da je za tvoja težava softwerskega značaja.


Kar precej si mi napisal v premislek, Hvala.


Uporabljam samo dve prekinitvi: Timer, ki mi poganja neke vrste mikroprocesorsko uro, in Serijsko prekinitev, preko katere berem, kaj mi pravi GSM. Programirano v Bascomu. Ali se ti res zdi, da bi mi katera od prekinitev sfuzlala program po mesecu dni? Prekinitve se sicer dogajajo dokaj pogosto, Tudi z GSM-om 'se pogovarjam' vsako minuto, da vem da je živ in mi odgovarja.

PCF berem vsako minuto preko i2c protokola, sekunde štejem sam v programu.
pač pa pišem v PCF 'današnji urnik' ogrevanja in iz njega berem, kaj početi sedaj, ob tej uri. Pa tudi spremembe, ki jih pošljem preko SMS-a, recimo začasni odstopanje od standardnega urnika, zapišem v PCF Ram. Tukaj bi eventuelno lahko prišlo, da bi sfuzlal vsebino PCF-a, toda kako bi sfuzlal istočasno še mikro, in to tako, da me watchdog ne pobere iz blata? Watchdog ne resetiram v timer rutini temveč v delovni zanki.

Cikliranje je minutno, vsako minuto, a to v različnih sekundah minute, delam nekaj. Berem temperature, računam, vklapljam releje (nikoli dva v isti sekundi).

Tudi z GSM-om se pogovarjam v svojih sekundah, ko ne delam drugega..

Dodal sem neke vrstel loging. Piše na MMC kartico, preko enega drugega mikroprocesorja in softwarskega uarta. Sedaj ga grem brat, kaj je napisal.

Hvala za pomoč

vs

_________________
Nihče ni za vojno in vsi so za mir,
vsi so za bratstvo, nihče za prepir.
Od same ljubezni vsak čas na granatah
bo vtisnjeno geslo: "Darilo za brata"
Janez Menart
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
smatjaz
Član
Član



Pridružen-a: Pon 10 Nov 2003 16:33
Prispevkov: 847
Aktiv.: 3.57

PrispevekObjavljeno: Sre Dec 09, 2009 3:53 pm    Naslov sporočila:   Odgovori s citatom

Še ena moja izkušnja. Vprašanje sem zastavil tudi nekje na tem forumu nekaj let nazaj.
Podobno se mi je dogajalo, ko sem delal sistem regulacije z vklaplanjem enofaznega motorja. Okolje je bilo dokaj neugodno, polno EMV smeti. Po določenih vklopih se je zgodil restart, ali pa se je kontroler obesil. Poizkusil sem vse, toda direktno napake nisem našel.

Preprosto sem se odločil, da izdelam novo tiskano vezje (prejšnje je bilo narejeno z autorouterjem). Povezave sem po svoji intuiciji povezal ročno. Izognil sem se tudi tega, da so vsi releji, ki jih krmili mikrokontroler 12V in ne 5V, kot je bilo to rešeno v zgoraj opisanem primeru. S tem sem se izognil raznim motnjam v napajanju pri preklopu relejev.
To načelo uporabljam tudi še sedaj, povsod kjer uporabljam releje pa uporabljam 12 V napajanje s 5V regulatorjem.


Lp M.

_________________
Električni aparati delujejo na dim ... ko dim iz njih uide ... ne delujejo več!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
AlesK
Član
Član



Pridružen-a: Sob 24 Jan 2009 15:59
Prispevkov: 17
Aktiv.: 0.09
Kraj: Kobarid

PrispevekObjavljeno: Sre Dec 09, 2009 6:07 pm    Naslov sporočila:   Odgovori s citatom

Mogoče malo neumno, pa vseeno.

Ali je možno, da ti GSM modul sprejme neko sporočilo (ne tvojega), ki ga sistem ne razume in odreagira po svoje?
Je mogoče antena GSM modula preblizu, pa moti delovanje vezja? Enkrat na mesec... mogoče ko je dež in mora GSM modul delat močneje?

LP Aleš
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
RGorazd
Član
Član



Pridružen-a: Čet 20 Maj 2004 15:57
Prispevkov: 1714
Aktiv.: 7.23
Kraj: Ig

PrispevekObjavljeno: Sre Dec 09, 2009 10:03 pm    Naslov sporočila:   Odgovori s citatom

Jaz bi pa za tole naprtil krivdo ravno RTCju (PCF); čudno se mi zdi, da se mu "zmeša", razen, če se mu dejansko res nekaj ne utrga, ker drugače ga nima kaj dosti zmešati, mogoče ti potem I2C vodilo tako sesuje, oz, ker mogoče ne pošlje ravno tistega, kar bi moral po I2Cju poslati, se ti mikrokontroler tam obesi, ko čaka določen byte? Jaz v tej smeri razmišljam. Drugače je tako kot je napisal Silvo. PCFji so precej trdoživi in jih je težko spraviti s tira, ampak če pa ima kako prirojeno napako, pa lahko zafrkava.

LP G

_________________
.
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._|
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran 1, 2  Naslednja
Stran 1 od 2

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 499 dni


Powered by phpBB © 2001, 2005 phpBB Group