Hallo, ich habe eine eigene Haussteuerung als Nebenprojekt gebastelt und programmiert dessen uC sich manchmal abstürzt. Und das sehr sporadisch ab 12 Stunden oder so. Und möchte herausfinden ob das an den Störungen der Spannungsspitzen liegt. Ich möchte zuerst das ausschließen bevor ich mich auf der Fehlersuche in der Programmierung machen will. Eigentlich wollt ich mir einen digitalen Oszilloskop dazulegen und kenne mich aber mit damit nicht aus. Bislang hatte ich mir so eins ins Visier genommen: http://www.ebay.de/itm/Digital-Oszilloskop-Rigol-DS1102E-100-MHz-2-Kanal-500-MSa-s-512-kpts-8-Bit-Digi-/400743251345?hash=item5d4e28bd91:g:cPkAAOxymmJTkGw- Im Moment habe ich nur einen Analogen. Ich kann aber nicht 12 Stunden vor einem DSO sitzen und beobachten ob kurz vor dem Absturz eine Störung war. Kann man ihn so einstellen dass er es automatisch nur diese Stelle aufnimmt? Oder besitzt ein DSO überhaupt einen Ringspeicher oder wie lange geht die Aufzeichnung überhaupt? Es soll kurz nach dem Absturz die Aufzeichnung im Ringspeicher stoppen, indem DSO vom uC angesprochen wird bzw wenn DSO diese intelligente Funktion hat? An der Endstelle könnte ich dann sehen ob eine Störung sichtbar ist. Ich weiss aber nicht ob das zur Grundausstattung der DSOs gehört.
Hallo booster, booster schrieb: > indem DSO vom uC angesprochen wird dieses Oszilloskop besitzt, wie es für Oszilloskope typisch ist, einen Trigger-Eingang (bei dem Modell der Anschluss unten rechts auf der Front-Seite). Du könntest einen I/O-Pin deiner zu untersuchenden Platine so ansteuern, dass der einmalig einen "kurzen" Puls ausgibt, wenn der Controller neugestartet hat. Die Aufzeichnung am Oszilloskop kannst du auf "Single" einstellen. Das Oszilloskop wird dann genau den Moment des Neustarts inkl. einer gewissen Vorlauf- und Nachlauf-Zeit aufzeichnen. booster schrieb: > bevor ich mich auf der > Fehlersuche in der Programmierung machen will Besitzt dein MCU ein Register, welches den Grund des letzten Neustarts beinhaltet? Z.B. "Brown-Out", o.ä.? Damit würde ich vermutlich anfangen. Ferner wäre die Frage, ob du z.B. die Versorgungsspannungen überwachst? Viele Grüße, Alex
> Und das sehr sporadisch > ab 12 Stunden oder so. Wenn deine Schaltung nach dem einschalten immer erst einige Stunden laeuft und dann abstuerzt dann musst du nicht viel messen. Du weisst dann bereits das es an der Software liegt. > Kann man ihn so einstellen dass er es automatisch nur > diese Stelle aufnimmt? Ein digitales Oszi hat genauso ein Trigger wie ein analoges. Teurere haben eventuell auch ein paar mehr Triggermoeglichkeiten. Kann deine Schaltung denn einen Trigger bereitstellen wenn sie abstuerzt? > Oder besitzt ein DSO überhaupt einen Ringspeicher Davon kannst du ausgehen. > oder wie lange geht die Aufzeichnung überhaupt? Haengt von der Abtastrate und der Groesse des Speichers ab. Sollte daher im Handbuch stehen. Manche DSO bieten (gegen Aufpreis) auch die Moeglichkeit nur dann etwas zu speichern wenn sich die Signale aendern. (segmented Memory) > indem DSO vom uC angesprochen wird > bzw wenn DSO diese intelligente Funktion hat? Bessere DSOs bieten die Moeglichkeit auch auf bestimmte Bytes oder Bytefolgen in seriellen Uebertragungen zu Triggern. Manchmal auch nur optional und gegen Aufpreis. Auch da liest man besser das Handbuch vor dem kauf. Ich wuerde heutzutage kein Oszi mehr kaufen das dieses Funktion nicht bietet weil es einfach zu hilfreich ist. Olaf
Für 12 Euro mehr gibt es die moderne Version von dem eb*y Angebot: http://www.batronix.com/versand/oszilloskope/Rigol-DS1054Z.html Eine kleine Nachbearbeitung und Du bist auf aktuellem Bastler Standart.
booster schrieb: > Und möchte herausfinden ob das an den Störungen der Spannungsspitzen > liegt. Ich möchte zuerst das ausschließen bevor ich mich auf der > Fehlersuche in der Programmierung machen will. Um eine schlechte Spannungsversorgung auszuschließen würde ich den Controller mal 1-2 Tage aus einer getrennten, autarken Spannungsquelle versorgen, z.B. dicker Akku oder Autobatterie (ok, ist auch ein dicker Akku). Wenn das Verhalten sich dann nicht ändert, ist es die Software. Meistens zumindest: Eigene Platine? Sind Relais (oder andere geschaltete induktive Bauelemente) drauf? Diese könnten ebenfalls beim Schalten die Stromversorgung des Controllers mit Störungen versehen. Oder auch nur eine hochohmige Resetleitung triggern... Obwohl ein digitales Scope generell überaus nützlich ist, glaube ich, dass man diesen Fall auch ohne Scope lösen kann... Gruß, Thomas
Thomas T. schrieb: > dass man diesen Fall auch ohne Scope lösen kann... stimmt auch wieder. Es gibt auch spezielle IC zu Spannungsüberwachung z.B.: http://www.ti.com/lit/ds/symlink/lm3704.pdf Ein Flip Flop und eine LED nachschalten und man hat auch einen Indikator für den Spannungseinbruch. Oder einfach einen Komparator mit FF...
> > dieses Oszilloskop besitzt, wie es für Oszilloskope typisch ist, einen > Trigger-Eingang (bei dem Modell der Anschluss unten rechts auf der > Front-Seite). Du könntest einen I/O-Pin deiner zu untersuchenden Platine > so ansteuern, dass der einmalig einen "kurzen" Puls ausgibt, wenn der > Controller neugestartet hat. Die Aufzeichnung am Oszilloskop kannst du > auf "Single" einstellen. Das Oszilloskop wird dann genau den Moment des > Neustarts inkl. einer gewissen Vorlauf- und Nachlauf-Zeit aufzeichnen. > > booster schrieb: >> bevor ich mich auf der >> Fehlersuche in der Programmierung machen will > > Besitzt dein MCU ein Register, welches den Grund des letzten Neustarts > beinhaltet? Z.B. "Brown-Out", o.ä.? Damit würde ich vermutlich anfangen. > Ferner wäre die Frage, ob du z.B. die Versorgungsspannungen überwachst? > > Viele Grüße, > Alex So ein Single-Funktion wäre genau das was ich suche, hat mein Analog Oszi Hameg 303-4 scheinbar nicht. Brown-Out da muss ich mal nachlesen wie das anzuwenden ist. uC ist ein AtMega2560 (Arduino) > Eine kleine Nachbearbeitung und Du bist auf aktuellem Bastler Standart. Nachbearbeitung = auf 100MHz hacken ? Und er besitzt mehr Funktionen ausser zwei weitere Kanäle ? Sorry, ich kann auch nochmal nachlesen. Ich sehe nur gerade dass DS1052E + Hack für 200 euro zu haben ist, also genau die Hälfte vom Preis. > Meistens zumindest: Eigene Platine? Sind Relais (oder andere geschaltete > induktive Bauelemente) drauf? Diese könnten ebenfalls beim Schalten die > Stromversorgung des Controllers mit Störungen versehen. Oder auch nur > eine hochohmige Resetleitung triggern... Es ist ein 16Ch Relaismodul an Arduino mit Ethernet-Shield drauf angeschlossen. Den Fehler zu finden ist da leider schwieriger.
booster schrieb: > Brown-Out da muss ich mal nachlesen wie das anzuwenden ist. > uC ist ein AtMega2560 (Arduino) Da das MCUSR vom Bootloader gelöscht wird, kannst du die Resetquelle bei keinem AVR Arduino auslesen. ohne Gewähr
Olaf schrieb: > Ein digitales Oszi hat genauso ein Trigger wie ein analoges. booster schrieb: > So ein Single-Funktion wäre genau das was ich suche, hat mein Analog > Oszi Hameg 303-4 scheinbar nicht. Bei einem analogen Scope ist das Signal vor allem direkt nach dem anzeigen auch schon wieder futsch .... Und wie stellst Du den Zusammenhang zwischen Absturz und Unregelmäßigkeiten in der Spannungsversorgung her? Wenn irgendwas auf dem Scope zu sehen ist, und der Controller (vielleicht zu einem anderen Zeitpunkt) abgestürzt ist, kann es nicht die Software sein - richtig!? :-) Wenn es an der Spannungsversorgung liegt, dann ist ein Absturz nach 2s genau so wahrscheinlich, wie nach 12h ... Gruß Jobst
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.