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.
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...
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).
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
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?
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.
Bei Reichelt kostet der Max7219 7 und der 7221 ca. 8 Euro Für die gebotene Funktionalität nicht zuviel.
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.
Zum Interface: Es sind mehrere sachen möglich. Schau mal das Datenblatt in ruhe durch.
@incal Wenn Du nur 2 Stück brauchst, Maxim verschickt sie kostenlos als Sample. Auch im DIL-Gehäuse. Rick
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.).
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
@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!
@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
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.
_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....
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.
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
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
@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.
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.
Nachtrag : ISP funktioniert natürlich auch noch. Ein kleines Bild von vorne ...
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
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
Alt aber bewährt: ICM7218, dann haste mit einem DIL28-IC 8 Displays angesteuert.
Hallo, schau mal hier komplett mit 0815 schieberegistern auf einer einseitigen platine... kein multiplexing, kein stress :-))
Hallo Profi, hast Du noch TIL308? Ich hätte gern 10 Stück. mfg Eberhard Hewicker 56424 Mogendorf Obere Waldstrasse 3 049 2623 6136
@eberhard Der TIL311 hilft dir wahrscheinlich nicht? Den hab ich nämlich noch...
....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...
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
@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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.