Forum: Mikrocontroller und Digitale Elektronik Siebensegmentanzeigen-Ansteuerung: Warum macht das keiner so?


von Иван S. (ivan)


Lesenswert?

Hallo Bastlerkollegen,

in einer Neuauflage eines SMD-Reflowofen-Bastelprojekts werde ich zur 
Ausgabe diverser Datenwerte (z.ß. Soll- und Isttemperatur) cirka 20 
rote, grüne und auch gelbe Siebensegmentanzeigen einsetzen.

Die Daten werden natuerlich von einem Mikrocontroller bereitgestellt, 
die Auswahl des aktiven Siebensegmentbausteins geschieht unter 
Zuhilfenahme eines 16-aus-4-Decoderchips. Die anzuzeigenden Daten werden 
parallel übertragen; hier wollte ich ursprünglich einen 
BCD-zu-7Segment-IC einsetzen, jedoch war bei den ersten Gedanken an das 
Projekt ja auch nicht an Textausgabe zu denken, inzwischen soll es noch 
benutzerfreundlicher werden ;-)

Wie dem auch sei, die übertragenen Daten werden sogleich in einem 
74LS373 gelatcht. Jede Anzeige bekommt ihr eigenes Latch-IC, von 
multiplexen halte ich bei einem Ofenprojekt mit über einem kW 
Anschlußleistung nicht viel - hier beim vergleichsweise geringem 
Anzeigestrom sparen zu wollen grenzt meiner Meinung nach an 
Vermessenheit.

Jedenfalls habe ich vor, jedes einzelne Segment vom Latch aus mittels 
eines geeigneten Transistors der Bauform SOT-23 vom Latch aus 
anzusteuern, da das Latch zwar einen geeigneten Basistrom dazu liefern 
würde, für die direkte Speisung der Anzeigen jedoch dann doch etwas zu 
schmalbrünstig ist.

Nun endlich komme ich auch zu meiner Frage: Warum macht das niemad so? 
Ich habe diverse aufbauten gesehen, wo nur der gemeinsame Anschluß (egal 
ob Anode oder Kathode) eines Anzeigebausteins mittels Transistor 
angesteuert wurde, jedoch scheint es wenige Menschen zu geben, die sich 
einen Transistor für jedes einzelne Segment gönnen. Hat dies nur 
irrationale Gründe oder übersehe ich bedeutende schaltungstechnische 
Schwierigkeiten, die es im Vorfeld eliminieren zu gilt?

Lieber Gruß und Dank im Voraus,
Iwan

von Gast (Gast)


Lesenswert?

>Warum macht das niemad so?

Weil es Blödsinn ist?

von Michael U. (amiga)


Lesenswert?

Hallo,

bei der größe des Projektes würde ich wohl in 3x MAX7221 investieren und 
passende Anzeigen dazu nehmen...

Gruß aus Berlin
Michael

von Sigint 112 (sigint)


Lesenswert?

Иван S. wrote:
 Jede Anzeige bekommt ihr eigenes Latch-IC, von
> multiplexen halte ich bei einem Ofenprojekt mit über einem kW
> Anschlußleistung nicht viel - hier beim vergleichsweise geringem
> Anzeigestrom sparen zu wollen grenzt meiner Meinung nach an
> Vermessenheit.

Du hast nicht den Sinn des Multiplexens verstanden. Man versucht nicht 
damit Strom zu sparen, sondern Bauteile. Eine gemultiplexte Anzeige 
benötigt viel weniger Bauteile als eine statische Anzeige. Bei ein paar 
7-Segmentanzeigen ist das vielleicht noch uninteresannt... aber bei 
einem Dotmatrixmodul macht das schon einen großen Unterschied.

Gruß,
  SIGINT

von Michael H* (Gast)


Lesenswert?

> Jedenfalls habe ich vor, jedes einzelne Segment vom Latch aus mittels
> eines geeigneten Transistors der Bauform SOT-23 vom Latch aus
Im Normalfall reicht der Strom aus dem Gatter doch aus, um ein Segment 
zu betreiben. Es müssen ja nicht die vollen 20mA sein - gerade dann 
nicht, wenn noch ein optisches Filter (aka. buntes Glas=) davorsitzt.
Und das Multiplexen spart einfach Bauteile und damit Platz und Geld.
Merke: Was in C nicht geht, muss gelötet werden.

Warum eigentlich lauter diskrete Treiber und keinen ULN2803? Das seh ich 
von hier aus schon, dass der wunderbar auf deine Platine passt ^^

Grüße, holli

von Klaus (Gast)


Lesenswert?

Also, 74LS373, das ist Steinzeittechnik.
Zumindest "HC" Technik sollte es sein.
Wenn man "low current" Anzeigen nimmt, die mit 2 mA ordentlich leuchten, 
spricht nichts dagegen, eine non-Mux Lösung zu machen.
Allerdings dann von den HC-Latches direkt die Segmente ansteuern, dafür 
sind keine Transistoren nötig (aber jeweils Widerstände).
Vom Verdrahtungsaufwand geschickter sind die bekannten Schieberegister 
74HC595, mit nur 3 durchlaufenden Ansteuerleitungen und ohne 
Adressdecoder und weitere Logik zu verwenden (für beliebige 
Stellenzahl).
Die Software muss dann zwar seriell ausgeben, aber die Routine ist 
einfach erstellbar.
Beispiele zuhauf durch Suche hier um Forum nach 74hc595 .
Für jedes Segment (7+DP) wird eines der 74hc595 sowie 8 Widerstände bzw. 
2x 4er Netzwerk-R (8-Pin, Einzelwiderstände) benötigt.
Alles aus z.B. 5 Volt versorgen ; max. Summenstrom bei Netzteilauslegung 
beachten; Pufferkondensatoren 100nF an jedem IC und zusätzlich 2x 100uF 
Elko auf der Anzeigeplatine.

von gast (Gast)


Lesenswert?

Vielleicht hat der Benutzer einen ARM oder ähnliches, was keine Leds
treiben kann.

von Иван S. (ivan)


Lesenswert?

Hallo nochmal,

erstmal vielen Dank für eure bisherigen Beiträge und Denkanstöße, 
einiges hat mir auch bei einer so simplen Thematik wie der Ansteuerung 
einiger Siebensegmentanzeigen neue Horizonte offenbart; außzugsweise 
möchte ich hier einiges zitieren (Etwaige Rechtschreib- und 
Verständnisfehler verzeihe man mir bitte zu dieser Zeit ob des 
übermässigen Bierkonsums):

Michael H. schrieb (zum Latching-Thema und zu den Transistoren):
> Im Normalfall reicht der Strom aus dem Gatter doch aus, um ein Segment
> zu betreiben. Es müssen ja nicht die vollen 20mA sein - gerade dann
> nicht, wenn noch ein optisches Filter (aka. buntes Glas=) davorsitzt.

Lieber Holli, ich habe mir nochmal das Datenblatt meines 74LS373 von TI 
durchgelesen, je mehr ich darüber nachdenke, desto mehr verwirrt es 
mich: Ich verwende (größtenteils) Bausteine mit gemeinsamer Kathode. Der 
373 gibt als High-Pegel nominell 5V aus, allerdings sagt das Datenblatt 
auch, daß dar High-Level-Output-Strom -2,6mA betragen würde. Davon 
abgesehen daß 2,6mA bei weitem zu wenig für meine Anzeige wäre frage ich 
mich, woher dieses Minus kommt - der Ausgang ist Positiv aber eine 
Stromsenke? Hier steige ich aus! Bei Low würde der Baustein zwar 
"brauchbare" 24mA (hier jedoch positiv) liefern, jedoch nur bei einer 
maximalen Spannung von 0,4V - definitiv zu wenig für meine Segmente.
Je mehr ich darüber nachdenke, desto eher scheint es mir, ich hätte ein 
ungeeignetes Latch im Lager. Hast du eventuell ein geeignetes Latch im 
Kopf, das bei High 3,3 oder 5 Volt an den Ausgang legt und einen Strom 
von rund 20mA treiben könnte (in die richtige Richtung), also ein 
Verhalten an den Tage legen würde welches auch der unerfahrene Anwender 
erwarten würde?

> Warum eigentlich lauter diskrete Treiber und keinen ULN2803? Das seh ich
> von hier aus schon, dass der wunderbar auf deine Platine passt ^^

Stimmt, soetwas würde prima passen. Ich möchte hier jedoch meine kleinen 
NPN-Transistoren in SOT-23 verbauen, da ich sonst eigentlich wenig 
Verwendung an dieser Restmenge, welche im übrigen zufälliger Weise - und 
darum setze ich sie hier auch ein - der benötigten Stückzahl entspricht.

Sigint 112 wrote (zum Multiplexen):
> Du hast nicht den Sinn des Multiplexens verstanden. Man versucht nicht
> damit Strom zu sparen, sondern Bauteile.

Hallo SIGINT, eigentlich wollte ich anfangs multiplexen um Leitungen zu 
sparen, darin sehe ich den primären Vorteil. Allerdings wollte ich zu 
Beginn auch nur Zahlenwerte darstellen, damit hätte nämlich ein 8 Bit 
breiter Bus genügt: Einen 16-aus-4-Decoder zur Adressierung und ein 
BCD-zu-Siebensegment-IC für die Ansteuerung der Segmente. Jedoch wollte 
ich immer mehr Funktionalität in das Gerät bringen, jetzt benötige ich 
schon zwei 16-aus-4-Decoder zu Adressierung und will sowiso 
Alphanumerisch ausgeben können, brauche also schon zwei Ports.

> Eine gemultiplexte Anzeige benötigt viel weniger Bauteile als eine
> statische Anzeige.

Die paar Latches, wohlgemerkt Centartikel, die sowiso früher oder später 
weg müssen, machen das Kraut auch nicht mehr fett. Ohne auf eine 
serielle Übertragung umzusteigen bringt mir das Multiplexing auch keinen 
Verdrahtungsvorteil mehr, weswegen ich mich im Endeffekt auch dazu 
entschlossen habe, es doch statisch zu implementieren.

> Bei ein paar 7-Segmentanzeigen ist das vielleicht noch uninteresannt...
> aber bei einem Dotmatrixmodul macht das schon einen großen Unterschied.

Klar, bei einem Punktmatrix-Modul würde auch ich multiplexen. Aber eben, 
wegen den paar Anzeigen, bei denen es keinen ersichtlichen Vorteil 
gibt...

gast wrote:
> Vielleicht hat der Benutzer einen ARM oder ähnliches, was keine Leds
> treiben kann.

Hallo gast, als Controller gedenke ich einen MSP430 - derzeit meine 
Lieblingscontroller-Familie - einzusetzen.

Klaus wrote:
> Also, 74LS373, das ist Steinzeittechnik.

Hallo Klaus, wenn man damit argumentiert könnte man gleich von der 
Verwendung der Logikreihen zurückschrecken. Allerdings könntest Du schon 
recht haben, immerhin bin ich selbst schuld, da ich mich zu schlecht 
informiert hatte, bevor ich eingekauft hatte. Der wesentlich geringere 
Preis des LS gegenüber dem HC hatte mich an diesem Tag soweit geblendet, 
daß ich es auch nicht mehr der Mühe wert gefunden hatte, mich in die 
grundelegenden Unterschiede der Technologien, geschweige denn in die 
Datenblätter, einzlesen.

> Zumindest "HC" Technik sollte es sein.

Gehe ich recht in der Annahme, daß beim 74HC373 der Strom auch mit 
"richtiger" Polarität ausgegeben wird? Immerhin finde ich nirgends eine 
negatives Vorzeichen beim Output-Current in den Datenblättern der 
Hersteller. Anscheinend habe ich einfach in die falsche Technologie 
investiert (=Lehrgeld).

> Wenn man "low current" Anzeigen nimmt, die mit 2 mA ordentlich leuchten,
> spricht nichts dagegen, eine non-Mux Lösung zu machen.
1
SELECT "MANUFACT","MANUCODE","DESCR","CASE","IMAX" FROM ECOMPONENTS WHERE "TYPE" LIKE '7SEGMENT';
2
  MANUFACT  |  MANUCODE   |    DESCR     |   CASE           | IMAX
3
------------+-------------+-----------------------------------------------------
4
 KINGBRIGHT | SC56-11GWA  | 7-Segment LED-Display, Common C, green, 0,56in           
5
                        (14,2mm), 2,2mcd | THT-UNDEF/RM2.54 | 0,02
6
 KINGBRIGHT | SC56-11SRWA | 7-Segment LED-Display, Common C, HE-red, 0,56in
7
                        (14,2mm), 5,6mcd | THT-UNDEF/RM2.54 | 0,03
8
 AVAGO      | HDSM-281F   | 7-Segment LED-Display, Common A, yellow, 0,28in
9
                         (7,0mm), 8,0mcd | SMD-UNDEF/RM1.27 | 0,025
Also nicht gerade Stromspar-Varianten. Aber man gönnt sich ja sonst 
nichts, also werde ich auch hier nicht multiplexen.

> Allerdings dann von den HC-Latches direkt die Segmente ansteuern, dafür
> sind keine Transistoren nötig (aber jeweils Widerstände).

Die passenden Vorwiderstände habe ich natürlich. Mein lokaler 
Elektronik-Dealer war so freundlich, mir einen 180R-1000er-Streifen für 
einen Fünfer zu überlassen, die sollten passen.
Ausserdem habe ich wieder einigermaßen günstige 373-Latches bei meinem 
Hausdistributor gefunden, diesmal in HC. Allerdings vermag dieser nur 
6mA zu liefern, ich werde also doch in den Genuß kommen, meine 
Transistoren einsetzen zu können.

> Vom Verdrahtungsaufwand geschickter sind die bekannten Schieberegister
> 74HC595, mit nur 3 durchlaufenden Ansteuerleitungen und ohne
> Adressdecoder und weitere Logik zu verwenden (für beliebige Stellenzahl).

Dieses bekannte Schieberegister war mir persönlich nicht bekannt, in 
Zukunft werde ich diesen nützlichen Baustein bei solchen Vorhaben jedoch 
sicher berücksichtigen. An einem verregneten Wochenende im Sommer werde 
ich mich mal genauer mit den Logikreihen befassen, da ich vermute, daß 
dort noch weitere Schätze aller Art auf mich warten würden.

> Die Software muss dann zwar seriell ausgeben, aber die Routine ist
> einfach erstellbar.

Das wäre wohl das geringste Problem, ein freier Pin zum Bit-Banging 
findet sich wohl in den meisten Fällen.

Michael U. wrote:
> bei der größe des Projektes würde ich wohl in 3x MAX7221 investieren und
> passende Anzeigen dazu nehmen...

Hallo Michael, der Baustein sieht interessant auch, auch den kannte ich 
bis dato nicht. Schade, daß er von MAXIM ist, da weiß man leider nie, ob 
und wenn ja, wie lange etwas beschaffbar ist. Vermutlich gibt es solche 
ICs jedoch auch von anderen Herstellern und auch für Leuchtelemente mit 
gemeinsamer Anode; für spätere Projekte werde ich soetwas vermutlich 
bestgimmt früher oder später einsetzen. Danke für den Tip.

Gast wrote:
>> Warum macht das niemad so?
> Weil es Blödsinn ist?

Ach, und warum? Zwar hast Du als Erster geantwortet, der 
Informationsgehalt deiner Mitteilung konvergiert jedenfalls stark gegen 
Null.

Die anderen Schreiber haben mir mitgeteilt - zumindest habe ich das so 
aufgefasst - daß mein Vorhaben so abwegig gar nicht ist. Prinzipiell 
glaube ich daher, auf dem richtigen weg zu sein.

Hier also mein ausdrücklicher Dank an die Kollegen, die mir 
weitergeholfen, meinen Horizont erweitert und auch alternative 
Lösungswege vorgeschlagen haben.

Gruß aus dem OOE-Zentralraum,
Iwan Lokomofeilowitsch

von Katapulski (Gast)


Lesenswert?

@Iwan

OT:
Deine gestelzte Ausdrucksweise bläht Deine Texte ziemlich auf. Das ist
die Kunst, mit vielen Worten nichts zu sagen, wie sie auch von 
Politikern
und VWL/BWL-"Spezialisten" gepflegt wird.

Weniger weitschweifig wäre mehr...

gez. Katapulski

von Eddy C. (chrisi)


Lesenswert?

Tipp an Иван S.

bevor Du lange rätselst: Mache mal einen Versuch und betreibe ein 
Segment mit 5mA. Du wirst staunen. Damit passt die Vorgehensweise auch 
wieder mit dem direkten Anschluss an das HC-Latch.

Wegen ein paar mA hin oder her tut eh keiner rum. Du musst bedenken, 
dass die Stromentnahme eines Logikbausteins so angegeben wird, dass die 
Logikpegel für nachfolgende Logikbaugruppen innerhalb der Spec liegen. 
Was aber Du da anschliesst, merkt den Unterschied nicht.

Allerdings hast Du Dich ja bereits mit Material eingedeckt. Gemeinsame 
Kathode heisst dann aber PNP-Treiber.

von Axel G. (axelg) Benutzerseite


Lesenswert?

Katapulski wrote:
> @Iwan
>
> OT:
> Deine gestelzte Ausdrucksweise bläht Deine Texte ziemlich auf. Das ist
> die Kunst, mit vielen Worten nichts zu sagen, wie sie auch von
> Politikern
> und VWL/BWL-"Spezialisten" gepflegt wird.
>
> Weniger weitschweifig wäre mehr...

So verschieden können Menschen sein. Ich freue mich darüber, wenn sich 
hier mal jemand die Mühe macht zu formulieren.
Und "Gruß aus dem OOE-Zentralraum" gefällt mir sowieso :)

Axel

von Michael H* (Gast)


Lesenswert?

Иван S. wrote:
> Michael H. schrieb (zum Latching-Thema und zu den Transistoren):
> abgesehen daß 2,6mA bei weitem zu wenig für meine Anzeige wäre frage ich
Da gibts es einige Anzeigen, die damit wunderbar leuchten. Und probier 
mal ein optisches Dilter davor - ich war von dem Effekt damals sehr 
erstaunt.
Und so um die 5mA gehen aus einem HC Gatter auch raus. Oder hast du die 
LS etwas schon daheim?

> "brauchbare" 24mA (hier jedoch positiv) liefern, jedoch nur bei einer
> maximalen Spannung von 0,4V - definitiv zu wenig für meine Segmente.
Da stimmt jetzt was nicht. Je mehr Strom aus einem Gatter kommt, desto 
größer die Abweichung vom "Soll"-Wert. Deine Spannung von 0,4V steigt 
also mit dem Strom. Dass da jetzt negativ gezählt wird, würde mich nicht 
weiter stören. Das hat bestimmt seinen Grund (das 74373 is ein inverting 
Latch, evtl deswegen). Trotzdem wird das Gatter bei high keine Senke 
sein.

von Falk B. (falk)


Lesenswert?

@  Michael H* (-holli-)

>Und so um die 5mA gehen aus einem HC Gatter auch raus.

Die HC schaffen 20mA und mehr. Siehe

http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister#Acht_LEDs_mit_je_20mA_pro_Schieberegister


>Da stimmt jetzt was nicht. Je mehr Strom aus einem Gatter kommt, desto
>größer die Abweichung vom "Soll"-Wert. Deine Spannung von 0,4V steigt
>also mit dem Strom.

> Dass da jetzt negativ gezählt wird, würde mich nicht
>weiter stören. Das hat bestimmt seinen Grund (das 74373 is ein inverting
>Latch, evtl deswegen).

Nein, das ist schlicht das Verbrauherpfeilsystem. Strom der in den IC 
reinfliesst ist positiv, der herausfliesst negativ.

> Trotzdem wird das Gatter bei high keine Senke
>sein.

Nöö, wäre auch reichlich komisch. Die Idee und reale Messung die 
dahinter steht ist einfach. Man schliesst einen Widerstand an GND und 
den Ausgang an und misst den Strom, der bei HIGH aus dem IC 
herrausfliesst und die Spannung, die dabei noch am IC verfügbar ist. Für 
LOW macht man es umgekehrt, man schliesst den Widerstand an Vcc an.

MFG
Falk

von Michael H* (Gast)


Lesenswert?

Falk Brunner wrote:
> Die HC schaffen 20mA und mehr. Siehe
Dacht ich mir auch gleich. Aber das erste DB von HC, das ich in den 
Fingern hatte, meinte, dass nach knapp 6 Schluss sei. Daher war ich 
vorsichtig. Zumal 5mA bei 7-Segment auch ordentlich hell macht.

> Nein, das ist schlicht das Verbrauherpfeilsystem. Strom der in den IC
                             ^^^^^^^^^^^^^^^^^^^^^
DANKE! Das war genau das Stichwort, auf das ich nicht gekommen bin!

von juppi (Gast)


Lesenswert?

Übrigen hat der Herr Iwan Lokomofeilowitsch als erster eine Lok aus 
einem massiven Stück Eisen gefeilt.

Also Hochachtung vor dem Mann, der Name ist Urheberrechtlich geschützt.

MfG

von Peter D. (peda)


Lesenswert?

Иван S. wrote:
> Wie dem auch sei, die übertragenen Daten werden sogleich in einem
> 74LS373 gelatcht. Jede Anzeige bekommt ihr eigenes Latch-IC

Na dann fröhliches Layouten, der 373 hat nämlich ein bescheuertes 
Pinning.

Parallele Ansteuerung kann man machen, aber dann mit dem 74HC595.
Dann wird das Layout viel einfacher, weil man nur 3 Leitungen braucht 
und sie kaskadieren kann.
Man muß ja nur ein Digit layouten und dann copy&paste, fertig.
Die Adreßdekoder entfallen auch.

Schmeiß die 74LS373 in den Müll, und kaufe für die eingesparte 
Layoutzeit die 74HC595.

180 Ohm ist zwar etwas klein, aber ich würde trotzdem keine 
Treibertransistoren ver(sch)wenden.


Peter

von Analog (Gast)


Lesenswert?

Was ein Schwachsinn....

von Michael H* (Gast)


Lesenswert?

rausch ausschlafen ^^

von Karl H. (kbuchegg)


Lesenswert?

> Die Adreßdekoder entfallen auch.
>
> Schmeiß die 74LS373 in den Müll, und kaufe für die eingesparte
> Layoutzeit die 74HC595.

Und wenn du schon dabei bist, dann schmeiss auch gleich die BCD-Dekoder 
hinterher. Die braucht kein Mensch. Sowas kannst du viel flexibler auch 
in Software machen.

> Allerdings wollte ich zu
> Beginn auch nur Zahlenwerte darstellen, damit hätte nämlich ein 8
> Bit breiter Bus genügt: Einen 16-aus-4-Decoder zur Adressierung
> und ein BCD-zu-Siebensegment-IC für die Ansteuerung der Segmente.
> Jedoch wollte ich immer mehr Funktionalität in das Gerät bringen,
> jetzt benötige ich schon zwei 16-aus-4-Decoder zu Adressierung und
> will sowiso Alphanumerisch ausgeben können, brauche also schon
> zwei Ports.

Siehst du. Mit einer kaskadierten Kette aus 595 brauchst du ganze
3 Leitungen und kannst nahezu beliebig viele Anzeigen ansteuern.

http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister

Der Aufbau ist simpler als bei deiner Lösung, man kann sich zb 4 
stellige Anzeigen als Modul machen, die einfach aneinandergestöpselt 
werden und niemand muss irgendwo irgendwelche Adressdekoder einstellen, 
weil alle Module identisch sind und die Auswahl welcher Wert auf welche 
Anzeige geht rein per Software machbar ist.

von Иван S. (ivan)


Lesenswert?

Eddy Current wrote:
> bevor Du lange rätselst: Mache mal einen Versuch und betreibe ein
> Segment mit 5mA. Du wirst staunen.

Da hier die Mehrheit meint, ich solle es wirklich einmal mit einem 
direkten Anschluß probieren, werde ich mal ein Segment jeder Farbe 
nächstes Wochenende mit wenig Strom antesten.

> Was aber Du da anschliesst, merkt den Unterschied nicht.

Für den Extremfall habe ich ausserdem einen Trimmer am speisenden 
adjustierbaren Spannungsregler (und für's Feintuning einen extra pro 
Farbe und Zeile) spendiert, da kann ja gar nichts mehr schiefgehen.

> Allerdings hast Du Dich ja bereits mit Material eingedeckt. Gemeinsame
> Kathode heisst dann aber PNP-Treiber.

Gut daß Du mich erinnerst, ich brauch noch PNP-Transistoren. Danke!

Michael H* wrote:
> Da gibts es einige Anzeigen, die damit wunderbar leuchten. Und probier
> mal ein optisches Dilter davor - ich war von dem Effekt damals sehr
> erstaunt.

Sowas ist jedoch bestimmt nicht ganz billig. Muß mal nachsehen!

> Und so um die 5mA gehen aus einem HC Gatter auch raus. Oder hast du die
> LS etwas schon daheim?

Ich hab jetzt nochmal nachgeschaut: Lagernd habe ich komischer Weise den 
74LVC373, die Datenbank hat jedoch LS373 ausgeworfen, da muß ich mich 
beim Eingeben anscheinend vertan haben. Sinniger Weise habe ich im 
Datenblatt-Folder auch das DB vom LS373 gespeichert, sonst wär's mir 
wohl schon früher aufgefallen. Jetzt hab ich erst den schwarzen Peter: 
Das LVC hat eine Recommended Operation Supply Voltage von 3,6V maximum. 
Allerdings meinen die Maximum Ratings, daß es auch 6V verkraften könnte. 
Mit HC müsste ich mir solche Gedanken jetzt nicht machen, allerdings 
waren die LVCs damals ja sooo günstig, daß ich nicht widerstehen konnte.

> das 74373 is ein inverting Latch, evtl deswegen

Hoffentlich hast Du hier unrecht, AFAIR ist der 563 der invertierende.

Falk Brunner wrote:
> Nein, das ist schlicht das Verbrauherpfeilsystem. Strom der in den IC
> reinfliesst ist positiv, der herausfliesst negativ.
> Nöö, wäre auch reichlich komisch. Die Idee und reale Messung die
> dahinter steht ist einfach. Man schliesst einen Widerstand an GND und
> den Ausgang an und misst den Strom, der bei HIGH aus dem IC
> herrausfliesst und die Spannung, die dabei noch am IC verfügbar ist. Für
> LOW macht man es umgekehrt, man schliesst den Widerstand an Vcc an.

Danke Falk, Du hast mein Weltbild wieder in Ordnung gebracht! Deine 
Erklärung zur Messung macht Sinn und ist für mich nachvollziehbar. 
Trotzdem finde ich es irritierend, daß im DB in großer Schrift "Output 
Current" angegeben wird und daneben eine negative Zahl angegeben wird.

Peter Dannegger wrote:
>> Jede Anzeige bekommt ihr eigenes Latch-IC
> Na dann fröhliches Layouten, der 373 hat nämlich ein bescheuertes
> Pinning.

Habe ich auch schon gemerkt! Ist dieses Pinning historisch bedingt?
Bei TSSOP entfallen auch solche "Bauerntricks" wie Leitungen zwischen 
Pins zu routen. Ich bin jetzt am Umsteigen nach geda, wenn geda 
automatisch 0-Ohm-RSMDs setzen könnte wäre das ein Traum für mich. Mein 
bisheriges Programm (Diptrace) kann das leider auch in der neuesten Beta 
noch nicht.

> Parallele Ansteuerung kann man machen, aber dann mit dem 74HC595.

Das ist "pseudoparallel" ;-) denn der 595 selbst wird parallel 
angefahren.
Aber prinzipell hast Du schon recht, seriell hat auch seine Vorteile!

> Man muß ja nur ein Digit layouten und dann copy&paste, fertig.

So habe ich es eigentlich auch bei meinem Projet vor, die einzelne 
"Enable"-Leitung pro Anzeige bringe ich schon irgendwie unter.

> Schmeiß die 74LS373 in den Müll, und kaufe für die eingesparte
> Layoutzeit die 74HC595.

Irgendwie wär's doch Schade um die Chips, koennen doch nichts dafür.

> 180 Ohm ist zwar etwas klein,

Wiso klein? wenn ich von 5V ausgehe (der Spannungsregler kann im Notfall 
via Trimmer auch etwas mehr) und die Forward voltage der Anzeigen von 
ungefähr 2V einberechne, so komme ich auf 16,6mA, was für meine 20- bzw. 
25mA-Typen eigentlich ganz gut passt. Ausserdem braucht 180 Ohm 
anscheinend keiner, darum hat sie mir der Typ auch für EUR 5 überlassen. 
Mit den Tausend sollte ich die nächste Zeit über die Runden kommen.

> aber ich würde trotzdem keine Treibertransistoren ver(sch)wenden.

Irgendwie stell' ich mir die Platine einfach cool vor, mit den ganzen 
0805-Widerständen, den Latches und den vielen Transistoren in SOT-23 .

Karl heinz Buchegger wrote:
>> Schmeiß die 74LS373 in den Müll...
> Und wenn du schon dabei bist, dann schmeiss auch gleich die BCD-Dekoder
> hinterher. Die braucht kein Mensch. Sowas kannst du viel flexibler auch
> in Software machen.

Irgendwann kann ich ihn schon wieder mal brauchen! So ein BCD-Decoder 
wird bestimmt nicht schlecht. Ausserdem braucht die Softwareentwicklung 
relativ viel Zeit, ein IC hingegen ist schnell plaziert.

> Siehst du. Mit einer kaskadierten Kette aus 595 brauchst du ganze
> 3 Leitungen und kannst nahezu beliebig viele Anzeigen ansteuern.

Ich bin relativ neu in dem Gebiet und scheue mich daher noch etwas von 
seriellen Verbindungen. Ich hatte auch noch lange einen Computer mit 
einem  Parallelport, als andere längst auf USB umgestiegen waren. 
Immerhin konnte ich mich schon mit SPI anfreunden, auch TWI/I²C 
machtmeiner Meinung nach in gewissen Anwendungsfällen Sinn.

> Der Aufbau ist simpler als bei deiner Lösung, man kann sich zb 4
> stellige Anzeigen als Modul machen, die einfach aneinandergestöpselt
> werden und niemand muss irgendwo irgendwelche Adressdekoder einstellen,
> weil alle Module identisch sind und die Auswahl welcher Wert auf welche
> Anzeige geht rein per Software machbar ist.

Eigentlich hast ja schon recht, nur erfolgt ja auch bei meinem System 
die Adressierung in der Software. Wenns richtig verdrahtet ist, brauche 
ich an den 16-aus-4-Decoder nur z.ß. 0x07 ausgeben und das am Datenport 
ausgegebene Muster wird an Siebensegmentanzeige Nummer 7 gelatcht und
angezeigt.

Danke Euch einstweilen,
Iwan

von Helmut L. (helmi1)


Lesenswert?

Es gibt auch den 74HC595 zusammen mit einem ULN2803 in einem Gehauese


http://focus.ti.com/lit/ds/symlink/tpic6a595.pdf

Gruss Helmi

von Paul Baumann (Gast)


Lesenswert?

>74HC595 zusammen mit einem ULN2803 in einem Gehauese

Ja, das ist eine feine Sache.

MfG Paul

von Karl H. (kbuchegg)


Lesenswert?

Иван S. wrote:

> Ausserdem braucht die Softwareentwicklung
> relativ viel Zeit, ein IC hingegen ist schnell plaziert.

:-)
Ich wette mit dir, dass ich das Umcodierarray samt Zugriff schneller 
programmiert habe, als du den BCD Decoder in der Eagle Library gefunden 
hast. Von platzieren, anschliessen und routen reden wir mal gar nicht
:-)

>> Siehst du. Mit einer kaskadierten Kette aus 595 brauchst du ganze
>> 3 Leitungen und kannst nahezu beliebig viele Anzeigen ansteuern.

> Ich bin relativ neu in dem Gebiet und scheue mich daher noch
> etwas von seriellen Verbindungen.

In der Beziehung kann ich dich beruhigen. Die Kaskadierung einiger 595 
sowie die sofwaremässige Ansteuerung sind deppensicher.

> Eigentlich hast ja schon recht, nur erfolgt ja auch bei meinem System
> die Adressierung in der Software.

Ja, macht ja nichts. Daran wird sich ja nichts ändern.
Dein 'Ausgabeport' ist dann nichts anderes als ein Eintrag in einem 
Array, der den neuen Wert aufnimmt. Sind alle Werte gesetzt, wird der 
komplette Array-Inhalt auf die 595 hinausgetaktet.
Siehs einfach als eine Art Treiberstufe an. Dein eigentliches Programm 
benutzt immer noch die Konvention: am Display 2 den Wert 138 anzeigen.
Die erste Treiberstufe verteilt die Zahl 138 auf die einzelnen Digits 
und holt für jedes Digit das Bitmuster dafür, welches sie im Array aller 
Anzeigen beim richtigen Digit der Anzeige 2 einträgt.
Dann kommt der Treiber, der dafür sorgt, dass die realen Digits ihren 
gespiegelten Kopien im Speicher nachgeführt werden. Wenn diese 
Nachführaktion zb. in einem regelmässigen Interrupt gemacht wird, ist 
das sogar extrem komfortabel in der Programmierung: Du hast ein paar 
Variablen im Programm, deren Inhalt 'magisch' völlig automatisch an der 
Anzeige auftaucht. Sozusagen: memory-mapped 7-Segment Anzeigen.


Aber hey, jeder wie er mag :-)

von Matthias L. (Gast)


Lesenswert?

>Ich wette mit dir, dass ich das Umcodierarray samt Zugriff schneller
>programmiert habe, als du den BCD Decoder in der Eagle Library gefunden
>hast. Von platzieren, anschliessen und routen reden wir mal gar nicht
>:-)

Ja, du musst aber noch die Entwicklungszeit deines Helferleins 
berücksichtigen...

;-))

von Иван S. (ivan)


Lesenswert?

Eddy Current wrote:
> Allerdings hast Du Dich ja bereits mit Material eingedeckt. Gemeinsame
> Kathode heisst dann aber PNP-Treiber.

Hallo Eddy Current,

ich habe nochmal über die Ansteuerung der Segmente nachgedacht.
Je mehr ich darüber nachdenke, desto mehr komme ich ins Grübeln, dabei 
war anfangs doch alles so schön einfach. Ich hätte bei den Transistoren 
doch besser aufpassen müssen. PNP ist jedenfalls schlecht, da ich dazu 
einen negativen Basistrom brauche. Dann muß ich aber wieder bei der 
Ansteuerung invertieren, brauche also zwei Tabellen für die Segmente im 
uC.

Erste Variante: Gemeinsame Anode + NPN-Transistor: Anode an Plus, 
Segmentkathode an Kollektor, Emitter an Masse. So weit klar.

Nun zur gemeinsamen Kathode: Kann ich da nicht einfach einen NPN nehmen 
und eine Kollektorschaltung machen? Also Common Kath an Masse, Kollektor 
an Plus und Emitter an die Segmentanode. Müsste doch eigentlich 
funktionieren, meine paar Zehntel mA Basisstrom sind für die LED 
eigentlich irrelevant oder übersehe ich etwas wichtiges.

Alternative mit PNP: Emitterschaltung mit Kathode an Masse. Vor (von der 
Anteuerungsseite her gesehen) dem PNP ein NPN, dessen Kollektor den 
Basisanschluß des PNP darstellt. Allerdings habe ich keine Ahnung, wie 
ich das ganze dann noch berechnen soll. Ausserdem wird der 
Schaltungsaufwand dann noch ein bisschen größer. Aber was tut man nicht 
alles für den Ruhm.

Viel Feind - Viel Ehr'.
Iwan

von Klaus (Gast)


Lesenswert?

>Aber was tut man nicht alles für den Ruhm.

Was soll denn "ruhmhaft" daran sein, krampfhaft olle Schaltungen 
zusammenzustricken, mit Schaltungstechniken aus der Steinzeit, entgegen 
den Ratschlägen aller gutmeinenden Antwortgeber?
Mit dieser Arbeitsweise musst Du Dir mal 'nen Job in einer 
Entwicklungsabteilung für Karbidlampen suchen.

von Иван S. (ivan)


Lesenswert?

Klaus wrote:
>>Aber was tut man nicht alles für den Ruhm.
>
> Mit dieser Arbeitsweise musst Du Dir mal 'nen Job in einer
> Entwicklungsabteilung für Karbidlampen suchen.

Lieber Klaus, bestimmt ist Dir dann auch bekannt, daß die Karbidlampe 
sowohl im Bereich der Zuverlässigkeit als auch in Punkto Farbtemperatur 
bis dato noch immer den elektrischen Lösungen überlegen ist.

Im übrigen würden mich deine Ansichten zum eigentlichen Knackpunkt, 
Kollektorschaltung an NPN vs.PNP-Emitterschaltung mit vorgeschaltetem 
NPN, wesentlich mehr interessieren. Bei der PNP-Variante kann euer 
hochwohlgeboren sicher auch sachdienliche Hinweise zur Berechnung (die 
ich leider noch nicht verstehe) abgeben.

Iwan,
weder durchlaucht noch erleuchtet.
In jedem Falle "not amused".

von Olof G. (ole)


Lesenswert?

Moin,

hab grad mal etwas quergelesen...

Dabei fiel mir ein Passus auf, so es um die Widerständer geht.
Könnte man sich nicht die 7 einzelnen Widerstände schenken und nur einen 
an die gemeinsame An-Kathode machen?

So, nun ist die erste Idee, dass die Segmente ja nach Anzahl der 
leuchtenden LED´s unterschiedlich hell leuchten, ABERRRR

könnte man nicht die 7 LED´s eines jeden Segments wiederum 
"multiplexen". Ich mein hier natürlich kein echtes multiplexing. Wenn 
für jede 7-seg. Anzeige schon ein 595 da ist, dann gibt man immer nur 
eine "Stelle" aus die leuchten soll.

Mit jedem achten kompletten durchschieben der Daten würde dann wieder 
die gleiche LED leuchten.

Verständlich was ich meine?

Die Daten für die 7-seg.Anzeige liegen ja sicherlich in einem 
char-Array.
Nun wird ja Feld für Feld per (ich denke mal) Hardware-SPI in die 595 
geschoben. Jetzt macht man ein XOR für jedes Feld

so nach dem motto
1
char text[9];
2
3
for(i=0;i<8;i++)
4
{
5
SPDR = text[i]^(1<<i)
6
}

So schiebt er für jede Anzeige immer max. eine 1 raus.

Das alles macht natürlich nur sinn, wenn an jeder Anzeige ein 595 hängt!

Gruß,

Ole

von Helmut L. (helmi1)


Lesenswert?

Was für einen Sinn macht das denn ?
Sind Vorwiderstände für LEDs mittlerweile so teuer geworden ?

von Michael H* (Gast)


Lesenswert?

Helmut Lenzen wrote:
> Sind Vorwiderstände für LEDs mittlerweile so teuer geworden ?
bei siemens würde man jetzt folgendermaßen weiter vorgehen: statistisch 
ermitteln, welcher vorwiderstand im mittel am besten passt.
um das ganze an die statistik jeder anzeige anzupassen, aber modular zu 
bleiben, werden 5 verschiedene widerstände per transistor zuschaltbar 
gemacht.
um zukünftigen änderungen der software gerecht zu werden, werden 3 
dieser varianten per lötjumper auswählbar gemacht.

=)

von Olof G. (ole)


Lesenswert?

Helmut Lenzen wrote:
> Was für einen Sinn macht das denn ?
> Sind Vorwiderstände für LEDs mittlerweile so teuer geworden ?

holli hat weiter oben einen ganz netten Grundsatz zum besten gegeben:
"Merke: Was in C nicht geht, muss gelötet werden."

Ich bin da zwar kein 100%iger anhänger von, aber wenn ich mir denke, das 
man den platz für die Widerstände + deren bohrungen sparen kann.
Ok, mit SMD-Technik würde man beide Fliegen mit einer Klappe schlagen.

Mal sehen, ob ich da Zeit zu finde, dann werde ich das mal bauen.
Problematisch könnte evtl. der große Strom sein, den man dann bräuchte 
um ein Segment hell genung leuchten zu lassen. Flimmern sollte es, je 
nachdem wie viel Zeit man dafür im µC verbraten will, eigentlich nicht.

Gruß,

Ole

von Ulrich P. (uprinz)


Lesenswert?

Hmm...

Also ich weiß nicht, ob es im OOE von der Verfügbarkeit her ein Problem 
gibt, aber ich schätze mal, dass es ab geschätzt 6 LED Anzeigen billiger 
ist ein LCD zu verwenden. Also ein 16*2 Display hat 32 Stellen und 
kostet um die 7€. Geht es nur um ein Bastelprojekt mit Stückzahl = 1, 
dann kann man sicherlich auch irgendwo ein LCD ausschlachten.
LCDs gibt es mit parallelem und seriellem Bus, was die Ansteuerung sehr 
vereinfacht.
Geht es darum eine größere Stückzahl zu produzieren, lohnt sich LCD 
allemal, da dann auch größere Displays bereits deutlich unter 10€ zu 
haben sind.
Und wenn es bei der großen Stückzahl um etwas ganz besonderes gehen 
soll, dann sind Custom-LCDs mit COG ( Chip on Glas) ebenfalls unter 
2000€ Einmalkosten und unter 10€ pro Stück zu haben.

Für etwa 30€/Stück gibt es auch Kleinstmengen von Vollgrafik-LCDs mit 
COG und Wunschfarben-Hinterleuchtung als gekapseltes Modul. Das kann bei 
angedeuteten 20 7Seg LEDs + Treiber + Decoder + Transistoren... in der 
gleichen Kostenregion liegen. Aber so ein LCD ermöglicht ungeahnte 
Flexibilität.

Man könnte auch einen Kompromiss machen. Die Ist-Temperatur als LED und 
das ganze Menü und sonstige Verlaufsdaten als LCD. Das wäre immer noch 
etwas ganz besonderes, aber vermutlich mit den Pinnen des Controllers 
als Segment-Cathode und einem ULNxy als Common-Anode Treiber zu 
bewerkstelligen, ohne viele viele Treiber, Latches, FiFos.

Gruß, Ulrich

von Klaus (Gast)


Lesenswert?

> Sind Vorwiderstände für LEDs mittlerweile so teuer geworden ?

Hier die Lösung:

http://www.tube-tester.com/sites/nixie/data/3015-F/3015-f.htm

Dazu ein 7447 , und die leidigen Vorwiderstände wie bei den -L-E-D-s 
braucht's auch nicht.

(Jaja, das ist wieder ein Vorschlag vom Karbidlampenratschlaggeber, es 
kommen jetzt nur noch solche, das mit dem 74hc595 vom 24.01.2009 21:06 
hat ja nicht gefallen. War wohl zu einfach.)

Klaus

von Sven P. (Gast)


Lesenswert?

Leckomio, was für Klimmzüge...

von Иван S. (ivan)


Lesenswert?

Olof Gutowski wrote:
> könnte man nicht die 7 LED´s eines jeden Segments wiederum
> "multiplexen". Ich mein hier natürlich kein echtes multiplexing. Wenn
> für jede 7-seg. Anzeige schon ein 595 da ist, dann gibt man immer nur
> eine "Stelle" aus die leuchten soll.

Eigentlich eine ganz nette Idee. Andererseits jedoch ein bisschen zu 
viel Softwarearbeit für meinen Geschmack, wenn es nur darum geht die 
Vorwiderstände zu eliminieren. Die kosten nämlich wirklich nichts.

> Das alles macht natürlich nur sinn, wenn an jeder Anzeige ein 595 hängt!

Schon klar! Immerhin habt ihr mich jetzt schon so weit gebracht, daß mir 
die Lösung mit dem 595er eigentlich schon besser gefällt als mein 
Latch-Verbau. Allerdings habe ich meine Latches schon, also werde ich 
sie einbauen.

Olof Gutowski wrote:
> Ich bin da zwar kein 100%iger anhänger von, aber wenn ich mir denke, das
> man den platz für die Widerstände + deren bohrungen sparen kann.
> Ok, mit SMD-Technik würde man beide Fliegen mit einer Klappe schlagen.

Bis auf die Siebensegmentanzeigen und deren Spannungsversorgung wird 
alles in SMT aufgebaut. SOIC, TSSOP, SOT-23, 0805 und 0402 - alles 
vorhanden.

Ulrich P. wrote:
> Also ich weiß nicht, ob es im OOE von der Verfügbarkeit her ein Problem

Ach wo, via Distributor ist auch hier fast alles erhältlich ;-)

> gibt, aber ich schätze mal, dass es ab geschätzt 6 LED Anzeigen billiger
> ist ein LCD zu verwenden. Also ein 16*2 Display hat 32 Stellen und
> kostet um die 7€. Geht es nur um ein Bastelprojekt mit Stückzahl = 1,
> dann kann man sicherlich auch irgendwo ein LCD ausschlachten.

LCD war natürlich eine Überlegung wert. Allerdings hatte ich auch die 
Siebensegmentanzeigen schon, da ich relativ viel auf Vorrat gekauft 
hatte. Eine Überlegung die ich noch nicht ganz aufgegeben habe wäre auch 
das graphische Pollin-VFD, das mir ein netter Kollege bald schicken 
wird. Allerdings wird es wohl auf die LED-Anzeigen hinauslaufen, dann 
kann ich wenigstens die Latches, Transistoren und Widerstände verbauen.

Klaus wrote:
> Hier die Lösung:
> http://www.tube-tester.com/sites/nixie/data/3015-F/3015-f.htm

Klaus, du weist anscheinend genau, worauf ich stehe! :-)
Ich liebe nämlich diese Minitrons. Eigentlich alles was in diese 
Richtung geht, auch Nixies, VFDs und diese Magisches Auge-Geschichten.
Allerdings fehlt mir da die passende Hardware.

> (Jaja, das ist wieder ein Vorschlag vom Karbidlampenratschlaggeber, ...)

Tut mir leid, falls ich mit meinem Ton etwas über die Stränge geschlagen 
haben sollte. Die Minitron-Geschichte ist IMO jedenfalls sehr edel!

Grundsätzlich wollte ich noch fragen, ob jemand etwas zu meinem 
Ansteuerungsproblem, Kollektorschaltung an NPN vs.PNP-Emitterschaltung 
mit vorgeschaltetem NPN, lesbar im Artikel 
Beitrag "Re: Siebensegmentanzeigen-Ansteuerung: Warum macht das keiner so?" in diesem Thread 
sagen kann. Hier habe ich nämlich noch ein kleines Verständnisproblem, 
ob das auch so funktioniert wie ich mir das vorstelle.

Habt einstweilen vielen Dank Kollegen,
Iwan

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.