Forum: Mikrocontroller und Digitale Elektronik Open Drain + Hardware PWM


von Michael F. (Gast)


Lesenswert?

Hallo miteinander,

in meinem aktuellen Projekt habe ich leider mal wieder einen 
mittelgroßen Bock geschossen. Inhalt des Projekts ist es unter anderem, 
4 1W LEDs per PWM zu dimmen. Als Konstantstromquelle kommt jeweils ein 
ZXLD360 zum Einsatz. Leider habe ich im Datenblatt des ZXLDs übersehen, 
das der ADJ Pin (Der "PWM Eingang") nicht mit einer Spannung von 5V 
angesteuert werden darf, sondern nur mit 1,25V - diese Spannung wird 
sogar vom pin selbst bereit gestellt um muss also theoretisch nur durch 
das PWM Signal nach Masse gezogen werden.

So weit so gut, ich sitze hier mitlerweile vor einer fertig bestückten 
Platine auf der die ADJ Pins direkt auf die entsprechenden Hardware PWM 
Ausgänge eine Mega128 geführt sind. Jetzt habe ich durch einige suche 
hier im Forum herausgefunden, das es mit Hilfe der DDR Register möglich 
ist einen Open Drain Ausgang zu "simulieren". Meine Frage ist nun, ob 
ich das auch irgendwie in verbindung mit Hardware PWM hinbekomme, denn 
überlicherweise schaltet mir die ja bei einem Compare den Pin Zustand. 
Habe ich die Möglichkeit das irgendwie auf das DDR Register umzubiegen?

Ansonsten werde ich wohl in den sauren Apfel beißen müssen und jeweils 
einen Transistor oder ähnliches dazwischen einzulöten, das würde ich 
allerdings sehr gerne vermeiden ;)

Gruß Micha

von Matthias L. (Gast)


Lesenswert?

>das irgendwie auf das DDR Register umzubiegen?

Das geht nicht.

von Fritz (Gast)


Lesenswert?

Prinzipiell ist es schon möglich einen Open Drain Ausgang zu simulieren, 
in dem man den Ausgang fest auf 0 setzt und anschliesend nur zwischen 
Ein- und Ausgang wechselt.

Das geht dann allerdings nicht mehr über eine Hardware-PWM sondern nur 
noch über eine Software PWM. Das sollte aber bei den für Dimmen üblichen 
PWM Frequenzen kein Problem darstellen.

von Εrnst B. (ernst)


Lesenswert?

Die Leiterbahn auftrennen, etwas Lötstopplack runterkratzen und eine 
4148 drauflöten?

von Michael F. (Gast)


Lesenswert?

Vielen Dank für die schnellen Antworten!

Software PWM kommt aus einigen Gründen nicht in Frage, hauptsächlich 
weil ich eine möglichs hohe Auflösung brauche um die Helligkeit der LEDs 
zu "linearisieren", das ist mit 10 Bit auflösung schon recht grob. Und 
alles über 10 Bit Software PWM beschäftigt den Controller doch etwas zu 
sehr, der hat ansonsten noch genug zu tun ;) Trotzdem danke für den 
Vorschlag.

Die Lösung mit der Diode klingt allerdings sehr gut, da wäre ich nicht 
drauf gekommen! :) Ich werde vorsichtshalber mal zu Schottky Dioden 
greifen, dann komme ich Spannungstechnisch noch ein bischen näher an GND 
ran...

Gruß Micha

von Fritz (Gast)


Lesenswert?

Die Idee mit der Diode wird hier warscheinlich nicht zufriedenstellend 
funktionieren, da der IC zum Abschalten einen Pegel unter 0,2V erwartet. 
Aber einen Versuch ist es wert.

Aber um nochmal auf die Software Geschichte zurückzukommen. Du kannst 
für die PWM durchaus einen Hardware-Timer nutzen, allerdings musst du 
den entsprechenden Eintrag im DDR-Register manuel in den 
Service-Routinen für den Overflow- bzw. Compare-Interrupt setzten bzw. 
rücksetzten.
Damit sollte auf jeden Fall eine höhere Auflößung als bei einer reinen 
Software PWM möglich sein.

von Michael F. (Gast)


Lesenswert?

Dank des sehr geringen Stroms der durch die Diode fließt (Im Bereich 
einiger µA, begrenzt durch den IC) beträgt der Spannungsabfall an der 
Diode (BAT 85) nur gemessene 90-100 mV. Das reicht jedenfalls aus um den 
ZXLD1360 dazu zu überreden den Strom komplett abzuschalten ;)

@Fritz: Du hast natürlich Recht, ich wäre ja nicht gezwungen reine 
Soft-PWM zu nutzen. Trotz allem bin ich froh das ich nun bei einer 
kompletten Hardware Lösung bleiben kann, das erspart mir zumindest ein 
bischen Programmierarbeit und schont die Controller-Ressourcen!

Ich sag auf jeden Fall noch mal Danke für eure Hilfe! :)

Gruß

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.