Forum: Analoge Elektronik und Schaltungstechnik Hardware-Verriegelung von 4 Ausgängen gegeneinander


von Thomas W. (Gast)


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

: Verschoben durch Moderator
von EAF (Gast)


Lesenswert?

Vielleicht löst la ein 74xx138, oder einer seiner nahen Verwandten, dein 
Problem?

von Prokrastinator (Gast)


Lesenswert?

Im einfachsen Fall eine Transistor Dioden Logig, bei der jeder aktive 
Ausgang die Ansteuerung der anderen Transistoren blockiert.
Bei gleichzeitigem Schalten wird eben einer gewinnen.

von Andreas B. (bitverdreher)


Lesenswert?

Z.B. ein halber 74LS139 und Varianten

von Matthias X. (current_user)


Lesenswert?

Ich würde an soetwas wie ein LED Lauflicht denken. Dort leuchtet auch 
nur eine Led. Also z.B. CD4017 oder M54HC4051.

von Helge (Gast)


Lesenswert?

Jedes schaltsignal invertieren. Aus invertierten und nichtinvertierten 
Signalen jeweils auf ein 4-fach NAND. Oder NOR, geht auch.

von Bauform B. (bauformb)


Lesenswert?

Unter "Hardware-Verriegelung" stelle ich mir eher Relais mit 
Umschaltkontakten vor. Für 4 Akkus reichen 2 Relais mit je 2xUM. Evt. 
können die auch direkt die Last schalten, das würde 4 fette FETs sparen.

von Lothar J. (black-bird)


Lesenswert?

Hier will ich mal den Begriff "break bevor make" einwerfen. Der nächste 
Ausgang sollte erst eingeschaltet werden, wenn der alte schon 
ausgeschaltet ist. Eine Überschneidung von 1ms und auch weniger kann 
schon verheerende Folgen haben.

Blackbird

von Firlefanz (Gast)


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.

von Firlefanz (Gast)


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.

von Wolfgang (Gast)


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.

von Udo Neist (Gast)


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.

von Thomas W. (Gast)


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

von H. H. (Gast)


Lesenswert?

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

Nein, es gibt keine Totzeit.

von Dietrich L. (dietrichl)


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.

von Thomas W. (Gast)


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...

von Thomas W. (Gast)


Lesenswert?

Dietrich L. schrieb:
> 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.

Genau, das habe ich schon so beachtet. Danke!

von Max (Gast)


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.

von Dietrich L. (dietrichl)


Lesenswert?

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

Da hast du schon recht. Aber wie seine Schaltung mit einem Kurzschluss 
im µs-Bereich zurecht kommt, wissen wir nicht...

von Thomas W. (Gast)


Lesenswert?

Max schrieb:
> Wenn du zwischen den genutzten Ausgängen jeweils kurzzeitig einen
> ungenutzten Ausgang anwählst, kannst du damit ein sicheres
> 'Break-before-Make' implementieren.

Aber das kann ich ja im Software-Fehlerfall nicht garantieren leider.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

CD4052 enthält 2 Stück 4 zu 1 Analogschalter mit Break before Make 
Funktion.

von H. H. (Gast)


Lesenswert?

Matthias S. schrieb:
> CD4052 enthält 2 Stück 4 zu 1 Analogschalter mit Break before Make
> Funktion.

In der Tat!


Man lernt nie aus...

von (prx) A. K. (prx)


Lesenswert?

Alternative mit erzwungener signifikanter Totzeit, wenn es akzeptabel 
ist, die Ausgänge sequentiell zu schalten, statt wahlfrei: CMOS 4017 / 
74HC4017 und die Ausgänge 1,3,5,7 verwenden.

: Bearbeitet durch User
von Dietrich L. (dietrichl)


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.

von Dietrich L. (dietrichl)


Lesenswert?

Matthias S. schrieb:
> CD4052 enthält 2 Stück 4 zu 1 Analogschalter mit Break before Make
> Funktion.

Aber ob das Timing zur Schaltung von Thomas W. passt?

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
Noch kein Account? Hier anmelden.