7-Segment Reverse Bias
Viele Anfänger (und auch manche Profis) machen den Fehler, die Segment-Treiber (also die Port-Pins,
da hier i.d.R. keine weiteren Treiber dazwischen liegen) als Push-Pull
(oder auch Totem-Pole) zu konfigurieren, d.h. der Pin ist schlicht ein Ausgang
und treibt gegen VCC oder GND.
Das funktioniert zwar, aber nicht immer und nicht beliebig lange...
Auf dem Bild ist CH1
ein Segment und CH2 eine
CC eines Displays
(jeweils direkt der Pin am Display, nicht am Controller!).
Der Math-Kanal zeigt die Differenz, also die Spannung über der Diode.
Der Pin ist dauerhaft als Ausgang geschaltet.
Man sieht, wie der Segment-Treiber tapfer gegen VCC und GND treibt
(da wir direkt am Display messen geht VCC nur bis etwa 3 V, der
Rest fällt über dem Vorwiderstand ab)
und welche Auswirkungen dies auf die CC
hat. Der Kathoden-Treiber ist im 3. und 9. 'Kästchen' aktiv,
hier sehen wir die Sättigungsspannung eines Darlington-Transistors
von etwa 0.8 V, den Rest ist er Hi-Z.
Der Math-Kanal zeigt, dass die
Diode mal positiv und mal negativ vorgespannt wird.
Im Falle eines getriebenen Digits ist dies noch kein Fehler
aber bei Digits, die gerade Off
sind ergibt sich dabei eine
Rückwärts-Spannung über einzelnen LEDs da der Kathoden-Treiber Hi-Z ist
und dann Segmente die GND-Potential führen über andere,
die in Flussrichtung liegen (also gerade an einem anderen Digit
leuchten), rückwärts vorgespannt werden.
Dies ist sicher nicht die volle VCC, aber zwei oder drei Volt können es schon werden.
Deshalb sollte in unserem Fall das Digit nur gegen GND treiben
(was der ULN2803 tut) und das Segment nur gegen VCC, aber nicht
gegen GND! Die Lösung dafür ist, nicht den PORTx zu verwenden
sondern den DDRx. Der PORT ist immer High, nur mit dem DDR
entscheiden wir, welches Segment gerade Strom bekommt.
Bei gängigen 7-Segment-Displays ist häufig eine maximale
Reverse-Spannung von 5 V spezifiziert so dass sie auch diesen Fehler
verzeihen werden. Wenn Sie jedoch Hochleistungs-LEDs für eine Großanzeige
verwenden kann dies anders aussehen. Hier heißt es im Datenblatt
häufig einfach, Avoid reverse bias by design
, d.h. Rückwärts-Spannung
ist schlicht nicht zulässig und könnte alles bewirken,
vom Helligkeitsverlust über verringerter Lebensdauer
bis zum sofortigen Ausfall.
Das Datenblatt unseres Displays gibt zwar eine maximale Reverse-Voltage von 5 V vor,
vermerkt aber auch Prolonged reverse bias should be avoided...
.
Ob sich die kurzen Phasen im Multiplex-Betrieb akkumulieren kann man dem
Datenblatt nicht entnehmen aber man ist sicherlich gut beraten, auch hier
auf unnötigen Reverse Bias zu verzichten.
Im zweiten Bild, der Port ist hier permanent '1' und nur das DDR wird geschaltet,
sieht man, dass der Segment-Treiber nicht mehr gegen GND
treibt sondern nur soweit nachgibt, dass das Segment eben keinen Strom mehr
ziehen kann.
Wie der Math-Kanal zeigt bekommt die Diode nun auch keine negative Vorspannung
mehr.
Alle Signale sind nun im erlaubten bzw. erwünschten Rahmen und so soll es sein.
Zusätzlich sehen wir erheblich reduzierte Amplituden der steilflankigen
Signale was auch einer reduzierten EMI entspricht,
die ja heute immer mehr von Bedeutung ist.
Tatsächlich hat es sich sogar gezeigt, dass es vorteilhaft ist,
die integrierten Pullup-Widerstände des Controllers aktiv zu lassen.
Der geringe Strom führt zu keiner wahrnehmbaren
Illumination der eigentlich dunklen Segmente, verringert aber
den Reverse-Bias
der sonst über die Sperrschicht-Kapazitäten
der LEDs aufgebaut werden würde.
LEDs sind Flächen-Dioden und haben beachtlich hohe Kapazitäten.
Die negativen Peaks, die sie im Math-Kanal sehen sind die Folge dieser Kapazitäten.