Hi,
auf meiner Platine habe ich eine 7 Segmentazeige in Blau (20mA, 3.7V,
gemeinsame Anode).
Die Anode der Anzeige ist mit dem Collector eines PNP- Transistors
(BC856) verbunden.
Die Basis des Transistors ist über einen 4,7K Ohm Widerstand mit einem
CPLD verbunden. IO-Spannung des CPLD ist 3,3V. Der Emitter liegt an
3.3V.
Die Segmentleitungen (A bis G) sind ebenfalls über 100 Ohm Widerstände
mit dem CPLD verbunden. So weit funktioniert auch alles.
Nur sind die Segmente der Anzeige ein wenig dunkel.
Gibt es da eine Möglichkeit dies zu ändern?
Vielen Dank & liebe Grüße
marc
Hi,
also meine Frage war ernst gemeint. Widerstände kleiner ist schon klar.
Nur in wie weit verkraftet der CPLD das? Ist ein XL Type.
Also das mit dem Messer habe ich mal versucht. Von dem kleiner 0805er
ist leider nur ein kleines Häufchen über geblieben.
gruß
Hi,
das war schon klar das keine 20mA fliessen werden können. Ich dachte die
Anzeigen würden auch mit weniger noch ausreichend leuchten. Aber das die
so dunkel sind dachte ich dann nicht. Gibt es eine Möglichkeit die
wenigstens noch ein bisschen heller zu bekommen?
Gruß
marc
Ist der CPLD 5V-tolerant, respektive bietet er 5V-fähige
OpenDrain-Anschlüsse? Wenn ja, dann die Displayverschaltung mit 5V
speisen, das gilt auch für die Ansteuerung der BC856. Ansonsten bleibt
nur die Verwendung von grünen oder roten Displays. Oder komplett externe
Leistungstreiber verwenden - mit 5V-Versorgung.
Gruß
Jadeclaw.
du kannst doch + mit nem logic level Fet schalten und an - ULN Treiber
ran. Dann muß dein CPLD nix treiben udn du kannst für die Leds z.B. 5V
oder was halt da ist benutzen.
Also wenn ich den Widerstand vor einer LED berechne, dann geht das in
der regel doch so:
Rled=(Vcc-Vled)/Iled
In Deinem Fall also Rled=(3.3V-3.7V)/.02A=-20R
Du musst also einen -20R Widerstand einsetzen und schon wird das Display
mit optimaler Helligkeit betrieben...
Lösung A:
Du erfindest eine negativen Widerstand und verdienst einen Nobelpreis
Lösung B:
Du akzeptierst einen geringen Helligkeitsverlust und setzt einen Treiber
aus der ULN-Serie zwischen die Segmente und das CPLD und verringerst die
Widerstände auf einen Wert, der lediglich der Verhinderung von Sauereien
auf der Versorgung dient, also etwa 10R.
Lösung C:
Gibt es nicht, hättest Du aber finden können, weil es extra unter dem
Titel "XAPP805 - Driving LEDs with Xilinx CPLDs" eini PDF gibt, dass das
Ansteuern von LEDs mit Xilinx CPLDs erklärt und man darin auch gleich
sehen kann, dass die Dinger nur 8mA pro Pin / Sink abkönnen.
Ich schlage Lösung B vor oder Du experimentierst mal mit einer
Versorgung von 5V allein für das Display und Widerstände für 8mA.
Eventuell bekommt Deine Schaltung ja eine konstante Spannung vor Deinem
Regler, die 5V+3.7V=8.7V nicht überschreitet, dann kann das CPLD mit
Vorwiderstand direkt das Display treiben ( aber nur mit max 8mA) oder
man setzt noch einen ULN dazu und hat die vollen 20mA zur Verfügung.
Gruß, Ulrich
@ marc (Gast)
Messe erst nochmals die spannung bei einen angesteuerten segment
an der Anode und segment.
Es werden vieleicht nur 3-3,1 V sein.
datenblatt lesen welche leuchtstärke dann max möglich ist.
alle segmente an ,auch messen( nur zum vergleich)
der Weg ist das ziel.
(besser U=5V)
MfG
vereinfacht gesagt :
Der ULN ist so eine Art Treiber ("Verstärker"), der die kleine Spannung
und Strom vom CPLD als Eingang hat und als Ausgang richtig Power hat.
Darum hat er auch eine eigene Stromversorgung.
Die Is sind die Eingänge, die Os die Ausgänge.
Schau Dir mal das Datenblatt an, es ist leider für Anfänger ein bißchen
schwer zu verstehen.
im beitrag von Ulrich P. wurde alles gesagt.
um das ganze noch zuretten (???? ohne große hardware änderung ???????)
würde ich einen spannungwandler beschaffen der aus den
3,3V 5V erzeugt. dann eine z-diode(2,4V) in die basis-leitung schalten,
sonst sperrt der tansistor nicht mehr oder er zerstört sogar
die schaltung davor(µc?).
die segment-vorwiderstände neu berechnen
und austauschen (formel ist auch schon da)
oder wirklich einfach eine ROTE anzeige wählen!!!!!
Ok, ein Stufe langsamer, aber im grunde ist alles gesagt:
Die Anzeigen haben gemeinsame Anode, d.h. hier kann jeweils ein eigener
Transistor genommen werden um bei einem Multiplex-Verfahren eine Stelle
aktiv zu schalten.
Die Kathoden werden ja von allen Stellen parallel geschaltet. D.h. hier
müssen 8 Transistoren (7 ohne Dezimalpunkt) den Strom, der über die
aktive Anode und das zu aktivierende Segment herein kommt, nach GND
ableiten.
Anstatt nun einzelne Transistoren einzusetzen, weil das CPLD nicht genug
Strom schalten kann, kann man eben einen passenden ULNxy einsetzen, der
bereits den Transistor nebst passender EIngangsbeschaltung für TTL/CMOS
beihaltet, es spart also die Transistoren und die nötigen Vorwiderstände
für selbige.
Naja, wenn man mal nach DCF77 oder Digitalwecker oder so googelt, dann
findet man diese Art Beschaltung massenweise. Du musst dann nur die
darin eher vorhandenen Microcontroller gegen das CPLD tauschen und die
Software anstatt in Assembler oder C eben in VHDL oder Verilog
programmieren.
Merke: Blaue LED + 3.3V != Einfach
Gruß, Ulrich
Weiter oben steht:
"wenn die anzeige eine flussspannung von 3,7V hat und du dem ganzen nur
3,3V -0.1 UCE anbietest, werden keine 20mA fliessen können!"
"Hi,
das war schon klar das keine 20mA fliessen werden können. Ich dachte die
Anzeigen würden auch mit weniger noch ausreichend leuchten. Aber das die
so dunkel sind dachte ich dann nicht. Gibt es eine Möglichkeit die
wenigstens noch ein bisschen heller zu bekommen?"
=> Restlichtverstärker ?
Gruss
Nicht_neuer_Hase wrote:
> wenigstens noch ein bisschen heller zu bekommen?">> => Restlichtverstärker ?
:-)
Könntest du mal vorbeikommen und das Cola von meinem Monitor
wischen, dass ich da in ganz kleinen Tröpfchen versprüht habe?
Ich setzte ab und zu mal blaue LED's mit 3.3V ein. Es gibt auch welche
mit kleinerer Flussspannung, aber die sind halt was teurer. bis 3V
Flussspannung geht noch rel. gut.
Gruss
Hi,
so ich war jetzt erstmal krank. Grippe :-(
Mit der Gefahr das ich gleich wieder "Gesteinigt" werde ;-), anbei der
überarbeitete Schaltplan des gesamnten Projekt.
Wär nett wenn ihr mal drüber gucken würdet.
Gruß & Danke
marc
Hi,
sorry. war nicht böse gemeint mit dem "Steinigen". Ich weiss doch ihr
wolltet mit alle nur helfen. Das finde ich auch gut. Respekt an euch
dass ihr euch die Ziet dafür genommen habt. Vielen Dank. Ohne euch würde
ich bestimmt immer noch über einer Lösung grübeln. So habe ich jetzt
erstmal meinen Schaltplan überarbeitet (s. einen Post über diesem) und
lasse dann eine neue Platine fertigen.
Gruß
Von ner gemultiplexten Anwendung war hier bisher nicht die Rede.
Lösungsvorschläge:
-für jedes Display ein Latch vorsehen welche auch den Segmentstrom
schafft.
-Wenn keine Latch zur Verfügung stehen, kann man auch
Latch-7-Segment-Dekoder
nehmen und die dann latchen.
-Alternativ das Impuls/Pausen-Tastverhätniss ändern (Bringt
wahrscheinlich
nichts,trotzdem wollte ich es nicht unerwähnt lassen).
-Blaue Pexiglasscheibe auf das Displays montieren die den Kontrast
verbessert.
-Betriebspg. für die Display`s erhöhen (wie hier schon gepostet)
(Dann werden Vorwiderstände für die Segment vonnöten sein.)
>Die Latches wären dann statt der Transistoren?
Ne, für die Segmentleitungen für jedes Display.
Während der CPLD den Multiplex durchführt und die Latches refresht
würden die Latches direkt über Vorwiderstände(falls erforderlich)
die Displays direkt treiben.
Damit wäre das Multiplexen zwar eigentlich unnütz, es sei denn
man hätte keine Schaltungsresourcen mehr zur Verfügung.
Man spart durch das Multiplexen also nur Verdrahtungsaufwand.
Man kann auch den CPLD unter Ausnutzung seiner Resourcen ihn
mit dem direkten treiben der Displays beschalten. Evtl. über ext.
Treiberbausteine bei Wärmeproblemen.
Man sollte vlcht erstmal eine zufriedenstellende Leuchtstärke
der Display durch Änderung der Signale herbeiführen um dann
ein gescheite Lösung zu finden.
Empfehlenswert scheint mir die Betriebspannungsproblematik und die
Multiplexproblematik mal genauer zu untersuchen. Vor allem das
zeitliche Signalverhalten im Verhältniss zur Leuchtstärke scheint
mir noch klärungsbedürftig, könnte also etwas bringen.
Am einfachsten wäre ein einzelnes Display über einen Treiber
per Funktionsgenerator anzusteuern, sowohl in der Frequenz, wie
auch im Impuls/Pausen-Verhältniss die Leuchtstärke zu begutachten
und aus den gewonnenen Erkenntnissen die Schaltung dann zu optimieren.
Wenn kein Funktionsgenerator zur Verfügung steht kann man mit nem
555 auch schnell mal eine Funktionsschaltung zusammenbasteln.
Ne brauchbare Schaltung gibt`s bestimmt im Web. Wenn an den
Transistoren nur wenig Spg abfällt kannste die so lassen oder
benutze Fet`s mit geringeren Spg.-abfall. Unter Umständen zählt jedes
mV.