Hallo,
ich suche nach einer einfachen Möglichkeit den 74hc244 zu sperren, falls
mein µC abstürtzen sollte. Da habe ich mir gedacht ich erzeuge am
µC-Ausgang ein Rechtecksignal mit ca. 2kHz, denn wenn der µC abstürtzen
würde, würde der Takt wegfallen. Jetzt muss ich aus dem Takt ein
LOW-Siganle am !OE-Eingang bekommen. Irgendwie muss das doch mit einem
Koppelkondensator funktionieren, jedoch klappt es irgendwie nicht
(vielleicht hab ich nur nen Denkfehler).
So habe ich es bereits probiert (µC gibt dabei abwechselnd 0 und Z aus):
Vcc Vcc
| |
- -
| | 4,7k | | 22k
| | | |
|----| - - |----|
| | Z | 220n | | 74 |
| µC |------+---||----+---o| HC |
| | 0 | | 244|
|----| --- |----|
100n ---
|
|
---
Hat wer ne Idee wie ich das Problem lösen kann, möglichst ohne ein
Monoflop aufzubauen.
MFG
Michael
Mit dem Takt könntest Du ein Monoflop wie z.B. ein 74hc123 oder 74hc221
ansteuern, dessen Ausgang Du dann zum "Sperren" verwendest.
Mir ist klar, daß das Deinem Wunsch widerspricht, aber mit Deiner
Kondensatorlösung bist Du auch nicht wirklich besser dran.
Gibt es nicht einen internen oder externen Watchdog? Der setzt den
Prozessor zurück, falls er Quatsch macht. Und der nOE Pin wird mit einem
PullUp versehen. Solange der Prozessor alsi nicht vernünftig läuft, sind
die Ausgänge hochohmig.
Watchdog benutzen und als ersten Befehl im Resetvektor OE deaktivieren.
Ansonsten Counter mit Clear und Overflow. Overflow (oder Qn) an FlipFlop
und FlipFlop zu OE. Der Counter Muß dann immer einen Reset bekommen
bevor er überläuft. Reset von FlipFlop und Counter, zum rückstellen des
Fehlerspeichers, verbinden.
Schon, aber ich hab nen Debugger dran und damit geht glaub ich der
Watchdog nicht (PIC18).
Der µC steuert über den hc244 drei Halbbrücken (Motor) an. Letztens ist
mir der Debugger jedoch wärend des Betriebs plötzlich ausgestiegen, was
mir die Endstufe dann zerschossen hat da der Controller einfach
stehngeblieben ist. Würde sich der hc244 selbst sperren, würde das nicht
passieren.
Werd vermutlich also nicht um das Monoflop drumherumkommen...
Mallo Michael,
machs doch noch einfacher:
VCC
|
R2
|
Pc --- R1 ---+---- HC244
|
C1
|
GND
Gib dann einfach am PC dynamisch ein Signal "0" / "Z" aus. Damit wird
C1 imemr wieder entladen. Fällt die Funktion wech lädt sich der
Konsendator und der HC schaltet. R und C denke ich kannst Du selbst
dimensionieren. Das mit dem 220n im Schaltpfad ins nicht das Grüne vom
Ei denn da hast du Limitierungen an den Ausgangsströmen des Treibers und
das gibt unkalkulierbare Schmutzeffekte.
Grüße
Netter Vorschlag. Nur klappts so nicht.
Was passiert, wenn der uC "Mist baut", "sich verläuft" oder "aussteigt"
und der Ausgang ist grad auf Low?
Keine Schutzfunktion.
Deshalb benutze ich bei der Kombination normaler µC (also nicht
automotive) und Motor immer nen CPLD dazwischen. Dann kann bei einem
Absturz oder nem Programmierfehler nicht einfach mal nen Endschalter
übersehen werden). Da könnte man jetzt auch noch die Counter, FlipFlop
und Logiggater zwischen µC und Motortreiber machen.
>ich suche nach einer einfachen Möglichkeit den 74hc244 zu sperren, falls>mein µC abstürtzen sollte.
Das ist ein Bastlerforum.
Da macht es nichts, wenn ein uC abstürzt oder >abstürtzen sollte .
Die diskutierten Lösungsansätze sind zwecklos und ebenfalls einfaches
Bastlerniveau.
Michael schrieb:> Der µC steuert über den hc244 drei Halbbrücken (Motor) an. Letztens ist> mir der Debugger jedoch wärend des Betriebs plötzlich ausgestiegen, was
Dann solltest Du eher die Ansteuerung der Motoren überarbeiten.
Gibts beim AVR auch: Wird das AVRisp mkii vom USB getrennt, zieht es den
Controller auf Reset.
Du hast also zwei Fehlerfälle:
1. Der Controller bekommt externes Reset => alle Pins werden - zumindest
beim AVR - hochohmig und tendieren gegen Vcc. Wie es beim PIC ist, musst
Du halt sehen.
2. Der Controller bleibt hängen => alle Pins bleiben stehen =>
Watchdog-Reset entsprechend kurz einstellen => Reset => alle Pins werden
hochohmig und neu initialisiert
Hat der Controller keinen internen Watchdog, musst Du einen externen
Watchdog für den Controller dranklöppeln.
Jetzt hast Du einen definierten Fehlerzustand => Pins hochohmig. Danach
baust Du Deine Ansteuerung auf. Also z.B. mit Pull-Down-Widerständen,
die im Reset-Fall die Halbbrücken stilllegen, indem sie den Pegel
runterziehen.
Das OE des 244 bringt Dir gar nichts. Dadurch werden die Ausgänge
hochohmig und sind für den Motortreiber nicht mehr definiert.
Schlimmstenfalls beginnt der dann irgendwie zu schwingen. Also musst Du
die Ausgänge mit Pull-Downs auf low zwingen. Dann kannst Du das aber
auch gleich definiert am µC machen.