PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Display Multiplexen Breakpoint



Siro
23.04.2018, 15:43
Hallo zusammen,

ich entwerfe grad ein neues Bedienpanel.
Dort sollen mehrere 7-Segmentanzeigen angesteuert werden.
Dafür gibt es spezielle Bausteine z.B. von Maxim, diese klammere ich mal aus.
Also lediglich einen Segmenttreiber für die 8 Segmente und pro Digit ein Tranistor für die
gemeinsame Anode oder Kathode.

Wenn man per Softwarte die Displays selbst multiplexen möchte, muss ich bei z.B bei 5 Digits
den 5 fachen Strom in die Segmente jagen, da sie ja auch nur 1/5 der Zeit eingeschaltet sind.

Jetzt kommt das eigentliche Dilemma:
Wenn ich in der Testphase einen Breakpoint setze, steht die Software und es wird irgendein Digit
mit 5 fachen Strom dauerbetrieben, was vermutlich zur thermischen Zerstörung des Display führt. :(

Gibt es dafür eine Lösung ?
Mir ist jetzt die folgende eingefallen:

Die Versorgung der gemeinsamen Anode wird über eine Transistor normalerweise weggeschaltet.
Die CPU muss nun regelmäßig ein Triggersignal liefern um die Stromzufuhr wieder herzustellen.
Dafür wollte ich ein nachtriggerbares Monoflop wie den 74123 verwenden.
Kommt also ein Signal von der CPU, wird der Strom für die Displays für eine gewisse Zeit vom Monoflop freigegeben,
bleibt das Signal für eine bestimmte Zeit aus, werden die Displays strommässig abgeklemmt damit durch den
statischn Zustand die Segmente nicht durchbrennen.

Gibt das so Sinn ? oder habe ich evtl. etwas übersehen, oder bin ich völlig auf dem Holzweg

Ich bin ja sicher nicht der erste, der mal beim Multiplexen die CPU anhält, wie macht Ihr das ?

So hätte ich zudem automatisch einen Standby-Schaltung für die Displays. Wenn ich den Prozessor in den Ruhezustand versetze.
Da ist aber eher eine Nebenwirkung, die ich nicht unbedingt brauche.

So in etwas habe ich mir das vorgestellt:

33427
Hab grad überlegt über die Drain Source Strecke vom Mosfet einen, sagen wir mal 5-10mA Konstantstrom zu schalten, dann sehe ich auch noch was auf dem momentan angesteurtem Digit.
ein entsprechender Widerstand tuts dann aber auch.;)

Siro

Klebwax
23.04.2018, 19:44
Wenn man per Softwarte die Displays selbst multiplexen möchte, muss ich bei z.B bei 5 Digits
den 5 fachen Strom in die Segmente jagen, da sie ja auch nur 1/5 der Zeit eingeschaltet sind.

Jetzt kommt das eigentliche Dilemma:
Wenn ich in der Testphase einen Breakpoint setze, steht die Software und es wird irgendein Digit
mit 5 fachen Strom dauerbetrieben, was vermutlich zur thermischen Zerstörung des Display führt.

Dies Problem hatte ich auch. Meine Schaltung war anders herum, 20mm Displays mit gemeinsamer Kathode über einen BSS138 FET gesteuert und die Anoden jeweils über einen Vorwiderstand direkt vom Portpin. Das sollte aber keine Rolle spielen.

Zum Debuggen hatte ich mir überlegt, die Widerstände so groß zu machen, daß der zulässige Strom pro Segment im Dauerbetrieb nicht überschritten wird. Ich hab da mal mit 470Ω angefangen, bei 5V und roten LEDs sind das weniger als 10mA. Damit habe ich dann angefangen zu Debuggen und wollte, wenn alles funktioniert, die Widerstände kleiner machen. Nun hat sich dabei herausgestellt, daß diese modernen LEDs so hell sind, daß ich es auch für den Multiplexbetrieb so belassen habe. Die Anzeige ist hell genug, obwohl die 20mA, die als Dauerstrom möglich wären, weit unterschritten werden. Ich hab aber nur drei Stellen, für mehr Stellen könnten die Vorwiderstände aber verkleinert werden um die Helligkeit zu erhöhen ohne die LEDs zu überfordern.

In Summe: LED Ansteuerung mit einem Transistor pro Digit, 8 Widerständen und Breakpoint fest.

MfG Klebwax

wkrug
23.04.2018, 21:13
So wie ich das sehe, hast Du ja eine eigene Versorgung für VLED.
Kannst Du da nicht ein Bauteil ausbauen und die Spannung dort über ein Labornetzteil einspeisen?
Dadurch könnte man die Displayspannung so weit runter drehen, das keine gefährlichen Ströme entstehen.
Während der Testphase leuchtet das Display halt dann etwas dunkler.
In der fertigen Version, kannst Du dann ja auch noch eine Watchdog reinmachen, damit der Controller nicht hängen bleiben kann.

Ich denke auch, das der fünffache Strom durch die LED's beim Multiplexen gar nicht nötig ist, um die Segmente genauso hell wie im Dauerbetrieb leuchten zu lassen.

Der doppelte bis dreifache Strom sollte schon den gewünschten Effekt haben.
Zudem haben LED's auch einen maximalen Kurzzeitstrom, den man auch nicht für kurze Zeit überschreiten darf.

Siro
23.04.2018, 22:17
Habt erstmal vielen Dank, Klebwax und wkrug, für Eure Anteilnahme und Informationen.

Die Widerstände bzw. Ströme erst in der Endversion(Software) anzupassen wäre natürlich auch eine Option.
Während der Softwareentwicklung spielt das ja wirklich keine Rolle.

Ich staune immer, im Datenblatt sind fast alle Modelle mit 20mA angegeben.
Spitzenströme recht unterschiedlich von 45 bis 140mA habe ich schon gefunden.
Ich habe hier noch welche rumliegen, die brauchen wirklich so 15mA pro Segment damit es vernünftig aussieht.
Habe mir aber heute mal welche bei Reichelt bestellt, mal gucken wie die sich verhalten.
Mit den "5" Anzeigen hatte ich nur als Beispiel genommen, in Wirklichkeit hab ich 15 Digits zu steuern....
Das geht natürlich nicht mehr mit nur einem Multiplexer....
Maxim bietet auch Chips mit bis zu 8 Digits und sogenannten "Charlieplexing" an.

Hier ist mal ein Link dazu:
https://www.maximintegrated.com/en/app-notes/index.mvp/id/1880

So ein chip kost dann auch rund 7-10 Euro.
Ich werd mir den aber auch mal besorgen (bei Mouser Elektronik) und damit testen/spielen.

Das Problem wird aber hauptsächlich sein, dass ich verschiedene Größen von Displays gleichzeitig benutzen möchte.
Mit unterschiedlichhen Strömen können die Chips aber nicht arbeiten.

Ich liebe ja eigentlich den statischen Betrieb mit reinen Schieberegister und Konstantströmen
CAT4016 habe ich zur Zeit auch im Einsatz.

Am besten (einfachsten) sind aber immer noch die seit 20 Jahren bewährten LTM8522 von Lite-On.
Schieberegister und Konstantströme gleich im 3 stelligen Display integriert.
Aber genau die wollte ich mal ablösen und muss zum Bedauern feststellen, das der Aufwand dann enorm wächst...

Ich probier erstmal die Ströme mit den neuen Displays dann aus und werde berichten.

Die Firma Avago hat wohl Low Current Displays, Tescondition geben sie an von 1-5mA das klingt doch sehr gut.

Siro

Klebwax
24.04.2018, 02:00
Ich habe hier noch welche rumliegen, die brauchen wirklich so 15mA pro Segment damit es vernünftig aussieht.

Der Fortschritt bei den LEDs ist schon gewaltig. Ich hab auch noch eine Menge ältere rumzuliegen (muß mal aufräumen). Ich glaube, man kann an der Brennspannung etwas erkennen. Ältere rote LEDs sind etwas dunkler im Rot und haben so ca 1,6V, neuere und hellere baben eine Spannung von über zwei Volt. Das ist aber mehr ein Eindruck als eine gesicherte Erkenntnis.

Mein Motiv für die 20mm LED Displays war, die Anzeige auch ohne Brille und aus größerer Entfernung ablesen zu können. Ich bin inzwischen davon wieder abgekommen. Trotz aller möglicher Muster, mit den man z.B Overflow oder anderes anzeigen kann, fehlten mir Einheitensymbole. Ich verwende jetzt Oled-Display mit I2C. Und da nicht die kleinen mit 0,96", das ruft auch noch nach der Brille, sondern welche mit 2,4" (https://www.aliexpress.com/item/2-42-inch-Green-blue-yellow-128x64-OLED-display-module-OLED-module-8bit-6800-8080-4/32422651951.html?spm=2114.search0104.3.7.7c5b4ece8 g6NdV&ws_ab_test=searchweb0_0,searchweb201602_3_10320_10 152_10321_10065_10151_10344_10068_5722815_10342_10 547_10343_10322_10340_10341_10548_5722915_10698_10 697_10193_5722615_10696_10194_10084_10083_10618_10 304_10307_10302_5722715_10180_5711215_10059_10184_ 308_100031_10319_10103_441_10624_10623_10622_10186 _5711315_5722515_10621_10620,searchweb201603_1,ppc Switch_4&algo_expid=bc3c901a-3ec2-4693-9637-5c60caeaf41b-1&algo_pvid=bc3c901a-3ec2-4693-9637-5c60caeaf41b&transAbTest=ae803_1&priceBeautifyAB=0). Die werden genauso angesteuert wie die kleinen. Da bekommt man leicht 4 Zeilen a 10 Zeichen unter, die sich auch gut aus größerer Entfernung ablesen lassen. Am µC kosten sie nur 2 Pins und wenn man schon einen I2C Bus hat, gar keinen.

Mein erster Ansatz mit den 7 Sedment Display war ein wenig von diesen Volt/Amperemetern beinflußt (https://www.aliexpress.com/item/New-DC-100V-10A-Digital-Voltmeter-Ammeter-Dual-Blue-Red-LED-Display-Digital-Volt-Amp-Meter/32793479276.html?spm=2114.search0104.3.24.3de73951 nUg5Ow&ws_ab_test=searchweb0_0,searchweb201602_3_10320_10 152_10321_10065_10151_10344_10068_5722815_10342_10 547_10343_10322_10340_10341_10548_5722915_10698_10 697_10193_5722615_10696_10194_10084_10083_10618_10 304_10307_10302_5722715_10180_5711215_10059_10184_ 308_100031_10319_10103_441_10624_10623_10622_10186 _5711315_5722515_10621_10620-5711215,searchweb201603_1,ppcSwitch_4&algo_expid=656b728d-b381-4043-807c-aae35c37bb36-3&algo_pvid=656b728d-b381-4043-807c-aae35c37bb36&transAbTest=ae803_1&priceBeautifyAB=0) (die treiben die LEDs direkt mit den Prozessorpins, ich hab mir die Platine daraufhin mal genau angesehen). Die Anzeige ist zwar hell, aber zum Ablesen aus größerer Entfernung zu klein. Nachdem ich auf diese Größeren (https://www.aliexpress.com/item/DC-6-5-100V-0-20A-Digital-LCD-Volt-AMP-power-energy-meter-module-shows-V/32418711326.html?spm=2114.search0104.3.60.3de73951 nUg5Ow&ws_ab_test=searchweb0_0,searchweb201602_3_10320_10 152_10321_10065_10151_10344_10068_5722815_10342_10 547_10343_10322_10340_10341_10548_5722915_10698_10 697_10193_5722615_10696_10194_10084_10083_10618_10 304_10307_10302_5722715_10180_5711215_10059_10184_ 308_100031_10319_10103_441_10624_10623_10622_10186 _5711315_5722515_10621_10620,searchweb201603_1,ppc Switch_4&algo_expid=656b728d-b381-4043-807c-aae35c37bb36-8&algo_pvid=656b728d-b381-4043-807c-aae35c37bb36&transAbTest=ae803_1&priceBeautifyAB=0) gestoßen bin, nehme ich die 2,4" Oleds. Sie sind zwar nicht wirklich billig, bieten aber viele Freiheiten bei simpler Ansteuerung.

Aber auch mit den 0,96" oder 1,3" Oleds kann man 2 große Digits anzeigen. Da sie zwei einstellbare I2C Adressen haben, kann man mit 2 nebeneinander ohne zusätzliche Hardware ein 4-Stelliges Display mit rund 20mm hohen Zeichen bauen. Dazu sind sie wirklich billig, Helligkeit einstellen oder Abschalten ist eingebaut. Aber genug der Ablenkung von deinem Problem.

MfG Klebwax

Ceos
24.04.2018, 09:21
ich arbeite ja unter anderem mit solchen segmentanzeigen und die erfahrung zeigt, das träge auge des menschen und die automatische verstärkung im hirn regeln schon alles was du brauchst

will sagen, eine gepulste LED erscheint dem menschlichen auge heller als eine konstant leuchtende, du brauchst definitiv nicht den 5fachen strom, selbst bei 3fach wäre ich noch skeptisch

teste doch erstmal deine anzeigen bei normalstrom nach datenblatt, dann steuer die LEDs per PWM an und du wirst merken, dass die oberen 25% des duty cycle ohne warnehmbaren helligkeitsverlust sind und erst danach eine sichtbare verdunkelung eintritt, i.d.R. kannst du eine LED (wenn es nicht gerade ein sehr schneller typ ist) locker bis 50% duty cycle dimmen ohne dabei nennswerten leuchtverlust zu erleiden

in diesem konkreten fall würde ich definitiv den praktischen weg des ausprobierens gehen, schließ sie einfach an, rechne aus wie oft die LED pro sekunde eingeschaltet sein wird und emulier einmal eine ziffer des display und sieh nach wie sich das auswirkt wenn du den PWM anhälst und ein segement dauerhaft leuchtet

Siro
24.04.2018, 14:46
@Witzkatz:
Die Idee mit den OLEDs finde ich garnichtmal so schlecht. Braucht man wirklich wenige Leitungen.


@Ceos:
Danke auch für deine Info:
Die neuen Anzeigen kommen ja die Tage und dann werde ich mal etwas rumprobieren und nach deinem Vorschlag mal mit verschiedenen Pulsbreiten betreiben.

Ich hatte bei einem anderem Projekt schon bemerkt, dass das Auge nicht der Pulsbreite bzw. Helligkeit entspricht. Da hatte ich eine Powerled mit einer PWM betrieben.
Im oberen Bereich tat sich wirklich nicht viel in der Lichtausbeute, im unterem Bereich erschien es dann jedoch schon stufig trotz 256 PWM Schritte.

Dazugehörig:
Die Logik hinter den Datenblättern der 7-Segment Anzeigen verstehe ich ehrlich gesagt nicht wirklich...
Ein Beispiel aus dem Datenblatt von Kingbright:

IF = 20mA Peak 140mA
UF = max 2,5V
Power Dissipation 105mW
Die dominante Wellenlänge wird bei einem Strom von 20mA angegeben.

Wenn ich alle Segmente mit 20mA ansteuere also 20mA*8 habe ich eine Verlustleistung von
UF * IF * 8 ==> 2,5V * 20mA * 8 = 400mW
also das Vierfache als erlaubt.
Somit darf ich die Segmente eh nur mit 5mA statisch betreiben.

Okay, es sind ja eher selten alle Segmente angesteuert.
Im Durchsnitt 4,8 Segmente bei einer Zahlendarstellung von 0..9
Dann komme ich auf auf eine durchschnittlichen Strom von 8,75mA pro Segment
bei maximal 105mW.

Warum ist IF dann im Datenblatt mit 20mA angegeben ?
und warum wird die dominate Wellenlänge bei 20mA gemessen ?

Ich will ja kein Wissenschaft aus der Ansteuerung eines 7 Segemntanzeige machen, ;)
aber wundern tut mich das schon.

Siro

Ceos
24.04.2018, 14:53
ich denke es geht dabei um die einzelnen LEDs ... eine Segmentanzeige ist ja nichts weiter als eine Sammlung verdrahteter und in Plastik gegossener LEDs und die Angaben beziehen sich auf die verwendeten LEDs, wobei die Power Dissipation (Übersetzt "Ableitfähigkeit") angibt wieviel Abwärme das ganze Gehäuse ableiten kann und du nicht vergessen darfst, dass eine erheblicher Anteil des Stroms in Form von Licht und nicht Wärme abgegeben wird, also nicht zur Ableitwärme dazu zählt.

Wenn hier jemand noch detaillierte und zuverlässigere ERklärungen hat wäre ich hochgradig interessiert, das habe ich mir nämlich nur selbst geschlussfolgert und nicht von irgendwo abgeschrieben.

witkatz
24.04.2018, 15:46
@Witzkatz:
Die Idee mit den OLEDs finde ich garnichtmal so schlecht. Braucht man wirklich wenige Leitungen.
Ich auch, war aber nicht meine ;-)

PICture
25.04.2018, 09:17
Jetzt kommt das eigentliche Dilemma:
Wenn ich in der Testphase einen Breakpoint setze, steht die Software und es wird irgendein Digit
mit 5 fachen Strom dauerbetrieben, was vermutlich zur thermischen Zerstörung des Display führt. :(

Gibt es dafür eine Lösung ?

Ich denke schon. Nix hardwaremäßig, sondern alles nur softwaremäßig in einer endloser Schleife, die immer läuft, umschalten. So habe ich immer alles nach Programmablaufdiagram programmiert. Es ist nicht das beste Beispiel, aber das ich mir noch schnell erinnern kann: https://www.roboternetz.de/community/threads/42200-Frequenzz%C3%A4hler-mit-LPH2673-1-%28zum-Nachbauen%29 ;)

Siro
25.04.2018, 14:34
Das hast Du glaube ich nicht richtig verstanden PICture.
Es geht ja darum wenn die Software stehen bleibt.

Das multiplexen muss natürlich immer in einer Schleife, bzw. im Timerinterrupt laufen.
Aber wenn die Software anhält, egal wo, dann bleiben halt die Segmente dauerhaft angesteuert.
Also nur mit Software kann ich dagegen nichts machen.

Stell Dir vor das Quarz oder der der interne RC Oszillator vom Controller fällt aus, dann bleiben irgendwelche
Segmente dauerhaft angesteuert. Das muss natürlich nicht gleich zu Schäden, könnte aber.

In deinem Projekt ist es ja eine LCD Anzeige, da tritt diesen Problem ja garnicht auf,
da fließen keine (fast keine) Ströme...

So nebenbei:
dein benutztes LCD-Dipslay gibt es jetzt bei Pollin jetzt für 10 cent zu kaufen.
Da muss man ja eigenlich zuschlagen.....
https://www.pollin.de/p/lcd-modul-philips-lph-2673-1-120103


Siro

PICture
25.04.2018, 14:55
Stell Dir vor das Quarz oder der der interne RC Oszillator vom Controller fällt aus, dann bleiben irgendwelche Segmente dauerhaft angesteuert.

Wenn du sowas Breakpoint nennst, dann hast du Recht.

wkrug
26.04.2018, 08:09
Stell Dir vor das Quarz oder der der interne RC Oszillator vom Controller fällt aus, dann bleiben irgendwelche Segmente dauerhaft angesteuert.
Ich denke mal wir reden hier von 2 Dingen.

1. Von Breakpoints für das Debugging.
Das könnte man so lösen, das man vor dem Breakpoint die Ausgangspins der Ports für die Segmenttreiber inaktiv schaltet.
A oder K der Displays sollte dabei egal sein.
Dann wird das Display bei einem Breakpoint nicht mehr angesteuert.
Nachteilig ist, das hier durch den zusätzlich eingefügten Code die anzahl der Taktzyklen nicht mehr 100% stimmt - Das sollte aber keine allzu große Rolle spielen.

2. Abschaltung des Displays bei einem Hardwarefehler / Programmhänger.
Das kann man wiederum mit einem Watchdog lösen.
Fast alle AVR Controller haben einen internen Watchdog, der mit dem Assembler Kommando WDR immer wieder zurückgesetzt werden muß.
Dieser Watchdog hat einen eigenen Oszillator und läuft somit unabhängig vom Prozessortakt.
Bei manchen AVR ist dieser Watchdog auch direkt über die Fuses aktivierbar.
Wird dieser Watchdog nicht rechtzeitig zurückgesetzt resettet er den Controller.
Auch wenn der Controller keine gültige Taktquelle mehr hat, sind dann die Portpins als Eingänge geschaltet und somit hochohmig.
Schaltungtechnisch sollten für diesen Fall passende pullup bzw. pulldown Widerstände an den entsprechenden Ports angebracht werden.
Aber das ist für die Initialisierungsphase ohnehin sinnvoll.

Noch was.
Ich hatte mal vor Jahren eine Jumbo Uhr mit 6 Stellen ebenfalls im Multiplexbetrieb gebaut.
Beim Umschalten der einzelnen Anzeigeelemente glimmten die Segmente der vorher angsteuerten Anzeige mit.
Grund war, das die Anodentreiber ( gemeinsame Anoden ) nicht schnell genug umschalteten.
Nachdem die Anoden kurz abgeschaltet und dann erst das nächste Segment angeschaltet wurde, war das Phänomen weg.

PICture
26.04.2018, 09:05
Ja, danke dir für die ausführliche Erklärung. Du hast den Nagel am Kopf getroffen. :)


1. Von Breakpoints für das Debugging.
Das könnte man so lösen, das man vor dem Breakpoint die Ausgangspins der Ports für die Segmenttreiber inaktiv schaltet.
A oder K der Displays sollte dabei egal sein.
Dann wird das Display bei einem Breakpoint nicht mehr angesteuert.
Nachteilig ist, das hier durch den zusätzlich eingefügten Code die anzahl der Taktzyklen nicht mehr 100% stimmt - Das sollte aber keine allzu große Rolle spielen.

Mir ist darauf noch ein zusätzlicher µC für Display eigefallen, der dank regelmäßigen kurzen Untebrechungen vom Hautprogramm mit Breakpoints das gewünschte permanent zeigt. Aber das wäre angeblich überkompliziert. :confused:

wkrug
26.04.2018, 10:00
Mir ist darauf noch ein zusätzlicher µC für Display eigefallen, der dank regelmäßigen kurzen Untebrechungen vom Hautprogramm mit Breakpoints das gewünschte permanent zeigt. Aber das wäre angeblich überkompliziert.
So wie Ich das sehe, hat er das Layout bereits fertig und kann / will er daran nichts ändern.

Wie gesagt, Ich hätte einfach für die Testphase den Strom durch die Anzeige auf ungefährliche Werte begrenzt, dann gäb's auch mit den Breakpoints kein Problem.
In der endgültigen Version den Strom wieder erhöhen, dann den Watchdog aktivieren und gut ist.
Auch die Watchdog Funktion könnte man überprüfen indem man einen Quarzoszillator nimmt und dann dem Controller die Taktleitung klaut, oder anderweitig den Controllertakt abschaltet.

Siro
26.04.2018, 17:29
Hallo zusammen,

schön und Danke, dass Ihr euch Gedanken macht, so gibt es immer wieder neue Details meine Schaltung
und auch Software zu überdenken.

@Picture und wkrug:
Ob Breakpoint oder Prozessorausfall spielte bei meinen Betrachtungen erstmal nicht die Rolle.
Es geht darum, Multiplexer steht. Gewollt mittels Breakpoint oder ungewollt Defekt/Ausfall jegliche Art.
Können die Display Schaden nehmen oder nicht.

Die CPU sollte natürlich generell über einen Watchdog resettet werden. Völlig richtig.

Meine CPU wird vermutlich ein LPC1347 von NXP werden, weil ich mit dem schon viel probiert habe.
Entwicklungsumgebung ist das "freie" MCPXpresso von NXP ohne Codebegrenzung. (GEIL :-)
Um einen Breakpoint zu setzen klicke ich einfach in die Softwarezeile und dann bleibt die CPU
dort auch stehen, wenn sie dort ankommt. Wenn ich jetzt jedesmal Programmcode ändern müste
um die Ports in einen sicheren Zustand zu setzten, wäre das äußerst aufwendig,
aber natürlich möglich, deshalb gibts da auch nix gegen zu sagen.

Das Layout bzw. die Schaltung ist noch nicht fertig, sondern wird grade erst erstellt,
daher ist hier noch ALLES offen. Um im Voraus aber alles (zumindest möglichst viel) abzusichern kamen dann die Gedanken über das Multiplexen,
was passiert wenn... bisher habe ich immer alles statisch betrieben über Schieberegister.
Vorteil: CPU kann stehen bleiben, nix passiert, Anzeige bleibt komplett mit letzten Daten erhalten.


Heute habe ich meine ersten 7-Segmnent Display bekommen und schon einiges getestet und auch neue Probleme erkannt.

Zunächst mal habe ich 7-Segment Anzeigen Zeichenhöhe 14,2mm vom Typ SC56-11GN sowie
die etwas kleineren SC52-11GN aufs Steckbrett gesetzt und mir die Segmente mit verschiedenen Strömen mal angeschaut.

Bei 500µA kann man die Segemte schon schwach erkennen,
bei 1mA gut lesbar.
Bei ca. 5mA würd ich sagen supi.
bei 6-10mA wirds noch heller, aber unnötig würde ich sagen.
Bei 10 bis 20mA tut sich nicht mehr so viel außer Leistung verbrutzeln.

Somit benötige ich hierbei doch weniger Strom als zunächst erwartet.

Dann habe ich noch größere Anzeigen vom Typ SA10-21GWA Zeichenhöhe 25mm sowie SA15-11GWA Zeichenhöhe 38,1mm besorgt
"Common Anode"
Hier kommt jetzt das Problem, dass ich meine "Anoden" Transistoren nicht mehr durchgeschaltet bekomme.
Die CPU liefert ja nur 3,3 Volt Signale.
Durch den Spannungsabfall von 2 grünen LEDs in Reihe für ein einzelnes Segment, plus die Basis Emitter Strecke des Transistors komme ich
auf 2,2 + 2,2 + 0,6 = 5 Volt. Bei 3,3V vom Prozessor geht das natürlich nicht mehr.

So benötige ich also noch einen Pegelconverter.
Ich hab das schonmal skizziert:
33431
Vled kann nun auch wesentlich höher sein als 3,3 oder 5Volt.
Schalten tuts dann trotzdem ab ein High Pegel von ca 0.6 Volt.

Durch die wesentlich geringeren Segmentströme als erwartet rückt das eigentlich Problem der Überhitzung
aber glücklicherweise weiter in den Hintergrund.

Jetzt verstehe ich auch, wie andere Projekte mehrere Anzeigen direkt an einen PIC Controller Ausgang betreiben.
Die Ausgänge vom PIC können ja nur bis zu 25mA liefern.
Wenn ich nur 4mA fließen lasse, kann ich ja bis zu 6 Anzeigen betreiben.

Die Zeiten mit 20mA pro LED sind glücklicherweise vorbei, mir wird jetzt einiges klarer...;)

Siro

wkrug
26.04.2018, 18:06
Wenn Dir der Strom nicht reicht, kannst Du natürlich auch zusätzliche Darlington Arrays verwenden.
Für die Seite nach GND z.B. ULN 2803 ( 8 Darlington Arrays ).
Für die High Side UDN2981 ( 8 High Side Treiber ).
Lassen sich beide mit TTL Pegel ansteuern und machen die Betriebsspannung der Segmente unabhängig von den Controller Stromversorgung.

Für meine 10cm Led Segmente hab ich auf der Low Seite die ULN's verwendet.
Die High side hab ich noch über einzelne Transistoren angsteuert.
Den UDN2981 kannte ich zu der Zeit noch nicht.

Da Du ja 15 Displays ansteuern willst, wäre es eventuell möglich einen High Side Treiber für jeweils 2 Segmente zu verwenden.
Und die Low Side mit 2*ULN2803 auszustatten.
Nachteilig ist dabei natürlich, das man dazu 24 Prozessorpins braucht ( 8*High Side, 2*8*Low Side [ 7+Dezimalpunkt ] ).

Das Multiplexing leg ich gerne in einen Timer Interrupt, damit läuft das unabhängig vom Hauptprogramm.

PICture
26.04.2018, 18:15
Um im Voraus aber alles (zumindest möglichst viel) abzusichern kamen dann die Gedanken über das Multiplexen, was passiert wenn... bisher habe ich immer alles statisch betrieben über Schieberegister.
Vorteil: CPU kann stehen bleiben, nix passiert, Anzeige bleibt komplett mit letzten Daten erhalten.

Bingo ! :) Das ist von mir gedachter zweiter µC, aber optimal, weil viel einfacher.

Ceos
26.04.2018, 18:15
noch ne verrückte idee, ein resetable-monoflop als sicherung

wenn das monoflop nicht resettet wird, schaltet es nach .... was weis ich ... 20mS .... die versorgung frei

der reset hängt dann immer hinter dem letzten segment oder mit an einem segment dran

wenn der controller also nicht mehr multiplext, läuft das monoflop aus und kappt den strom

Siro
26.04.2018, 19:47
@wkrug:
Für die Kathoden habe ich mir schon die ULN2803 gleich mit besorgt,
Genau so war auch mein Plan.

Die Highside Treiber 2981 habe ich mir auch schon angesehen.
aber da wunderte (störte) mich die Sättigungsspannung von typisch 1,6 bis 2,0 Volt

Wenn meine grünen LEDs schon 4,4 Volt brauchen und dann die CE-Strecke auch nochmal 1,6 Volt
dann geht das nicht mehr mit VLED an 5Volt. Da fehlt mir 1 Volt....
Ansonsten wär das ne super Sache.

Den Chip gibst auch von Maxim MIC2981 aber auch VCE(sat) 1,7 bis 2,2Volt.
Warum bauen die da keinen P-Channel MOS sondern einen Darlington Bipolar rein ???
NPN und dann nen P-MOS dann hab ich den vollen Spannungshub.
Sättigung (Spannungsabfall DS) läge dann im Millivolt Bereich.
Gibt es sowas noch nicht ?

@Ceos:
Die Idee mit dem Monoflop hab ich schon im ersten Thread mit Schaltbild gezeigt.
Ich fand das auch super, da kann dann wirklich nichts mehr schief gehen.

Siro

Ceos
26.04.2018, 20:05
war mir nicht aufgefallen, sorry fürs ignorieren :P

vor allem geht das schon stark in richtung funktionale sicherheit XD kann man nie früh genug mit anfangen

Siro
26.04.2018, 20:36
@Ceos,
kein Problem Ceos, ist mir auch schon passiert.
Hast aber recht, ich komme nämlich aus der Medizintechnik und da spielt sowas auch immer eine Rolle.
Thema Risikoanlayse
Überträgt sich dann automatisch auch in den Privatgebrauch.:)

Ich hab das mit dem P-Mosfet und einem NPN grad mal aufgebaut. Das funzt natürlich SUPER
33433
Okay, der Mosfet ist jetzt "ETWAS" überdimensioniert...;)

Siro

Siro
27.04.2018, 11:12
Es sollten nun alle Probleme gelöst sein.
So sollte das funktionieren. Die rechten 2 Digit sind die Anzeigen mit je 2 LEDs pro Segment.
Links 4 stellig mit je 1 LED pro Segment.

33434

Dann wünsche ich euch allen ein schönes Wochenende.
Siro

wkrug
27.04.2018, 12:18
Bei den Anodentreibern würde ich lieber eine 2 Transistor Lösung nehmen.
Ansonsten geht Dir 0,7V duch die B-E Strecke des Transistors + die Spannungsverluste im Controller verloren.
Wie wärs mit einer BC237 + FET Lösung?
Es gibt auch Dual Fet's im SOT 8 Gehäuse.

Klebwax
27.04.2018, 12:30
Es sollten nun alle Probleme gelöst sein.
So sollte das funktionieren. Die rechten 2 Digit sind die Anzeigen mit je 2 LEDs pro Segment.
Links 4 stellig mit je 1 LED pro Segment.

33434

Wozu jetzt noch das Monoflop drin ist, nachdem klar ist, daß selbst im Stillstand des Multiplexers die 20mA pro Segment nicht überschritten werden, erschließt sich mir nicht ganz.

Ich würd auch noch den COM Anschluß des 2803 auf ein hohes Potential lagen, um Querströme über die Dioden zu vermeiden.

MfG Klebwax

Siro
27.04.2018, 12:39
Das Monoflop samt T1 und T2 kann sicher entfallen, dann wird lediglich R5 mit 0 Ohm bestückt.
Ich wollte es sicherheitshalber erstmal drauf lassen.

Den COM Anschluss wuste ich nicht recht wohin damit, es gibt ja keine Induktivitäten, aber hast recht Klebwax den kann ich auch auf VLED legen.

Siro

PICture
27.04.2018, 13:21
Ich vestehe dich wirklich nicht. Nur als Beispiel: warum werden einzelne Zeichen und nicht ganzes Display geschaltet ?:- |

Siro
27.04.2018, 13:44
@Picture:
Ich kann die Display natürlich auch mittels Schieberegister und dann statisch betreiben, so hab ich das bisher immer gemacht.
Der Sinn war eigentlich, dass ich Bauteile (Platinenfläche) sparen wollte.

Bei dem letzen Post des Schaltbilds benötige ich schonmal 6 Stück 8 Bit-Schieberegister.
Mit jedem Digit dann eins mehr. Daher die Idee mit dem Multiplexen.

Ich habe aber grad einen neuen Chip gefunden der sogar schon die Stromquellen mit drin hat:
TLC5916 scheint quasi nen 595 Schieber mit eingebauten Stromquellen sein,
sieht wirklich interessant aus und einstellbar ist der Strom wohl auch noch.
Auf jeden Fall ein sehr interessanter Chip.

Siro

PICture
27.04.2018, 15:26
Danke für deine Erklärung, jetzt ist alles klar. :) Sorry, ich bin leider ein Minimalist geblieben, der für Multiplexing von n Displays mit Punkt immer nur 8 + n Leitungen verwendet hat.

MacMike
01.05.2018, 18:07
Das hast Du glaube ich nicht richtig verstanden PICture.
Es geht ja darum wenn die Software stehen bleibt.

Das multiplexen muss natürlich immer in einer Schleife, bzw. im Timerinterrupt laufen.
Aber wenn die Software anhält, egal wo, dann bleiben halt die Segmente dauerhaft angesteuert.
Also nur mit Software kann ich dagegen nichts machen.

Stell Dir vor das Quarz oder der der interne RC Oszillator vom Controller fällt aus, dann bleiben irgendwelche
Segmente dauerhaft angesteuert. Das muss natürlich nicht gleich zu Schäden, könnte aber.

In deinem Projekt ist es ja eine LCD Anzeige, da tritt diesen Problem ja garnicht auf,
da fließen keine (fast keine) Ströme...

So nebenbei:
dein benutztes LCD-Dipslay gibt es jetzt bei Pollin jetzt für 10 cent zu kaufen.
Da muss man ja eigenlich zuschlagen.....
https://www.pollin.de/p/lcd-modul-philips-lph-2673-1-120103funk (http://schnurloses-telefon-abc.de/)


Siro

hab ich auch gebraucht genommen.. klappt super