Forum: Mikrocontroller und Digitale Elektronik Programmiertechniken für Langzeitanwendung mit uC


von Christian J. (Gast)


Lesenswert?

Hallo,

aktuell habe ich so ein Projektchen was Wochen laufen soll ohne dass ich 
da dran muss. Und zwar in einer Umgebung, wo Temperaturschwankungen zu 
erwarten sind und auch EMV eine Rolle spielen dürfte, zb in Form von 
Blitzen bei Gewitter. Metallgehäuse ist nicht vorgesehen, bisher nur 
Plastik.

Befeuert wird das Ganze mit einem Attiny84, den ich schon gut ausgereizt 
habe, was Stromsparen angeht. Allerdings frage ich mich, was ich noch 
alles machen muss.

1. Muss man damit rechnen, dass sich irgendein Setup Bit der 
Portregister mal dreht? Denn das Setup wird bisher nur einmal 
durchlaufen und dann nie wieder. Das sind FlipFlops, keine RAM Zellen.

2. Watchdog ist bereits aktiviert auf 8s. Hängt er irgendwo resettet er 
sich auch. Nur ein einziges Mal hing er dauerhaft fest, warum weiss ich 
nicht und im Nachhinein nicht mehr feststellbar. (Beim Attiny ist der 
WDT ja abstellbar, wenn man ihn nicht fused.)

3. Freier Flash ist auf "NOP" gestellt, so dass der Programmcounter 
notfalls bis zum Ende durchrennt und dann bei 0x0000 (Reset) wieder 
anfängt, wenn er mal entgleist und "irgendwohin" springt.

Die restliche Frage wäre: Sollte ich einen täglichen Hardware Reset 
durch den WDT mit einplanen? Und wäre es sinnvoll zb die Register bei 
jedem Durchlauf der Hauptschleife in der er ja endlos rumkurvt neu zu 
setzen?

Testweise habe ich mal ein Piezo-Feuerzeug (diese Lidl Dinger für 
Kerzen) neben dem Attiny gezündet mit der Folge, dass er abstürzt und 
resettet. Das Phänomen habe ich auch bei meinem DVBT Fernseher, dass da 
ein Flacker zu sehen ist, auch noch aus 4m Entfernung DVBT Antenne zu 
Couch.  Auch ein Handyanruf bringt ihn durcheianer, die Interruptleitung 
zu einem Sensor "flackert" wie irre und löst ständig INts aus, wenn das 
Handy sich anmeldet.


Hat da jemand Erfahrungen wie stabil solche Zwerge laufen?

von Falk B. (falk)


Lesenswert?

@ Christian J. (hobel)

>1. Muss man damit rechnen, dass sich irgendein Setup Bit der
>Portregister mal dreht?

Wenn du nicht gerade im Weltraum bist, dann eher nicht.

>2. Watchdog ist bereits aktiviert auf 8s. Hängt er irgendwo resettet er
>sich auch.

Der übliche Rettungsanker.

>3. Freier Flash ist auf "NOP" gestellt, so dass der Programmcounter
>notfalls bis zum Ende durchrennt und dann bei 0x0000 (Reset) wieder
>anfängt, wenn er mal entgleist und "irgendwohin" springt.

Kann man machen.

>Die restliche Frage wäre: Sollte ich einen täglichen Hardware Reset
>durch den WDT mit einplanen? Und wäre es sinnvoll zb die Register bei
>jedem Durchlauf der Hauptschleife in der er ja endlos rumkurvt neu zu
>setzen?

Eher nicht.

>Hat da jemand Erfahrungen wie stabil solche Zwerge laufen?

Das hängt auch von der Aussenbeschaltung ab. Saubere, stabile 
Stromversorgung. EMV-feste Ein- und Ausgänge etc.

von SRAM (Gast)


Lesenswert?

Christian J. schrieb:
> Das sind FlipFlops, keine RAM Zellen.
SRAM zellen sind auch Flipflops.

von Stefan F. (Gast)


Lesenswert?

> 1. Muss man damit rechnen, dass sich irgendein Setup
> Bit der Portregister mal dreht?

Nein, das wäre nur im Weltraum zu befürchten.

> Sollte ich einen täglichen Hardware Reset
> durch den WDT mit einplanen?

Würde ich nicht tun. Wenn der µC falsch funktioniert, hat er ein 
ernsteres Problem, bei dem ein regelmäßiger Reset keine Lösung wäre. Wir 
sind ja nicht bei Windows 95 :-)

> Und wäre es sinnvoll zb die Register bei
> jedem Durchlauf der Hauptschleife in der er
> ja endlos rumkurvt neu zu setzen?

Nein. Wenn die Register nicht richtig funktionieren, ist der Chip 
defekt, dann nützen solche Aktionen auch nichts.

> Testweise habe ich mal ein Piezo-Feuerzeug (diese Lidl Dinger
> für Kerzen) neben dem Attiny gezündet mit der Folge, dass er
> abstürzt und resettet.

Dann hast du vermutlich eine empfindliche Regelung in der 
Stromversorgung, oder Abblockkondensatoren vergessen oder den Reset-Pin 
nicht EMV sicher beschaltet (10k Widerstand und 100nF Kondensator).

> Auch ein Handyanruf bringt ihn durcheianer

Deutet auf einen groben Schaltungsfehler hin. So empfindlich ist 
normalerweise kein Mikrocontroller.

Zeige mal den Schaltplan und mach ein Foto von dem Aufbau. Insbesondere 
interessiere ich mich dafür, wo und welche Abblockkondensatoren, 
Pull-Up/Pull-Down Widerstände und R/C Glieder eingesetzt hast. Vor allem 
an allen Leitungen die länger als 3cm sind.

von Uwe K. (ukhl)


Lesenswert?

Christian J. schrieb:

> Die restliche Frage wäre: Sollte ich einen täglichen Hardware Reset
> durch den WDT mit einplanen?

Na? Auch mit Windows aufgewachsen?

Wenn es gut programmiert ist, dass ist es auch stabil.

von Christian J. (Gast)


Angehängte Dateien:

Lesenswert?

Stefan Us schrieb:
> Zeige mal den Schaltplan und mach ein Foto von dem Aufbau. Insbesondere
> interessiere ich mich dafür, wo und welche Abblockkondensatoren,
> Pull-Up/Pull-Down Widerstände und R/C Glieder eingesetzt hast. Vor allem
> an allen Leitungen die länger als 3cm sind.

Hallo,

Schaltplan gibt es nicht, da aus dem Kopf gebaut. 3 x Eneloop direkt an 
einem winzigen DC/D Wandler:

http://www.ebay.de/itm/311323628389?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT

100nF und 100uF parallel vor uC. Reset über 10k an Vcc. Sensor läuft 
direkt über die AA Zellen an ca 3.3-4.5V Das war es. Altertaiv könnte 
ich das Relais noch über DC/DC betreiben, den uC an 3.3V hängen und das 
relais gegen Masse ziehen lassen.

>>Reset-Pin nicht EMV sicher beschaltet (10k Widerstand und 100nF Kondensator).

Gute Idee, der 100nf fehlt noch.

von Christian J. (Gast)


Lesenswert?

Uwe K. schrieb:
> Na? Auch mit Windows aufgewachsen?

Jaa...... glaube daher kommt der Aberglaube "Mach mal nen Reset...." und 
dass nach jeder Softwareinstallation neu gebootet werden muss.

PS: Die Daten-Leitungen sind natürlich extrem hochohmig. In der Firma 
würde ich das nicht durchkriegen, entweder es sind Innenlagen oder aber 
sie kriegen alle PU oder PD bzw. einen Serienwiderstand drin.

Ok, muss los... Freibad.... bei dem Wetter ne Sünde vor der Kiste zu 
hängen.

von Falk B. (falk)


Lesenswert?

@ Christian J. (hobel)

>Schaltplan gibt es nicht, da aus dem Kopf gebaut.

Aha. Solche Experten braucht das Land.

von visitor (Gast)


Lesenswert?

Registerbits drehen lässt sich einfach durch Surge bzw. Burst, dies sind 
irdische Dinge. Bis in den Weltraum muss man dafür nicht! Daher wäre in 
zyklischer Registercheck evtl. sinnvoll, hängt aber vom geplanten 
Einsatz ab.

von Stefan1234 (Gast)


Lesenswert?

visitor schrieb:
> Registerbits drehen lässt sich einfach durch Surge bzw. Burst, dies sind
> irdische Dinge.

Kann ich voll bestätigen! Auch andere Hersteller empfehlen, Portbits 
(Direction und Value) bei kritischen Sachen zyklisch zu setzen, da die 
FlipFlops näher an den Störungen von draußen sitzen.

von m.n. (Gast)


Lesenswert?

Stefan1234 schrieb:
> Kann ich voll bestätigen! Auch andere Hersteller empfehlen, Portbits
> (Direction und Value) bei kritischen Sachen zyklisch zu setzen, da die
> FlipFlops näher an den Störungen von draußen sitzen.

Dazu noch das Flash immer wieder neu programmieren, den Stack am besten 
ins ROM legen und mit Prüfsumme versehen.
Nicht zu vergessen: Versicherung gegen schlechte Programmierung 
abschließen!

Das Bild vom Aufbau zeigt eine sorfältig konzipierte Allbereichsantenne. 
Oder ist die Schaltung ein Gewitterdetektor?
;-)

von Stefan F. (Gast)


Lesenswert?

An dem Mikrocontroller sollte ein 100nF Kondensator direkt von VCC nach 
GND gehen. Ich kann an dem Foto nicht erkennen, ob das wirklich der Fall 
ist. Direkt am Chip ist wirklich wichtig.

Am Reset Pin ist keine Leitung, nur der Pull-Up. Ich glaube, so ist es 
unwarscheinlich, dass du dir da ungewollt was einfängst. Wenn du den Pin 
nicht brauchst, kannst du ihn idelaerweise direkt mit VCC verbinden.

Ich würde mit einem Speicher-Oszilloskop prüfen, ob der Schaltregler 
Aussetzer macht, wenn Funkstörungen in der Nähe sind.

Zu den softwaremäßigen Sicherheitsmaßnahmen: Ich denke der größe 
Schwachpunkt bezüglich umkippender Bits ist der Flash Speicher. Die 
haben ohnehin nicht gerade den Ruf, was für die Ewigkeit zu sein. 
Dagegen hilft ein maskenprogrammiertes ROM - aber ich schätze, das kommt 
in diesem Fall nicht in Frage.

von dingsbums (Gast)


Lesenswert?

Also frei verdrahtet kann schon zu Problemen führen.
Schau Dir aml an was bei Autos so gemacht wird um die unsaubere 
Spannungsversorgung in den Griff zu bekommen.
Wenn Du dann noch die Eingänge passend enstört hast kannst Du Dich an 
die genannten Programmierlösungen wagen.
Paranoide legen z.B. mehrere Programme im Flash ab und haben noch mehr 
als einen Bootloader der die dann anspringt.
Register regelmäßig zu checken ist acuh nett.
Absolut sicher wird's aber nie, außer Du nimmst MilSpec und SPACEPROOF 
Chips die Du mit Harz in enem HF-Gehäuse absäufst un I/O nur via 
Optokoppler machst.
Also was soll's werden die ultimative Antialienkanone die auch nich 
mitten in der Sonne feuern kann oder einfach nur ein Bastelprojekt das 
den Hühnerstall auf's gackern überwacht ?

von Purzel H. (hacky)


Lesenswert?

Ich wuerd mal eine Leiterplatte mit GND Plane und Fokus auf EMV 
designen. Dabei die Pins richtig beschalten, Speisung blocken, das 
Uebliche eben. Und dann laeuft das Ganze auch zuverlaessig.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.