Forum: Mikrocontroller und Digitale Elektronik 8 stellige 7 Segment anzeige


von incal (Gast)


Lesenswert?

Hallo,


Ich überlege eine 8 stellige anzeige mit 7 segment LED zu bauen.

Um I/O zu sparen moechte ich einen 7segment decoder driver
74HCT47/48/49  einsetzen.

Ich versuche 4 signale  input A B C D  parallel zu allen bausteinen
schicken und vorher durch 8 seperate ports einen selektieren. (ohne MUX
einfach 8 port pins zu den CS pins der jeweiligen ICs verbinden)

diese schleife werde ich schneell genug nacheinander laufen lassen und
damit alle anzeigen aktualisieren werden koennen.

Meine Frage. Wie ich im Datenblatt von 74HCT47/48/49 angeschaut habe
Einen CS eingang oder etwas damit ich (tristate) inputs verwenden kann,
kann ich nicht finden. Wenn CS oder eine aehnliche Aktivierungspin
abgeschaltet ist sollte den alten inhalt im IC und in der Anzeige
bestehen bleiben.

Gibt es dafür einen einzigen IC (Latch/Tristate+7segment
decoder/driver) oder soll ich unbedingt zusaetzlich einen tristate
Latch IC einbauen?

Danke im voraus.


Incal.

von Rahul (Gast)


Lesenswert?

Wo gibt das denn ein Datenblöatt dazu? Ich hab die ICs nicht mal mehr
bei Reichelt.de gefunden.
Eigentlich müssten die ein LatchEnable (/LE) haben. Damit schreibt man
dann die Daten in den Speicher des Bausteins.
Man kann das auch so machen, dass nur einen BCD-7Segment-Decoder für
alle Anzeigen benutzt, und die Anzeigen dann multiplext. Das wären
weniger Bausteine und auch wewniger Stromverbrauch...

von Profi (Gast)


Lesenswert?

Schau Dir mal die Maxim-Displaytreiber an, z.B.:
MAX6958-MAX6959.16p,iic,4x7 led driver.charlyplex.pdf

Er verwendet das Charlyplexing-Verfahren, das mit sehr wenig Pins
auskommt, sehr tricky!

Oder:
MAX7219  = Austria Micro Systems AS1100


Oder schau Dir mal das TIL 308, TIL309, TIL311 (hex!) oder das
hp5082-7340 (hex) an, die haben ein Latch, Treiber und LEDs "on
Chip".
Wenn Du welche brauchst, ich hab noch welche.
Zur Vollständigkeit: es gibt auch TIL306 (Zähler, Latch, Treiber und
Display).

von Ratber (Gast)


Angehängte Dateien:

Lesenswert?

@Incal

Schau dir mal das Datenblatt im anhang an.

von Quacks (Gast)


Lesenswert?

Hallo,

ich würd´s mit Schieberegister realisieren. Dabei benötigst du nur
insgesamt 3 Leitungen um alles anzusteuern. Programmtechnisch ist es
auch nicht wesentlich aufwendiger.

Grüße

von incal (Gast)


Lesenswert?

74HCT47/48/49  haben LT (lamp Test) BI (blank) und RBI Eingaenge. Ich
habe sie unter Eagle durch die Suche nach einer 7 Segment decoder
driver gefunden.

Ich habe mittlerweile auch 4558 angeschaut (durch alte forum posts) .
datenblatt muss ich aber noch finden. Laut Eagle hat 4558 einen EN
(enable) Ob enable auch tristatefahigkeit heisst weiss ich nicht.

Falls tristate nicht vorhanden ist ist deine Methode auch gut. Du
meinst du schaltest die segment aus fuer ein kurzes interval waehrend
du andere umschaltest. Die Todzeit is dann relative lang gegenueber
umschaltzeit und du merkst keinen Unterschied.

Die erste Loesung mit speicher funktion waere eleganter aber du hast
auch recht Stromaufnahme darf man nicht unterschaetzen circa 60 bis
100mA per Segment wenn du helligkeit brauchst.


Die eigentliche frage ist:
Durch deine variante sind die ports von AVR ziemlich viel (strommaesig)
belastet. Eine segmenteinheit wird dann ueber einen Port versorgt?.

Leuchten die Segment mit 2mA pro linie (worst case fuer eine 8
darstellung= 16mA) ausreichent hell?

von incal (Gast)


Lesenswert?

Die vielfaeltige moeglichkeiten habe ich nach meiner Post gesehen. Danke
fuer die Hinweise. Max 7219 scheint gut aus. Ich hoffe dass es nicht zu
teuer ist.

incal.

von Ratber (Gast)


Lesenswert?

Bei Reichelt kostet der Max7219 7 und der 7221 ca. 8 Euro

Für die gebotene Funktionalität nicht zuviel.

von incal (Gast)


Lesenswert?

Kaum zu glauben Max7219 kostet 10.10 Euro  ab 25 9.46 Euro  in Austria
(rs-components).

Allerdings koennte der SPI interface programmierungsaufwand und
programmablauf und berechnungszeit erheblich verkuerzen.

Wieviel kostet ein TIL308?
incal.

von Ratber (Gast)


Lesenswert?

Zum Interface:

Es sind mehrere sachen möglich.
Schau mal das Datenblatt in ruhe durch.

von Rick Dangerus (Gast)


Lesenswert?

@incal

Wenn Du nur 2 Stück brauchst, Maxim verschickt sie kostenlos als
Sample.
Auch im DIL-Gehäuse.

Rick

von incal (Gast)


Lesenswert?

Ich wuerde leider mehr brauchen. Ich tendiere deswegen einen IC 74LS47
oder 4558 einzusetzen. Ausgang von dem IC werde ich zu alle 7segment
leds paralell schalten. Die comman anode von den segments werde ich zu
den jeweiligen output ports von AVR anschliessen.

Zum schluss ueberlege ich durch zeit multiplex jede Anzeige
anzusprechen.

Ich gleube dass ist die kostenguenstigste methode und komme ich mit
weniger ersatzteillager. (das ist die anzeige von einer
pulsgleichrichtergeraet.).

von Peter Dannegger (Gast)


Lesenswert?

Wenn Dir der 7219 zu teuer ist und Du eh multiplexen willst, nimm
einfach 2* 74HC595 (Segmentregister, Digitregister) am SPI, 8*pnp
(BC560) + 8 Widerstände als Segmenttreiber und 8*npn (BC368) als
Digittreiber.

Kostet Dich dann insgesamt 3 Portpins (SCK, MOSI, Strobe).


Peter

von rayelec (Gast)


Lesenswert?

@incal: Sei vorsichtig mit dem 74LS47,48,49. Ich denke, die stellt
niemand mehr her (zudem machen die die 6 und die 9 ohne Querstrich
(sehr gewöhnungsbedürftig).Als HCT gibt's die meiner Erfahrung nach
gar nicht! 74LS247 ist vielleicht eher noch erhältlich und macht auch
die Zahlen so wie gewohnt. Generell sind aber diese TTL auf dem
absteigenden Ast!

von Rick Dangerus (Gast)


Lesenswert?

@incal:

Kennst Du http://elm-chan.org/docs/avr/avrisp.html
Unterpunkt: "Attaching an LED display" schon?

Das ist ungefähr das was Peter meint.

Rick

von incal (Gast)


Lesenswert?

Danke nochmals fuer die wichtige Hinweise, Der Vorschlag von Peter
scheint zwar universeller und unabhengig von hersteller aber mit sehr
viel Bestueckungskosten verbunden. Ich brauche 100 Stueck von dieser
Karten immer im Lager halten. Also wenn herstellerspezifische teile
drinnen sind muss ich die auch im Lager haben.
Aber allgemeine logik habe ich immer und kann vielzeitig verwendet
werden.

Die Max7219 schein doch vielleicht die kostenguenstigste in der
gesamtkosten ohne dass man lagerkosten von 100 Styueck nicht
beruecksichtigt.

Ich habe ATMEGA128. Wenn es mir pfad wird werde ich alles mit 16 output
pins alles in software realisieren. No IC. No cry.

Incal.

von Patrick Grabe (Gast)


Lesenswert?

_No IC. No cry._

Das sag nicht, ich bastel grade mit dem Mega8 an einer 4 stelligen
Anzeige. Die Anoden werden direkt vom Controler geschaltet und die
einzelnen Displays jeweils über nen BC160 durchgeschaltet.
In der Simulation läuft das Ding perfekt, nur in der Praxis zeigt es
nur  Achten und die Dezimalpunkte an. Ich Vermute, das die Displays mit
40mA pro Segment nen bischen arg Stromhungrig sind und damit irgentwie
den Controler durch einander bringt.
Ich brate mal die Tage noch Transistoren in die Anodenleitungen, mal
sehen, ob das Besserung bringt....

von Ratber (Gast)


Lesenswert?

Sorry aber mir sträuben sich immer die Haare wenn einige die Ports bis
zum Limmit und noch viel weiter treiben.

Ein Blick im Datenblatt unter "DC-Caracteristics" sagt mir das Pro
Port 20mA bei 5V und 10mA bei 3V zulässig sind.
Von 40mA lese ich da nichts aber das kann auch Blindheit sein :D

Desweiteren lese ich das im DIP-Gehäuse der maximale Gesammtstrom für
die Ports bei 400mA liegt.
Für Port C0-C5 Gesammt 200mA
B0 - B7, C6, D0 - D7 nur 100mA
Für andere Gehäuse gibts andere Werte.

Ich denke mal dein M8 steht kurz vorm Kollaps.

Gib ihm mal einige Widerstände oder spendier ihm nen Treiber

Ein ULN2803 für einige Groschen entkoppelt und bringt dir satte 500mA
pro Port.
Damit kannste auch Große Anzeigen Treiben.

von Ratber (Gast)


Lesenswert?

Stop,korrektur.

Natürlich war der UDN2981 gemeint.

von Christian Hofstadler (Gast)


Lesenswert?

versuche doch den 4543 aus der CMOS-Reihe, der hat /LE ... und du kannst
auch ein LCD ansteuern falls das mal nötig sein sollte

von Clemens H. (sum)


Lesenswert?

Hallo,

das Thema mit den LED-Anzeigen direkt an den AVR zu packen ist garnicht
so dumm. Ich habe eine LED Anzeige gebaut (5Stellig), die einwandfrei
funktioniert. Sie braucht nur einen PNP-Transistor pro Stelle, der etwa
120mA leistet. Die Eingänge des AVRs ziehen dann ca. 30mA durch jedes
Anzeigeelement, womit die Anzeige hell leuchtet.

Mit einer kleinen Zenerdiodenkonstruktion ist es mir möglich, die
Anzeigeelemente mit je Segment 4 LEDs mit 8V zuversorgen (Höhe der
Anzeigeelemente 56mm).

schöne Grüße, Clemens

von Ratber (Gast)


Angehängte Dateien:

Lesenswert?

@Clemens

Meinst die im Anhang ja ?


Das mit der direkten Ansteuerung hab ich auch mal Probiert.

Ging anfangs gut aber der Controller hat sich dann nach zwei Wochen
verabschiedet.

von Christoph W. (christoph)


Lesenswert?

Genau das selbe hab ich gebaut :

8x 7-segment + 8 Taster + 3 Schaltausgänge an einem AT90S2313 !

Funktioniert alles Prima, Software und Schaltplan muss folgendermaßen
aussehen (hab ich leider nicht mehr [§*@%&# Festplatte]) :

PORTB läuft auf die EIngänge eines 74HC245 (8bit Bustreiber). Die
Ausgänge gehen dann über 8 Widerstände (90,9 Ohm) an die Einzelanoden
der LED-Anzeige (die Anzeigen müssen gemeinsame Kathoden sein, sonst
muss das ganze angepasst werden). Die gemeinsae Kathode geht an den
Collektor eines NPNs, der Emitter an Masse und die Basis über 3,3K
Widerstände an die Ausgänge eines 4017(?) BCD zu Dezimal Decoder(!).
Die A,B und C Leitungen gehen in PORTD.0-2
Vor den je einem Basiswiderstand muss eine 1N4148 Diode an einen Taster
geleitet werden, wobei alle 8 Taster auf der anderen Seite mit PORTD.3
verbunden sind. ACHTUNG : PORTD.3 muss mit einen 10K Pull-down versehen
werden. PORTD.4-6 sind frei verfügbare Ausgänge.
Die Schaltung benötigt eine stabilisierte 5V Spannung, kann aber mit
anderen R-Werten auch auf 3,3V laufen.

Den Timer0 konfiguriert man auf 500 Hz "Interruptfrequenz". In jedem
Takt liest man aus dem RAM den Inhalt eines Digits (es bietet sich an,
0x60 als Basisaddresse zu nehmen, das vereinfacht die Auswahl der
Spaltentreiber und die Überlaufsteuerung) ein. Das wird entsprechend
verarbeitet(umwandeln oder nicht). Dabei wird gleichzeitig auf einen
Tastendruck geprüft. Ist ein Taster gedrückt, wird das in RAM
darauffolgende Byte incrementiert (bis max. FF), andernfalls gelöscht.
Zum Schluss wird auf PORTD.0-2 die [Digitaddresse and 0x10 shr 1]
gegeben (Digitauswahl) und der Digitinhalt dargestellt. Um ein
kontinuierliches wiederholen des Displays zu erzielen wird mit [AND
Addresse,0x0E ; OR Addresse,0x60] ein Speicherumbruch erzielt.

Damit kann man einfach durch lesen des n-ten geraden Bytes ab 0x60 das
n-te Digit beschreiben, und das n-te ungerade Byte ab 0x60 abfragen um
zu erfahren, wie lange der n-te Taster gedrückt wird.

Das ist ein sehr komfortables, I/O-System mit gerade mal 16 Byte
RAM-Bedarf. Die Code-größe liegt im Normalfall um die 100 Bytes +
Umwandlungstabelle. Diese Art des Multiplexens hat sich bei mir für
alle LED-Displays in meinen Projekten bewährt.

Ich hoffe, dir damit weitergeholfen zu haben. Schade halt, dass ich die
Projektdaten nicht mehr hab, sonst könntest du dir das ganze
funktionierend anschauen.

von Christoph W. (christoph)


Angehängte Dateien:

Lesenswert?

Nachtrag : ISP funktioniert natürlich auch noch.

Ein kleines Bild von vorne ...

von Christoph W. (christoph)


Angehängte Dateien:

Lesenswert?

und noch eins von hinten ...

von Clemens H. (sum)


Angehängte Dateien:

Lesenswert?

Hi,

ja, die meine ich (Reichelt). Die laufen bei mir tadellos seit über 1
Jahr. Einziges Problem, welches bei einer Helligkeitssteuerung entsteht
ist die unterschiedliche Erwärmung des µC bei unterschiedlichen
Helligkeitsstufen. Dann wandern auch die Hi/Lo-Schwellen ein wenig und
man kann keine vernünftige "Messung" vornehmen (z.B. RC-Messungen,
etc).

Ich hab mal ein Bild meiner Anzeige angehangen. Auf dieser Platine ist
noch eine Helligkeitsmessung (leider wegen der Wärme nicht sehr
zuverlässig) und ein Eingang für ein DCF77-Modul vorhanden...

Schöne Grüße, Clemens

von Pit (Gast)


Lesenswert?

Hallo "Profi"!

Dein Beitrag steht zwar schon lange hier im Forum, aber ....

Hast Du eventuell noch von den TIL309 ?

Wenn ja, wieviele ? Und zu welchen Konditionen ?

Melde Dich doch mal per eMail:  INTEK-Nord@T-Online.de

Danke Pit

von Sonic (Gast)


Lesenswert?

Alt aber bewährt: ICM7218, dann haste mit einem DIL28-IC 8 Displays 
angesteuert.

von Sebastian Heyn (Gast)


Angehängte Dateien:

Lesenswert?

Hallo, schau mal hier komplett mit 0815 schieberegistern auf einer 
einseitigen platine...

kein multiplexing, kein stress :-))

von eberhard (Gast)


Lesenswert?

Hallo Profi,
hast Du noch TIL308?
Ich hätte gern 10 Stück.
mfg
Eberhard Hewicker
56424 Mogendorf
Obere Waldstrasse 3
049 2623 6136

von roquema (Gast)


Lesenswert?

@eberhard
Der TIL311 hilft dir wahrscheinlich nicht?
Den hab ich nämlich noch...

von maddin (Gast)


Lesenswert?

....schaut mal beim großen r unter icm, wie sonic schon schrieb - zumal 
diese bausteine noch günstiger sind als die von maxim....

maddin

ps.: ich würde sagen, kein multiplexing - schon viel mehr aufwand - aber 
das muss ja jeder selbst wissen...

von Georg (Gast)


Lesenswert?

MAX7219 bekommst du als gratis Sample von MAXIM.
Nimm einfach die nicht ROHS Version -- dann sind sie dir schon fast 
dankbar, dass das Lager leer wird.

mfg

von Eberhard (Gast)


Lesenswert?

@roquema:

doch TIL311 würden mich auch interessieren, wenn Sie günstig sind.
so ca. 3,00/Stück wäre interesant. Bitte email an dk3he@web.de.

Gruß
Eberhard

von Chris L. (kingkernel)


Lesenswert?

An TIL311 habe ich auch Interesse. Wo bekommt man die denn noch recht 
günstig. Oder gibts mitlerweile schon alternativen, die noch bezahlbar 
sind?

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.