Forum: Mikrocontroller und Digitale Elektronik Ports sparen 7 Segment


von Fritz 7 (Gast)


Lesenswert?

Wenn ich meinen AVR direkt an den BCD/7Seg. Decoder anschliessen würde 
dann bräuchte ich ja für jedes Segment 4 Ports. Wäre es möglich die 
Daten einfach seriell aus einem Port an einen Seriell/parallel decoder 
und erst dann an BCD/7Seg. Decoder zu schicken?

Einige Unklarheiten im Bezug auf Multiplexen hab ich noch:
Beim obigen Beispiel würde ja auch ein multiplexer keine Port einsparung 
bringen, da die Daten immer noch von 4 Port an den Multiplexer gehen und 
erst dann werden Leitungen eingespart, stimmt das? Also was bring dann 
ein Multiplexer?

Fritz 7

von mikki merten (Gast)


Lesenswert?

Bei einer vierstelligen Anzeige mit Dezimalpunkt in jeder Stelle sind 
zur Ansteuerung ohne zusätzliche Hardware (ausgenommen 8 Widerstände zur 
Strombegrenzung) 12 Portleitungen (8 Segmente, 4 Stellen notwendig). 
Wenn du Portleitungen sparen willst, kannst du aber für die 
Segmentansteuerung ein Schieberegister 74HCT595 einsetzen. Dann reichen 
zur Segmentansteuerung 3 Portleitungen.

von Meiserl (Gast)


Lesenswert?

Sieh dir mal die an...
MAX7221
SAA1064

von mikki merten (Gast)


Lesenswert?

Bei 4 bis 6 Euro in kleinen Stückzeilen, sind mir die für den Einsatz 
mit einem Mikrocontroller zu teuer und  widersprechen ja auch dem 
Konzept möchlichst wenig Chips auf einem Board. Ein AVR bei Bedarf eine 
Nummer grösser gewählt ist allemal billiger.

von Korbinian (Gast)


Lesenswert?

eh? billiger?
max = umsonst! (samples bestellen!)

von Moritz (Gast)


Lesenswert?

Hallo Fritz.
Wenn du serielle Daten vom AVR in parallele Daten zu den 7Segement 
Anzeigen umwandeln willst hilft ein Multiplexer nicht weiter, weil der 
ja eben parallele Daten in Serielle umwandelt. Nun könnte man 
entsprechend einen DEmultiplexer verwenden, aber das macht wenig sinn, 
weil du für den noch die Adress-Eingänge brauchst. Viel einfacher, wie 
schon erwähnt: ein Schieberegister. Seriellen Eingang mit 8 Takten = 8 
bit füttern, dann nach 8 Takten den parallelen Ausgang des Registers 
auslesen. Der Ausgang darf natürlich nur einmal jeweils nach dem 8ten 
Takt gelesen werden.
Mein Vorschlag: 74HC164, Datenblatt dazu gibts bei Google.
Und wenn du mehr als 8 Ausgänge brauchst, einfach beliebig viele 
Register in Serie schalten. So kannst du auch 1 Port des uCs verwenden 
um z.B. 64 Datenausgänge zu schaffen, in dem du 8x 8bit Schieberegister 
verwendest...

Moritz

von mikki merten (Gast)


Lesenswert?

@moritz
Dann nimmer doch besser einen 595 der besitzt neben
dem Schieberegister noch ein Latch und etwa zum gleichen Preis 
erhältlich.

von Fritz 7 (Gast)


Lesenswert?

Frage: Was ist ein Latch?

Fritz 7

von mikki merten (Gast)


Lesenswert?

Das sind noch elementarer ausgedrückt 8 D-FlipFlop. Die Eingänge dieser 
sind beim 595 mit den Ausgängen des Schieberegister verknüpft. Dessen 
Zustand wird bei
positiver Taktflanke übernommen. Dieses hat den Vorteil, die Daten 
können seriell ausgegeben werden und erst nach vollständiger Ausgabe 
werden die Daten auf die Ausgänge geschaltet.

von Peter D. (peda)


Angehängte Dateien:

Lesenswert?

Hier ist ein Beispiel für eine Multiplexanzeige.


Peter

von Peter D. (peda)


Lesenswert?

Das ist eine Anzeige, wo alle Segmente A..G, DP von jedem Digit schon 
intern parallel geschaltet sind. Man kann natürlich auch 5 (oder wieviel 
auch immer) einzelne Anzeigen nehmen und die dann entsprechend 
verdrahten.

Im Beispiel nehme ich einen Multiplextakt von 1,2kHz (10MHz / 8192), 
damit ist kein Flackern mehr warnehmbar.


Peter

von wolli_r (Gast)


Lesenswert?

Mein Vorschlag:
4 x 7 Segment common Anode ( + Segmentwiderstände )

4 x 74HC4094 kaskadieren(gemeinsame Clockleitung, Data-leitung von einem 
Ausgang zum nächsten Eingang
führen,Strobe Leitungen gemeinsam)EO auf Vcc.

3 Portleitungen riskieren (data,clock,strobe)

Programm:
STR auf low.
Data auf low,bzw high (wird bei positiver Clock Flanke ins Register 
übernommen)
32 Clocks (4*8) senden
STR Leitung kurz auf high setzen und schon sind die
Segmente an oder aus.

- Man kann mit maximalem AVR speed arbeiten.
- Anzeige ist statisch ( kein flackern)
- Ein HC4094 Ausgang kann fast 40mA treiben
- Applikationsschaltung bei Philips vorhanden (HEF4094 Datenblatt)
- 7 Segmentcodetabelle im AVR (andere Codes möglich)
- 1 74HC4094 kostet weit unter 1 EUR

mfg wolli_r ( http://www.tec-shop.de )

von mikki merten (Gast)


Lesenswert?

Eigentlich lautete die Frage Port sparen bei Siebsegment-Ansteuerung und 
jetzt werden wahre Bauteilegräber mit 4 diskreten ICs und bis zu 32 
zusätzlichen Segmentwiderständer konstruiert. Was hat das mit 
Mikrocontrollern zu tun.

von wolli_r (Gast)


Lesenswert?

Hi mikki,
wenn 3 Leitungen zuviel sind, nimmt man am besten die neuen 4 stelligen 
7-Segmentanzeigen CAQX104
mit nur 2 Leitungen Vcc/data und GND.
Diese Anzeigen haben eine 1 Drahtschnittstelle (DALLAS kompatibel) über 
die man außerdem noch Segmenthöhe und -Farbe frei programmieren kann.
Im Push-Pull Mode betrieben, kann der AVR direkt den Versorgungsstrom 
liefern, da die neuen Anzeigen im 4-stelligen Modus nur 0,23µA 
Versorgungsstrom ziehen.
Im read-back Modus kann man die Umgebungshelligkeit ermitteln und mit 
dem AVR dann die Segmenthelligkeit einstellen.
Bei Google hatte ich die Teile kürzlich gefunden.
Eine Nachfrage beim Hersteller ergab daß das kpl. Teil nur 1,85 EUR 
kosten soll. Kostenlose Muster können auf Anfrage geliefert werden (max 
10 Stück). Da ich aus versehen meine Bookmarks gelöscht habe, kann ich 
den Hersteller nicht mehr finden. Bei Google kann ich auch nichts mehr 
finden. Merkwürdig...

mfg wolli_r ;-)

von mikki merten (Gast)


Lesenswert?

In derartige Anzeige zu dem Preis hört sich an wie ein Märchen. Ich 
hatte mich auch schon mal im Bereich 7 Segmentanzeigen mit serieller 
Ansteuerung umgeschaut, die Hersteller die ich damals ausfindig mach 
konnte, wollte aber so 8 bis 12 Euro für 4 stellig bei 10 mm Höhe und 50 
bis 100 Stck Abnahme haben, daher bevorzuge ich nach wie vor die 
Simpellösung 8 Portleitungen für die Segmente und 4 für die Stellen.
Ist platzsparend und preiswert.

von Peter D. (peda)


Lesenswert?

Hallo Mikki,

bin voll Deiner Meinung.

Ich hatte Fritz so verstanden, daß er erstmal nur wissen wollte, wie 
eine Multiplexanzeige prinzipiell verschaltet wird.

Wieviel Pins er verwenden will geht nirgends draus hervor, nur daß es 
weniger als 16 sein sollten.


Hallo wolli_r,

da ist Dir wohl das Komma verrutscht:
Der garantierte Betriebsstrom bei allen 74HCxx ist nur max 4mA.
Der Grenzstrom ist 25mA, aber mit der Bemerkung: "IC wird noch nicht 
zerstört aber Funktion wird nicht garantiert."

The “RATINGS” table (Limiting values in accordance with the Absolute 
Maximum System - IEC134) lists the
maximum limits to which the device can be subjected
without damage. This doesn’t imply that the device will function at 
these extreme conditions, only that, when these conditions are removed 
and the device operated within the Recommended Operating Conditions, it 
will still be functional and its useful life won’t have been shortened.


Für mehr Strom muß man die 74ACxx nehmen (max 24mA).


Peter

von mikki merten (Gast)


Lesenswert?

@peter
ein 74hcxxx mit 40 mA spezifiziert habe ich auch noch nicht gesehen. Mit 
den garantierten Strömen wagen sich die unterschiedlichen Hersteller 
allerdings unter-
schiedlich weit vor so spezifiziert Philips noch garantierte Werte bei 
7,8 mA.

von Fritz 7 (Gast)


Lesenswert?

Im Grunde hab ich alle Ports des 8515 frei. Ich möchte aber so wenig wie 
möglich verwenden. Ich habe vor 6 Anzeigen anzusteuern. Für sekunden und 
stunden will ich je zwei Anzeigen nehmen.

Mir ist immer noch nicht klar wie das Multiplexen funktioniert!
Was für IC gibts dafür? (Nur für Multiplexen!!!)
Die daten für die 7 Seg. anzeigen müssen ja eh parallel also 4 Ports pro 
Anzeige an den Multiplexer gegeven werden, ist das richtig?

Danke für das rege Feedback, ich hätte aber gern Antworten auf die 
Fragen die ICH gestellt habe!
Wäre nett.

Fritz 7

von Meiserl (Gast)


Angehängte Dateien:

Lesenswert?

Also mal zu deiner Frage Anzeigen multiplexen.

Du nimmst z.B.: 6Stück 7 Segmentanzeigen.
Am besten gemeinsame Anode.

Du verbindest alle Segment der verschiedenen Stellen.
z.B.: Segment_a von Digit_0 mit Segment_a von Digit_1 usw.
Über einen Begrenzungswiderstand auf den AVR.

Die gemeinsame Anode Schaltest du über einen Transistor.

Per Software legst du die Zifferninformation für Digit_0 an und 
schaltest den dazugehörigen Transistor durch.
Wartest eine kurze Zeit und schaltest wieder ab.

Du legst die Zifferniformation für Digit_1 an und schaltest wieder den 
anderen Transitor .....

Naja das ganze Spiel für jede Stelle.

Also im Prinzip leuchtet nur immer eine Stelle (Digit) ... das Auge ist 
zu träge dafür es zu erkennen.

Das Problem dabei ist das du dich immer kümmern mußt das die Anzeige 
nicht zu flimmern beginnt.

Also nochmals ein Tip von mir ....
ein MAX7221 oder SAA1064 ist sein Geld schon Wert denn der macht das 
multiplesen von selbst.

Mal am Wochenende 3 Bier weniger trinken und schon hast du Ihn in deiner 
Bastelkiste liegen ;-).

Ich nehme an deine wirkliche Anwendung besteht nicht aus "Zahlen 
anzeigen" sondern diese Anzeigen sollen sozusagen "NUR" etwas anzeigen.

von Peter D. (peda)


Lesenswert?

Hallo Fritz,

bei einem 8515 würde ich keine weiteren ICs verwenden.

Du brauchst nur 8 Pins für die Segmente und 6 Pins für die Digits.

In die Segmentleitungen kommen die Vorwiderstände zur Strombegrenzung 
und die Digitleitungen werden über 6 Transistoren verstärkt.

Meine Schaltung zeigt das Prinzip für 5 Digits.

Das Ansteuern macht der 8515 z.B. im T0 oder T1 Interrupt.

Softwarebeispiele gibt es zuhauf dafür.
Bei Interesse kann ich auch meinen Kode veröffentlichen.


Peter

von Peter D. (peda)


Lesenswert?

Die Schaltung von Holger Müller Blech ist quasi das gleiche.

Nur R13..R16 sind überflüssig. In Kollektorschaltung brauchen die 
Transistoren keine Basisvorwiderstände.

Peter

von Fritz 7 (Gast)


Lesenswert?

Danke ich glaub jetz hab ich's begriffen.



MFG: Fritz 7

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.