ATMega16 vergisst teilweise sein Programm - leider bisher nicht nachvollziehbar

OP #3591499
Lesenswert?

Hi da.

Habe in einigen Geräten auf einer Platine einen AtMega16A werkeln.
Dieser läuft mit 14.746MHz und ist mit 5V versorgt.
Er hat einen externen Watchdog inkl. BOD; Der interne ist zusätzlich auf 
2,7V geflagt.
Clockselect ist auf "EXTHIFXTALRES_16KCK_64MS", denke das sollte passen.
CKopt wurde aber bisher nicht geflagt, wird aber nachgeholt.
Von 14 Geräten sind nun zwei dieser Platinen zurück gekommen, die einen 
wirklich merkwürdigen Fehler aufwiesen.

Es scheint so, als ob der Hauptcode ausserhalb der ISRs nicht mehr 
abgearbeitet wird.
Die externe LED blinkt beim Warmup und normal-Lauf des Programmes wie 
sie sollte (Über Timer ISR).
Es gibt nach 2Minuten einen wechsel der Freqenz dessen - wie es auch 
sein sollte.
Daher denke ich, dass die ADCs auch laufen.

LCD Display wird aber z.B. nicht mehr angesprochen.
Bei der ersten Platine konnte man die Platine einfach mit einem neu 
Aufspielen des Programmes wieder in Gang setzen, sodass alles wieder wie 
gewollt funktionierte.
Wir haben nun die Geräte-Art drei Tage an und aus geschaltet und 
verschiedene Tests gefahren ohne dass wir den Fehler nochmals bekamen.
Die mir vorliegende Platine ist von den Spannungen aussen herum Okay.
Leider kann ich den Flash nicht diffen, da das Fusebit gesetzt ist ;)

Ich habe gelesen, dass solch komische Dinge auch passieren können wenn 
beim Startup die Spannungen an den Pins höher werden wie VCC vom µC.
Muss ich aber noch komplett checken.

Gibt es noch weitere Fehlerquellen die eine solche Blödsinnigkeit 
generieren könnte?

Bastel mal weiter,
Björn
Gast #3591553
Lesenswert?

Gibt es externe Bauteile die einen Interrupt erzeugen?
Hatte vor einigen Jahren den Fall, dass ein fehlerhaftes ASIC
beim µC Interrupts erzeugt hat, dieser ist andauernd in die ISR
gesprungen und der main - task wurde nicht mehr korrekt abgearbeitet.
#3591605
Lesenswert?

> Der interne ist zusätzlich auf 2,7V geflagt.

Was mit den 14.4MHz zuviel ist. Der A geht laut Datenblatt bei 2.7V nur 
bis 8MHz. Da kann er im Powerdown-Delirium evtl. einige Befehle falsch 
verstehen... Setz den internen BOD mal deutlich höher.

BTW: Wenn du schon sowas vermutest, ist es besser, das gleich selber zu 
reproduzieren. Mach einfach mal wackelige Stromversorgung von Hand. Bei 
mir hat schon das Gewackel des Bananensteckers in der NT-Buchse 
gereicht, das Flash nach ca. 20s zuverlässig zu ruinieren...
OP #3592848
Lesenswert?

...nicht das Ihr meint ich würde mich nicht melden ;)
Bin grade am Tests fahren und Source sichten.

Die Platine hängt grade am wobbel und wird gestresst ;)
Kabel aufspleissen und funken mit Netzteil generieren hat sie jedenfalls 
nicht geschockt.

Melde mich wenn es was neues gibt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren