Hallo, ich möchte eine redundante Steuerung aus zwei Mikroprozessoren aufbauen - die eine besteht aus einem Atmega16 und enthält nur rudimentäre Steuerungsmöglichkeiten, die andere besteht aus einem MSP430 und soll auch regeln können und somit automatisch steuern. Das Ganze soll so funktionieren: In einem 19"-Rack befinden sich die beiden uCs auf Europakarten, von denen aber nur eine immer aktiv sein soll. Welche von beiden aktiv ist, möchte ich per Schalter festlegen können (Auto/Manuell). So kann ich z.B. eine Karte erweitern und dran rumbasteln, während die andere Karte die Steuerung übernimmt. Allerdings sollte es auch möglich sein, dass wenn ich eine Karte rausziehe, sofort die andere Karte übernimmt, unabhängig von der Schalterstellung... So jetzt meine Fragen dazu: Wie schalte ich eine Steuerung auf "inaktiv"? Einfach den Reset aktivieren, bis ich sie verwenden möchte? Oder einen Pin verwenden, der von der Software ausgewertet wird und je nach Pegel schaltet sich die Steuerung gleich aktiv oder schlafen bis sich der Pegel ändert? Was ist besser? Macht ein Dauer-Reset dem uC was aus? Und brauche ich unbedingt einen zweiten Pin - einer für den Auto/Manuell Schalter und einen zur Erkennung ob beide Karten gesteckt sind oder nicht - oder kann ich beides über einen Pin elegant erfassen?
Wenn Du Dir ein Protokoll bastelst, welches über einen Bi-Direktionalen Pin im wechselseitigen Halbduplex mit dem jeweils anderen Controller kommunizieren kann, dann reicht Dir ein Pin. Selbst wenn Du daran noch einen Schalter (über einen R nach Masse) anschließt, kannst Du mittels Pegelerkennung auch diese Funktion auf dem einen Pin unterbringen (also 1 Pin pro Controller, zusammengeschaltet.
Das mit dem Protokoll hört sich schon wieder ziemlich aufwändig an ;) Angenommen, ich habe nur einen Pin, der entweder HIGH-Pegel oder LOW-Pegel führt und schliesse an diesen Pin den Reset des einen µCs an und über einen Inverter den Reset des anderen µCs an - dann ist prinzipiell immer einer der beiden Controller aktiv. Nur macht es einem µC etwas aus, dauernd im Reset-Zustand zu verweilen? Kann er da Schaden davontragen? Eigentlich denke ich nicht, aber ich will auf Nummer Sicher gehen...
Nö, Schaden gibt´s da nicht. Du mußt nur davon ausgehen, daß der Prozi nach dem Loslassen der Resetleitung eine Weile braucht, bis er a) anschwingt und b) die Initialisierung der Register und Variablen durch ist. Läuft er hingegen permanent und wartet nur auf den entsprechenden Pegel/Befehl, ist er sofort zur Stelle, wenn er gebraucht wird.
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.