Ich habe den Watchdog-IC TPS3820. Am WDI-Eingang bekommt er die Pulse
vom µC. Wenn ich den WDI kurz mit GND kurzschließe, erwarte ich
eigentlich einen Reset, aber der Watchdog macht keinen (Output bleibt
High). Kann mir jemand helfen?
Danke im voraus!
GFunk schrieb:> vom µC. Wenn ich den WDI kurz mit GND kurzschließe, erwarte ich> eigentlich einen Reset, aber der Watchdog macht keinen (Output bleibt> High). Kann mir jemand helfen?> Danke im voraus!
Warum erwartest du das ?
Wenn du MR mit GND verbindest, kriegst du einen Reset. WDI muss
periodisch getriggert werden ( also LOW-HIGH-LOW etc).
GFunk schrieb:> Aber wenn der WDI-Puls ausbleibt (sprich dauerhaft GND), dann sollte das> doch einen Reset zur Folge haben: Oder irre ich da???
Nein, aber vielleicht hast du einen TPS3824 oder 8 ?
Die haben ein Timeout von 1s bis 2.5s.
Es ist schon der TPS3820. Aber wie funktioniert das denn nun? Wenn die
Pulse kommen ist gut. Wenn die Pulse nicht mehr ankommen ist immer noch
gut? Also z.B. µC hört auf, oder Leitung unterbrochen wird nicht
erkannt? Dann könnte man sich das ja sparen.
GFunk schrieb:> Es ist schon der TPS3820. Aber wie funktioniert das denn nun? Wenn die> Pulse kommen ist gut. Wenn die Pulse nicht mehr ankommen ist immer noch> gut? Also z.B. µC hört auf, oder Leitung unterbrochen wird nicht> erkannt? Dann könnte man sich das ja sparen.
Rätselhaft, sollte normalerweise so funktionieren, wie du oben schon
geschrieben hast.
Chip KO ?
P.S.
Obwohl ich es nicht glaube, aber probiere mal mit 4K7 Pullup am RESET.
Am Reset-Ausgang habe ich einen 10k Pull-up.
Ich habe jetzt mal die Leitung zwischen WDI und dem µC aufgetrennt, und
einen Schalter dazwischen gemacht. Öffne ich den Schalter, kommen die
Pulse nicht mehr durch, aber der Watchdog macht keinen Reset. Lege ich
jetzt den WDI-Eingang auf GND macht er ständig einen Reset (ca. alle
200ms).
Also zusammenfassend folgendes Verhalten:
- WDI-Leitung mit den Pulsen mit GND kurzschließen -> kein Reset
- WDI-Leitung unterbrechen -> kein Reset
- WDI-Leitung unterbrechen und am WD auf GND legen -> Reset alle 200ms
Bin gerade komplett verwirrt!
Das Datenblatt ist Dein Freund:
"Leaving WDI unconnected disables the watchdog."
Damit der Watchdog immer wach ist, muß also noch ein Pullup oder
Pulldown ran.
So ist es tatsächlich. Das ist ja trickreich.
Aber dieses Forum ist einfach spitze. Vielen Dank!
Leider muss ich jetzt halt noch einen Pull-Up spendieren. Ich dachte
"leaving unconnected" heißt den Pin ganz offen lassen. Ich habe ja aber
den µC mit seinem Heartbeat dran, aber das reicht wohl nicht ...
Peter Dannegger schrieb:> Damit der Watchdog immer wach ist, muß also noch ein Pullup oder> Pulldown ran.
Ich dachte, das ist selbstverstandlich, das macht man doch immer.
GFunk schrieb:> Leider muss ich jetzt halt noch einen Pull-Up spendieren. Ich dachte> "leaving unconnected" heißt den Pin ganz offen lassen. Ich habe ja aber> den µC mit seinem Heartbeat dran, aber das reicht wohl nicht ...
Das reicht sehr wohl.
"leaving unconnected" heisst den Eingang offen lassen, ohne definierten
Pegel. Wenn man diesen Pin mit Impulsen von uC ansteuert ( ob mit oder
ohne Pullup ) sollte das Ganze funktionieren.
Jeder Ausgang am uC hat einen definierten Pegel (Low oder High, ist
eigentlich egal) und deswegen sollte der TPS ohne Zustandswechsel
periodisch einen RESET auslosen.
Der einzige Fall wo das Ganze nicht funktioniert, ist wenn du diesen
Pin am uC als Eingang definiert hast. Dann hast du (ohne Pullup)
den TPS disabled.
Marc Vesely schrieb:> Ich dachte, das ist selbstverstandlich, das macht man doch immer.
Beim 8051 nicht, da ist ein ständig aktiver Pullup schon eingebaut
(außer an P0).
Bei den anderen ist er nötig, falls mal ein SW-Fehler den Pin als Input
setzt oder das Init schon hängenbleibt.
Hmm, ich verstehe immer noch nicht ganz die Funktionsweise.
Mit Pull-Up funktioniert es jetzt. Trenne ich die WDI-Leitung, und habe
auf der Seite vom Watchdog einen Pull-up, also definierten High-Pegel,
dann löst er den Reset aus. Trenne ich ohne Pull-Up, also WDI floating,
dann gibt es keinen Reset.
Kann es sein, dass der µC Pulse ausgibt, wenn der Pin als Eingang
definiert ist?
GFunk schrieb:> Kann es sein, dass der µC Pulse ausgibt, wenn der Pin als Eingang> definiert ist?
Nein, er ist dann aber hochohmig.
Und "Leaving WDI unconnected disables the watchdog." heißt, wenn WDI
hochohmig ist (bei µC-Pin als Eingang), daß dann eben der Watchdog nicht
aktiv ist. Das heißt also, den µC-Pin nich als Eingang schalten, sonder
auf Ausgang lassen. Und wenn dann beispielsweise durch einen
Programmfehler der µC keine Impulse mehr ausgiobt, funktioniert auch der
Watchdog.
Marc Vesely schrieb:> Ich dachte, das ist selbstverstandlich, das macht man doch immer.Marc Vesely schrieb:> Das reicht sehr wohl.> "leaving unconnected" heisst den Eingang offen lassen, ohne definierten> Pegel. Wenn man diesen Pin mit Impulsen von uC ansteuert ( ob mit oder> ohne Pullup ) sollte das Ganze funktionieren.
Was jetzt?
Ursprünglich hätte ich auch vermutet, es reicht wenn der µC dran hängt.
GFunk schrieb:> Ursprünglich hätte ich auch vermutet, es reicht wenn der µC dran hängt.
Klar, genau das schrieb er doch auch. Er schrieb aber nicht, daß du die
Leitung zum µC auftrennen sollst. Dann floatet sie und der Wachhund ist
nicht bereit zum Bellen :-)
npn schrieb:> Kann es sein, dass der µC Pulse ausgibt, wenn der Pin als Eingang>> definiert ist?>> Nein, er ist dann aber hochohmig.
Ok, aber dann war es kein Eingang, denn er hat ja Pulse ausgegeben.
GFunk schrieb:> Wie kann man sich erklären, dass der Wachhund nicht bellt, wenn> ich die> WDI-Leitung mit den Pulsen extern hart mit GND kurzschließe?
Kann ich dir auch nicht sagen. Normalerweise müßte er. Es kommen keine
Impulse und die Leitung ist -nicht- floatend. Also müßte er auslösen.
Ok. Ich versuche es nochmal.
Aber der Fehler mit einer unterbrochenen Leitung oder schlechten
Lötstelle würde nicht erkannt (bzw. würde nicht zu einem Reset führen).