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
Vielleicht löst la ein 74xx138, oder einer seiner nahen Verwandten, dein Problem?
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.
Ich würde an soetwas wie ein LED Lauflicht denken. Dort leuchtet auch nur eine Led. Also z.B. CD4017 oder M54HC4051.
Jedes schaltsignal invertieren. Aus invertierten und nichtinvertierten Signalen jeweils auf ein 4-fach NAND. Oder NOR, geht auch.
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.
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
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 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.
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.
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.
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
Thomas W. schrieb: > Demnach sind die (lediglich) 4 Outputs, die ich verwenden möchte, > gegeneinander verriegelt, richtig? Nein, es gibt keine Totzeit.
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.
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...
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!
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.
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...
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.
CD4052 enthält 2 Stück 4 zu 1 Analogschalter mit Break before Make Funktion.
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...
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.