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?
@ 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.
> 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.
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.
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.
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.
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.
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.
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?
;-)
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.
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 ?
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.