Forum: Mikrocontroller und Digitale Elektronik Logikspannung des L293D


von Michael K. (mkrebs)


Lesenswert?

Hallo,

über Weihnachten habe ich etwas gebastelt, zwei Treiberplatinen für 
analoge 7-Segment-Anzeigen. Deren Spulen werden mit 12 V bedient, die 
Polarität entscheidet über "Segment wird eingeblendet/Segment wird 
gelöscht".

Als Treiber habe ich günstig erhältliche L293D verwendet. Die Steuerung 
übernimmt ein NodeMCU (also eine Kombi aus AMS1117 als Spannungsregler 
und einem ESP8266 als Prozessor), der über vier 8-Bit-Schieberegister 
mit den L293D spricht.
Die Schieberegister werden mit aus dem AMS1117 des NodeMCU versorgt, sie 
benötigen wirklich nur wenige mA.
Die L293D erhalten zum einen die Motorspannung von 12V, zum anderen 
ebenfalls dieselben 12V als Logikspannung. Das ist per Datenblatt so 
zulässig.

Die Schaltung funktioniert einwandfrei.

Allerdings habe ich nach dem Aufbau schnell gemerkt, wie warm der 
Leerlaufstrom die L293D macht. Laut Datenblatt bei Enable=0 typisch 16mA 
für jeden der vier Kanäle, macht 64 mA pro Baustein - bei 5V 
Logikspannung.

Selbst gemessen habe ich für den gesamten Aufbau (NodeMCU und 14x L293D 
im Leerlauf) 520mA - bei abgeschaltetem Wifi, also vergleichsweise 
sparsamen ESP8266.

Probeweise habe ich mal zwei L293D mit nur 3,3 V Logikspannung aus dem 
AMS1117 versorgt statt mit 12V - funktioniert (auch wenn die 
Spezifikation 4,5 V minimale Logikspannung vorsieht), belastet den 
AMS1117 aber direkt mit gemessenen 32 mA pro Baustein. Würde ich das für 
alle 14 Treiber machen, wäre der AMS1117 überlastet, sobald auch der 
ESP8266 mal etwas zu tun kriegt.

Der Versuch, die beiden testweise umgestellten L293D aus einem separaten 
AMS1117 zu versorgen, sorgte für Rauchwolken und neue Gehäuseöffnungen 
in dem anderen AMS1117 auf dem NodeMCU - offensichtlich sind die 
Stromdifferenzen zwischen den beiden LDOs dann doch zu groß.


Jetzt sehe ich zwei Alternativen:
- Kühlkörperchen auf die L293D und damit leben, wie es ist. Der AMS1117 
ist dann für den NodeMCU zuständig und für die Schieberegister, der Rest 
arbeitet mit 12V. (Natürlich den abgerauchten NodeMCU tauschen ;) )
- Einen stärkeren Step-Down-Regler verwenden (den hier mit 3A habe ich 
noch parat liegen 
https://www.roboter-bausatz.de/p/mini-spannungswandler-step-down-modul-3a 
, basiert auf einem MP1584) und damit dann einen einzelnen ESP8266 (ohne 
NodeMCU), die Schieberegister und alle 14 L293D versorgen. Die 12V 
werden dann nur für die Motorspannung angelegt.

In einem experimentellen Setup (vor dem Tod des AMS1117 ;) ) habe ich 
festgestellt, dass der Gesamtverbrauch beim zweiten Szenario durch das 
Umhängen eines einzelnen L293D um etwa 5-10 mA sinkt. Bei 15 Stück wären 
das 14*5mA*12V=0,84 W bzw. 14*10mA*12V=1,68 W.

Klingt das plausibel und realistisch?

Sieht jemand von Euch weitere Alternativen?


Auf andere Treiber möchte ich nicht unbedingt wechseln (das würde quasi 
einen kompletten Neustart bedeuten, nach einigen investierten Tagen, 
Geld und bei prinzipiell funktionierender, nur nicht optimaler 
Gestaltung. Von Verfügbarkeit gar nicht zu reden.)

Viele Grüße und danke für Empfehlungen,
Michael

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite



Lesenswert?

Michael K. schrieb:
> dieselben 12V als Logikspannung. Das ist per Datenblatt so zulässig.
Welches Datenblatt hast du da? Das, das ich habe, begrenzt die 
Logikspannung für den Betrieb klar und deutlich auf 4V5..7V.

Das was in den "Absolute Maximum Ratings" angegeben ist, gilt nicht für 
den Betrieb, sondern nur für den "Absoluten Ausnahmefall".
Oder andersrum: man legt seine Schaltungen nicht nach den Absolute 
Maximum Ratings aus, sondern bleibt angemessen davon weg.

> offensichtlich sind die Stromdifferenzen zwischen den beiden LDOs dann
> doch zu groß.
Für mich ist da nichts "offensichtlich". Aber vielleicht fehlt mir auch 
nur der Schaltplan (das ist die Sprache der Elektronik, sie ist reiner 
Prosa zigfach überlegen).

> mit nur 3,3 V Logikspannung aus dem AMS1117 versorgt statt mit 12V -
> funktioniert
Ist aber genauso wilde Frickelei, weil ausserhalb der Spec. Und deshalb 
für eine ernsthafte und auf längere Sicht ausgelegte Schaltung 
ungeeignet.

> Sieht jemand von Euch weitere Alternativen?
Ich sehe es so, dass du 3 Systemspannungen hast: 12V, 5V und 3V3. Also 
musst du für diese 3 Spannungen ein Versorgungskonzept aufstellen und 
geeignete leistungsfähige Spannungswandler aussuchen.

Bei 15 Stück L293 wären das für die 5V-Schiene 60mAmax*15 = 0,9A. Dafür 
ist ein Stepdown sinnvoll. Der vorgeschlagene mit den 3 Ampere passt da 
dann ganz gut.

Aus diesen 5V kannst du anschließend per Linearregler 1117 die für den 
µC nötigen 3V3 machen (und nur dann brauchst du auch wirklich einen LDO, 
denn für 12V-> 3V3 ist kein LDO nötig).

: Bearbeitet durch Moderator
von Michael B. (laberkopp)


Lesenswert?

Michael K. schrieb:
> Jetzt sehe ich zwei Alternativen:

Kann man nicht nach dem Umschaltimpuls den Treiber abschalten und das 
Segment bleibt da ?

von Axel S. (a-za-z0-9)


Lesenswert?

Michael B. schrieb:
>
> Kann man nicht nach dem Umschaltimpuls den Treiber abschalten und das
> Segment bleibt da ?

So macht man das, ja. Und wenn ich den TE (mangels Schaltplan nur 
hoffentlich) richtig verstehe, dann macht er das auch. An der hohen 
Ruhestromaufnahme des L293 ändert das aber nichts. Hat schon seinen 
Grund, daß die heutzutage billig sind.

Immerhin ist der H-Pegel des L293 versorgungsspannungsunabhängig. Die 
Schieberegister können an 3.3V Versorgung bleiben.

von Michael K. (mkrebs)



Lesenswert?

Guten Morgen liebe Helfende!

Danke für die Antworten.

Lothar M. schrieb:
> Welches Datenblatt hast du da? Das, das ich habe, begrenzt die
> Logikspannung für den Betrieb klar und deutlich auf 4V5..7V.
>
> Das was in den "Absolute Maximum Ratings" angegeben ist, gilt nicht für
> den Betrieb, sondern nur für den "Absoluten Ausnahmefall".
> Oder andersrum: man legt seine Schaltungen nicht nach den Absolute
> Maximum Ratings aus, sondern bleibt angemessen davon weg.

Die Chips, die ich hier habe, sind von ST. Deren Datenblatt sagt klar: 
4,5 .. 36 V sind für die Logikspannung zulässig - die Motorspannung muss 
nur mindestens ebenso hoch sein. Das ist bei mir klar erfüllt.

Die von Dir vorgeschlagene Lösung mit 3 Spannungen wäre sicherlich die 
sauberste - offensichtlich funktionieren meine L293D aber auch mit 3,3V 
Logikspannung noch, so dass ich halt von 12 auf 3,3 gehen könnte, und 
einen LDO dazwischen spare.

Michael B. schrieb:
> Kann man nicht nach dem Umschaltimpuls den Treiber abschalten und das
> Segment bleibt da ?

Axel S. schrieb:
> So macht man das, ja. Und wenn ich den TE (mangels Schaltplan nur
> hoffentlich) richtig verstehe, dann macht er das auch. An der hohen
> Ruhestromaufnahme des L293 ändert das aber nichts. Hat schon seinen
> Grund, daß die heutzutage billig sind.

Selbstverständlich enable ich die Outputs der L293D nur für jeweils 
20ms, was reicht, um die Segmente zu schalten. Allerdings bleibt die 
Motor- und die Logikspannung auch danach noch an den L293D anliegen. 
Wenn ich Dich, Michael B., richtig verstehe, schlägst Du vor, über einen 
weiteren Output des NodeMCU und einen Leistungstransistor die 
12V-Schiene jeweils komplett wegzuschalten, so dass die L293D komplett 
spannungsfrei sind?


Damit kann ich meine Optionen ja schon gut erweitern:
- lassen, wie es ist und kühlen (Spec-konform)
- 3A-StepDown auf 3,3 V einsetzen und alles mit 3,3V betreiben 
(außerhalb der Spec)
- 3A-StepDown auf 5V einsetzen, dahinter einen 3,3V StepDown für den 
ESP8266, und die L293D mit 5V betreiben (Spec-konform)
- weiterhin 12V Logikspannung verwenden, die aber jeweils wegschalten, 
wenn nichts zu verändern ist.

Danke für Eure Vorschläge! Ich muss mal schauen, welcher davon am 
ehesten mit den bereits aufgebauten Platinen zu vereinbaren ist. Der 
letzte klingt natürlich am reizvollsten - wenn etwas gar nicht erst 
versorgt wird, kann es auch nicht warm werden ;)

Viele Grüße
Michael

von Wolfgang (Gast)


Lesenswert?

Michael K. schrieb:
> Deren Datenblatt sagt klar:
> 4,5 .. 36 V sind für die Logikspannung zulässig

Recommended Operating Conditions:
Supply voltage VCC1 min 4.5V, max 7V (S.4)
https://www.ti.com/lit/ds/symlink/l293.pdf

von Wolfgang (Gast)


Lesenswert?

Sorry, ST gibt in der Tat 4.5 bis 36V für V_SS an

von Michael K. (mkrebs)


Lesenswert?

Michael K. schrieb:
> Selbstverständlich enable ich die Outputs der L293D nur für jeweils
> 20ms, was reicht, um die Segmente zu schalten. Allerdings bleibt die
> Motor- und die Logikspannung auch danach noch an den L293D anliegen.
> Wenn ich Dich, Michael B., richtig verstehe, schlägst Du vor, über einen
> weiteren Output des NodeMCU und einen Leistungstransistor die
> 12V-Schiene jeweils komplett wegzuschalten, so dass die L293D komplett
> spannungsfrei sind?

Hallo nochmal,

da muss ich mich selber korrigieren, und das könnte auch schon der 
Durchbruch sein:
- an den Inputs der L293D lege ich parallel für alle 14 Treiber das 
Signal "Segment setzen" bzw. "Segment löschen" an.
- dann setze ich für 20ms das Enable-Signal an den Treibern, deren 
Segmente ich tatsächlich setzen/löschen will.

Allerdings nehme ich nach den 20ms nicht nur das Enable-Signal weg, 
sondern disable auch die Schieberegister. Das hat aber zur Folge, dass 
das die Ausgänge der Schieberegister und damit die Eingänge der L293D 
allesamt hochohmig sind. Und das war dann auch schon der Fehler.

Ich halte nach einer Softwareänderung jetzt die Register aktiv, schiebe 
bewusst nochmal 32x0 nach, um alle Ausgänge auf Low zu ziehen und damit 
die L293D bewusst auf Enable=0 zu setzen.

Schon sinkt der Verbrauch im Leerlauf von zuvor erwähnten 520mA auf 
210mA (davon 10mA für den ESP8266), mithin also um 3,7 W. Und jetzt 
verbrennt man sich auch nicht mehr die Pfoten am L293D.

Weiter sinnvoll senken können werde ich wohl nur noch mit einer 
Vollabschaltung der 12V-Schiene - die Reduktion der Logikspannung dürfte 
keinen derartig großen Effekt nochmal zeigen. Ich werde aber erstmal 
schauen, ob ich das wirklich noch umsetze.

Danke auf jeden Fall an alle Beteiligten, und danke insbesondere an Axel 
S. und Michael B. - als ich überlegt habe, wie ich einen 
Leistungstransistor anbinden könnte, ist mir der Gedanke an die 
Abschaltung der Schieberegister gekommen - und von da war der Sprung 
nicht mehr so weit.

von Michael K. (mkrebs)


Lesenswert?

So, abschließend noch ein Ergebnis:
- durch die Korrektur des Programms und korrekte Aussteuerung der 
Tri-State-Schieberegister konnte ich den Ruhe-Verbrauch, wie 
beschrieben, von 520mA auf 210mA senken.
- Ich habe mich doch hinreissen lassen, den NodeMCU gegen einen 
WemosD1mini auszutauschen, und damit Platz für einen 3A-LDO zu finden. 
Dann noch eine weitere Spannungsschiene zu den Bausteinen (was beim 
Entlöten ein paar Lötaugen gekostet hat), und jetzt arbeiten die 
Platinen mit 3,3V und 12V. Das hat den Ruheverbrauch von 210mA auf 65mA 
gesenkt. Sollten die 3,3V nicht ausreichen (die L293D sind ja eigentlich 
ab 4,5V spezifiziert), kann ich auch auf 5V gehen und für den ESP8266 
den 5V->3,3V LDO des WemosD1mini mit nutzen.

Wichtiges Learning: nie mit dem Finger die Temperatur des LDO bei einem 
einstellbaren LDO ermitteln. Ändert den Widerstand, erhöht die 
Ausgangsspannung, lässt die LED des ESP8266 sehr hell leuchten :-| ;-)


Danke Euch für die Unterstützung!

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Michael K. schrieb:
> Wichtiges Learning: nie mit dem Finger die Temperatur des LDO bei einem
> einstellbaren LDO ermitteln.
Das endgültige Ergebnis sollte lauten: den Spannungsteiler bei einem 
deratigen Spannungsregler nicht so dermaßen hochohmig machen, dass ein 
Finger schon alles durcheinanderbringt. Denn dann bringt auch jede 
EMV-Einkopplung das Ding aus dem Tritt.

> Sollten die 3,3V nicht ausreichen (die L293D sind ja eigentlich ab 4,5V
> spezifiziert) kann ich auch auf 5V gehen
Ja, da denkst du aber nicht mehr dran, wenn du in 3 Jahren einen 
tauschen musst und die Schaltung dann auf einmal nicht mehr richtig tut. 
Oder wenn sie auch ohne Tausch nächsten Sommer nicht mehr richtig tut, 
weil alles ein wenig wärmer geworden ist. Aber ich dneke, das muss jeder 
selber lernen.
Ich habe meinen Kindern auch oft gesagt, sie sollen nicht an den heißen 
Ofen fassen. Trotzdem hats jeder ausprobiert...

von Michael K. (mkrebs)


Lesenswert?

Hallo,

Lothar M. schrieb:
> Das endgültige Ergebnis sollte lauten: den Spannungsteiler bei einem
> deratigen Spannungsregler nicht so dermaßen hochohmig machen, dass ein
> Finger schon alles durcheinanderbringt. Denn dann bringt auch jede
> EMV-Einkopplung das Ding aus dem Tritt.

Naja, letztendlich kann ich schon nachvollziehen, dass ein Finger, der 
mehrere Pins eines ICs berührt, eine signifikante Widerstandsänderung 
herbeiführen kann. Die Pins einer CPU im Desktop-PC sollte man ja auch 
nicht gerade im laufenden Betrieb anfassen.

Abgesehen davon: ich habe das erwähnte Fertigmodul verwendet, da ich auf 
der begrenzten Fläche der ansonsten aufgebauten Lochrasterplatinen nicht 
nachträglich noch die relevanten Komponenten untergekriegt hätte. Und: 
meine Expertise bei Spannungswandlern ist bislang überschaubar.

So, daraus könnte man ableiten: "dann lern es halt und bau es selber - 
nicht nur Module zusammenstöpseln". Es gibt aber Dinge, über die ich mir 
gerne den Kopf zerbreche bei meinem Hobby und die ich gerne konzipiere 
und ausprobiere, und Dinge, die ich weniger gerne anfasse, wo ich kein 
Experte bin. Niemand würde ernsthaft sagen: verzichte auf die 14 Stück 
L293D und baue Dir geeignete Transistorstufen selber auf. Wenn ich für 
weniger als einen Euro ein geeignetes Modul finde - mich der einzelne 
LDO, Widerstände, Kondensatoren etc. aber im Endeffekt mindestens das 
gleiche kosten, dann vertraue ich drauf, dass der Hersteller schon etwas 
für ein Hobbyprojekt Geeignetes anbieten wird. Im professionellen Umfeld 
würde ich mir in der Tat Gedanken machen, da stimme ich zu. (Und bei 
einer "Eigenentwicklung" hätte ich ja auch nicht als erstes über den 
ohmschen Einfluss eines Fingers nachgedacht.)

Bevor es falsch rüberkommt: ich finde diese Denkanstöße von Dir gut und 
lobenswert, möchte sie nur in Bezug auf mein Projekt einordnen!

Lothar M. schrieb:
> Ja, da denkst du aber nicht mehr dran, wenn du in 3 Jahren einen
> tauschen musst und die Schaltung dann auf einmal nicht mehr richtig tut.
> Oder wenn sie auch ohne Tausch nächsten Sommer nicht mehr richtig tut,
> weil alles ein wenig wärmer geworden ist. Aber ich dneke, das muss jeder
> selber lernen.
> Ich habe meinen Kindern auch oft gesagt, sie sollen nicht an den heißen
> Ofen fassen. Trotzdem hats jeder ausprobiert...

Solche Gedanken hatte ich auch schon. Im Endeffekt ist es auch nur eine 
Lötverbindung (Einspeisung am 5V-Eingang des D1mini statt am 
3,3V-Eingang), die ich umbiegen müsste und natürlich eine 
Poti-Einstellung am Spannungsregler. Mich reizt aber gerade, den zweiten 
Spannungswandler möglichst ungenutzt zu lassen.
Ich werde mir aber entsprechende Notizen in meinem Projektordner ablegen 
- wenn das Ding dann wirklich "spinnt", wird das sicherlich die erste 
Korrektur werden. Es wird ja daran zu erkennen sein, dass bestimmte 
Schaltvorgänge nicht mehr bei den 7 Segment-Anzeigen auftauchen.

Das ist das schöne: ich bastele was, was halbwegs sinnfrei diese Wohnung 
bereichern wird (die Anzeigen werden wohl den Tageskilometerzähler des 
Goldhamsters abbilden) - ich verkaufe es nicht, es muss auch nur von mir 
betrieben werden. Und fällt es aus, dann habe ich halt wieder was zu 
tun.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Michael K. schrieb:
> möchte sie nur in Bezug auf mein Projekt einordnen!
Ja, passt schon. Aber letztlich sind eben in deinem Fertig-Modul 
ziemlich hochohmige Spannungsteilerwiderstände eingesetzt.

> Die Pins einer CPU im Desktop-PC sollte man ja auch nicht gerade im
> laufenden Betrieb anfassen.
Das hat aber seinen Grund eher in der ESD-Ecke: wenn Laien da unbedarft 
ohne vorhergehenden Potentialausgleich "reinfunken" (im wahrsten Sinne 
des Wortes), dann tut das den angeschlossenen Bauteilen nicht gut. 
Allerdings auch, wenn der Rechner nicht läuft.

Ich fasse bei meinen Rechnern aber mit Absicht selber rein. Und die 
dürfen sich dadurch nicht aus der Ruhe bringen lassen. Denn sonst habe 
ich da zu hochohmig designt oder sogar vergessen, einen Pin definiert 
anzuschließen.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

>Die Chips, die ich hier habe, sind von ST
Die haben auch sonst höhere Spannungen als andere, z.B.:
https://www.st.com/en/automotive-logic-ics/hcf4093.html
Der CMOS-Schmitt-Trigger 4093 geht bei anderen maximal bis 15V, hier 
20V, abs. max. 22V
Wir hatten ein Gerät mit 15V-Akku, da wurde nur noch der ST-Typ 
eingesetzt, weil die anderen öfters mal ausfielen.

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.