Hardware-Verriegelung von 4 Ausgängen gegeneinander

Gast #6825728
Lesenswert?

Hallo miteinander,

ich arbeite gerade an einem Projekt für einen Battery-Balancer und kann 
dabei über Ausgänge meines µC wählen, welche der 4 Batterien entladen 
werden soll. Solange ich jeweils einen Ausgang auf High schalte, 
funktioniert alles problemlos, und so ist es prinzipiell auch 
programmiert.
In einem potentiellen Fehlerfall könnte es jedoch dazu kommen, dass der 
µC 2 oder mehrere Ausgänge gleichzeitig schaltet, wodurch es zu einem 
Kurzschluss der Batterien kommen würde. Dies möchte ich vermeiden, und 
zwar durch eine Verriegelung der Ausgänge gegeneinander, und zwar 
hardwareseitig (um softwarebugs generell zu vermeiden).

Habt ihr dafür eine Idee? Gibt es für sowas einen fertigen IC? Im 
Prinzip wäre es ja eine 4fach-XOR-Schaltung oder?

Danke und viele Grüße,
Thomas
Gast #6825789
Lesenswert?

Man nehme Relais mit Wechsler, oder 2. Kontaktsatz und deren Öffner.
Und dann wird über die Öffner gegenseitig verriegelt.

Sollte ein Relais mal hängen, so ist die Sicherheit gegeben, da der 
Öffner offen ist.
Gast #6825806
Lesenswert?

Von welcher Größenordung der Batterien reden wir überhaupt?
Von 100 mAH, oder 65 Ah?

Eine mit mächtig Ah lässt nicht mit sich spaßen bei Kurzschluss. Hier 
würde ich extrem sicher gehen wollen.
Gast #6825813
Lesenswert?

Thomas W. schrieb:
> Habt ihr dafür eine Idee? Gibt es für sowas einen fertigen IC? Im
> Prinzip wäre es ja eine 4fach-XOR-Schaltung oder?

Mit rein kombinatorischer Logik kommst du nicht weiter. Du solltest auch 
über Zeiten nachdenken. Um einen Kurzschluss zwischen zwei Batterien zu 
vermeiden, brauchst du eine Schaltfunktion mit break-before-make, d.h. 
du darfst den schließenden Kontakt erst mit Verzögerung freigeben.
Gast #6825831
Lesenswert?

Falls du das Programm nicht anpassen kannst (erst alle Ausgänge aus, 
kurz warten und dann wieder den richtigen einschalten, Watchdog nicht 
vergessen zu nutzen), sollte ein 74xx154 helfen, denn der ist ein 
4-Bit-Binärdekoder (4 zu 16) und würde die 4 Ausgangssignale des µCs auf 
4 korrekte und 12 "ungültige" Ausgänge kodieren.
Gast #6825835
Lesenswert?

Hallo an alle,

die Lösung mit 74xx138 hat mir gut gefallen, leider ist dieser am 
Ausgang invertiert. Deswegen hab ich jetzt ein Auge auf den 74xx238 
geworfen. Dieser ist am Ausgang nicht invertiert. Und wenn ich das 
Datenblatt richtig interpretiere, dann steht da:

The 74HC238; 74HCT238 decodes three binary weighted address inputs (A0, 
A1 and A2) to eight
mutually exclusive outputs (Y0 to Y7)

Demnach sind die (lediglich) 4 Outputs, die ich verwenden möchte, 
gegeneinander verriegelt, richtig?

Die anderen 4 Outputs würde ich offen lassen, ist das korrekt?

Danke schonmal für die guten Ideen =)

Grüßla,
Thomas
#6825844
Lesenswert?

Thomas W. schrieb:
> Demnach sind die (lediglich) 4 Outputs, die ich verwenden möchte,
> gegeneinander verriegelt, richtig?

Ja.

> Die anderen 4 Outputs würde ich offen lassen, ist das korrekt?

Ja.
Aber den dritten, nicht benutzten Eingang musst du noch richtig 
beschalten: z.B. A2=GND, wenn du die Ausgänge Y0..Y.3 benutzt.
Und CS1...3 müssen natürlich auch noch richtig beschaltet werden.
Gast #6825850
Lesenswert?

H. H. schrieb:
> Nein, es gibt keine Totzeit.

Ich gehe davon aus, dass da eine kleine Totzeit drin ist. Mutually 
exlusive würde ich als "gegenseitig ausschließend" interpretieren. 
Demnach sollten nie 2 Ausgänge gleichzeitig an sein?? Hat jemand andere 
Erfahrungswerte? Ich kann nur aus dem Datenblatt sprachlich 
interpretieren...
Gast #6825856
Lesenswert?

Thomas W. schrieb:
> The 74HC238; 74HCT238 decodes three binary weighted address inputs (A0,
> A1 and A2) to eight
> mutually exclusive outputs (Y0 to Y7)
>
> Demnach sind die (lediglich) 4 Outputs, die ich verwenden möchte,
> gegeneinander verriegelt, richtig?
>
> Die anderen 4 Outputs würde ich offen lassen, ist das korrekt?

Wenn du zwischen den genutzten Ausgängen jeweils kurzzeitig einen 
ungenutzten Ausgang anwählst, kannst du damit ein sicheres 
'Break-before-Make' implementieren.
#6825879
Lesenswert?

Thomas W. schrieb:
> Aber das kann ich ja im Software-Fehlerfall nicht garantieren leider.

Ja, das ist ein Problem. Wenn du auch das Timing per Hardware sichern 
willst, brauchst du noch etwas mehr.
Z.B. mit einen unsymetrischem RC-Glied: Low->High wird länger verzögert 
als High-Low.
1
 Yx >--+---R---+---> je nach weiterer Schaltung kann
2
       |       |     hier noch ein Gatter mit 
3
       +--|<|--+     Schmitt-Trigger-Eingang nötig sein.
4
               |
5
               C
6
               |
7
              GND
Wenn man es ganz "sauber" machen will, müsste man noch den Entladestrom 
über die Diode per Widerstand begrenzen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren