Forum: Mikrocontroller und Digitale Elektronik Altes Thema 7-Segmentanzeige; eurer Meinung alles Richtig?!


von Roy P. (digga)


Angehängte Dateien:

Lesenswert?

Guten Abend werte Gemeinde,

ich habe eine 7-Segmentanzeige (4 Stellen) gebaut und steuere jede 
Stelle via Mulitplex (duty-Cycle 1/4) an.

Stellen sind SA40-19 7-Segmentstellen (gemeinsame Anode).

Soweit funktinoniert alles. Allerdings bin ich mir wegen den Spannungen 
und Ströme nicht ganz sicher. Daher schaut mal bitte drüber und 
korrigiert meine Therorien ggf..

Wie in der Schaltung ersichtlich habe ich die Widerstände der Kathoden 
auf 56 Ohm ausgelegt. Somit sollte ein Strom von ca. 54mA fließen. lt. 
Datenblatt kann ein Segment 60mA ab.

Ich hoffe soweit richtig.

Die 54mA fließen bei dauerhaft angelegter Spannung. Bei U0 = 12V, 
UCE(Sat)=0,7V und Ud= 8,3V bleiben an den Widerständen 3V hängen welches 
dann einen Strom von 54mA ergibt.

Da ich jetzt mit Duty -Cycle Arbeite (1/4), also alle 4 ms wird die 
nächste Ziffer eingeschaltet, heißt das die Ziffer ist 4ms an und 12ms 
aus.

Im Duty Cycle-betrieb stellt sich nun ein Strom von 13mA ein (1/16ms * 
integral[0ms, 4ms] Ir dt)= (1/4* Ir). Die Spannung dabei ist dann auch 
1/4 der Dauerspannung. Wenn ich das Nachmesse dann Passt das auch 
überein.

Allerdings ist bei einer Ziffer nen Segment gestorben. Ist jetzt 
irgendwas falsch oder war es nur Zufall das dieses Segment sich 
verabschiedet hat?

Die gemessen Spannung über der Ziffer ist ca. 4,3V (pulsförmig). Wenn 
ich nen bissl rumrechne komme ich auf ca. 8,8V

4*0,7V=Ud

-->4,3V - 2,8V = 1,5V; 1,5V * 4 = 6V

--> 6V +2,8V = 8,8V

8,8V + 3V + 0,7V = 12,5V

hier ist mein eigentliches Problem, dass i nicht auf die Spannung über 
der Ziffer (also den 4 in Reihegeschalteten Dioden) komme.

Bin ich da jetzt mit meiner Ansteuerung, Spannung, Strömen und 
Widerstandswahl richtig?

Ich will vermeiden das irgendwann sie Segmentanzeigen flöten gehen.

Beste Grüße Digga

von Frank K. (fchk)


Lesenswert?

Ich verwende diese Anzeigen selber und habe mich bewusst gegen 
Multiplexing entschieden, weil die Anzeigen ohnehin schon eine sehr hohe 
Flussspannung haben (8 LED-Chips pro Segment, immer je zwei parallel). 
Ich steuere meine Displays über je einen TPIC6B595 (praktisch ein HC595 
mit nachgeschaltetem ULN2803 in einem Chip) an und vermeide so 
Stromspitzen. Außerdem brauche ich so nur drei Pins zur Ansteuerung - 
DATA,Shift_Clock,Register_Clock. Bei Dir hätte es dann ein Attiny getan.

Das Segment ist bei Dir wohl gestorben, weil es zu lange Strom bekommen 
hat - bespielsweise beim Debuggen, neu flashen oder beim Abschalten. Mit 
meiner Schieberegister-Lösung kann das nie passieren.

Zum Multiplexing: Hier betrachtest Du zunächst den statischen Fall. 
Nennstrom sind if=20mA bei Vf=7.4V. Beim Multiplexing lässt Du jede 
Stelle nur 1/n'tel der Zeit leuchten. Um den gleichen 
Helligkeitseindruck wie im statischen Fall zu erhalten, musst Du den 
Strom ver-n-fachen. Das wären dann ifp=80mA. Achte auch auf die kleine 
Fußnote [1] bei den Absolute Maximum Ratings.

PS: Rechne mal aus, was für eine Verlustleistung an Deinen 
Segment-Vorwiderständen entsteht! Du wirst sehen, dass die üblichen 1/4W 
Widerstände nicht mehr reichen. Hast Du auch daran gedacht?

fchk

von Roy P. (digga)


Lesenswert?

Hallo Frank,


danke für deine Antwort. An die Spannungsspitzen beim Abschalten habe 
ich noch nicht gedacht. Das könnte der Grund gewesen sein.
An ein schieberegister habe ich auch beim planen gedacht, aber ich 
dachte mir, das kann ich mir sparen, wenn ich das sw-mäßig schiebe:

Quasi bei jedem timeraufruf:
//...
// Einschalten der einzelnen anoden mit schieberegister
static uint8_t a = 1;

  if (a == 8)
  {
    a = 1;
  }
  else
  {
  a = a << 1;
  }

  PORTB = a;
//...

Das Einschalten efolgt verzögert, sobald alle komponenten des µC's 
laufen und der ISR auch alle 4ms schiebt.


Gut ok mit deiner Erklärung des Stromes wegen werde ich schon im 
Nennbereich der LEDs sein. Also wenn ich vergleiche im statischen Fall 
max. Id 60mA und in meinem Multiplexfall (1:4) dann rund 15mA.

Zu den widerständen. Ja ich habe vorher bei der Planung auch an diese 
gedacht.

So mal kurz gerechnet.

Strom multiplex:

0,013A bei 0,75V pro Segment = 0,00975W (U*I=P)
wenn alle 4 stellen nacheinander jeweils um 4ms angehen erhöht sich die 
Gesamtspannung über den Widerstand auf 4*0,75V = 3V ( da jetzt kein 
aritmetischer Mittelwert gebildet werden muss)
daraus folgt nun ein Strom von U/I = 0,0535A
folgt:--> P=U*I = 3V*0,0535A =0,160VA = 0,16 W < Pmax = 0,25W

Strom statisch:

1 Ziffer pro Segment = OK, da Id = 0,053A --> Pv= 0,16W

und wenn mehrere auf einmal statisch werden...ja da wird sich nicht viel 
ändern denn die Stromspannungsbez. ändert sich nicht...die Ziffern 
werden nur dunkler, da sich die Stöme jetzt nun auf 2 oder mehr Ziffern 
aufteilen.

Also sehe ich da kein Problem bei der Widerstandsverlustleistung.

Zum Thema mit der [1]:

Im datasheet steht ja nun 320mA für max. 0,1ms, soweit ist das klar. 
Aber wieviel Strom darf ich denn fließen lassen wenn i mehr als 0,1ms 
einschalte?

Wenn ich für den 320mA fall nachrechne bei dutycicle 1/10 dann komme ich 
auf nen mittelwert von 32mA.

P.S.: Beim nächsten mal werde ich mit sicherheit nen Schieberegister 
(HW) nehmen. Ist sicherer falls sich der µC  aufhängt.

von Frank K. (fchk)


Lesenswert?

Du hast einen Denkfehler drin: Im Multiplexfall brauchst Du den n-fachen 
Strom, nicht den 1/n-fachen.

Und die Absolute Maximum Ratings sind keine Werte, die im Betrieb 
auftreten sollen. das sind die Grenzen, bei der das Bauteil gerade noch 
nicht sofort beschädigt wird. Du darfst im statischen Fall nicht mehr 
als 20, vielleicht 25 mA Strom pro Led-Chip ansetzen. Also bei den 
Segmenten (das hatte ich eben übersehen) wegen interner 
Parallelschaltung das Doppelte. Deine 60mA sind zu viel. Und im 
Multiplexfall musst Du nicht 15mA (/4) durchjagen, sondern 240mA (*4) 
bzw besser nur 160mA (40*4) und 80mA für den Punkt.

So, jetzt hast Du den Impulsstrom, den Du anlegen musst (erinnere Dich: 
Leds müssen mit einer Konstantstromquelle betrieben werden, und die 
einfachste ist ein Widerstand). Danach musst Du dann die Impulsdauer 
wählen, nicht umgekehrt! Bei 160mA würde ich erstmal 0.2ms ansetzen 
wollen.

PS: Bei 40mA Dauersegmentstrom sind die Anzeigen schon ordentlich hell 
und werden auch schon warm. Schau mal, ob Du nicht mit weniger 
auskommst.

fchk

von Reinhard Kern (Gast)


Lesenswert?

Hallo,

natürlich tut es Multiplexanzeigen nicht gut, wenn sie mal NICHT 
multiplext werden, z.B. weil sich der Prozessor verlaufen hat. Soll ja 
beim Entwickeln der Software vorkommen und auch sonst mal. Dem kann man 
aber abhelfen, wenn man den Multiplextakt auswertet und beim Fehlen den 
Strom für die Anzeige ganz abschaltet, sozusagen ein Watchdog für die 
Anzeige. Dafür gibt es einige Möglichkeiten, z.B. ein Digitsignal über 
einen Kondensator auskoppeln oder einen tatsächlichen Watchdog 
verwenden, wie er in vielen Supervisor- oder Reset-ICs enthalten ist.

Ich habe z.B. für medizinische Geräte Anzeigen mit bis zu 40 Digits 
ordentlicher Grösse gebaut, die nicht ganz billig sind, da lohnt sich so 
eine Sicherung in jedem Fall. Sonst hat womöglich jeder Fehler des 
Prozessorsystems auch einen Schaden an der Anzeige zur Folge, das muss 
ja nicht sein.

Gruss Reinhard

von MaWin (Gast)


Lesenswert?

> Soweit funktinoniert alles.

Mit N-Kanal MOSFET in der positiven Versorgungsspannungleitung ?

Sicher nicht.

Ein LM350 wird auch keine 3V/10V liefern, wenn er mit 35V versorgt wird, 
egal wie gross der Kühlkörper ist, er braucht auch fast 3V mehr als er 
liefern kann, also eher 13V als 12V.

Bei angenommenen 13mA und 8.3V pro Segment sollte man einfach ein 12V 
Netzteil verwenden, ohne LM350, und einen 68 Ohm Widerstand (0.25W 
reicht schon) für RB1 bis RB7. Das sind dann 52mA pro 1/4 der Zeit 
eingeschaltetem Segment (schaltet der ULN2003 problemlos) und 400mA 
zusammen (keine 3A), die MOSFETs sind auch etwas überdimensioniert.

Das Relais kannst du weglassen, sind alle MOSFETs aus, fliesst auch kein 
Strom. Wenn du es aus anderen Gründen einbauen willst, nimm ein 12V 
Relais, und keine "1000V" Diode, sondern lieber eine passendere 
(1N4448).

Damit die Anzeige bei Programmfehlern nicht kaputt geht, kann man erst 
mal mit 220 Ohm Widerständen arbeiten.

von Roy P. (digga)


Lesenswert?

>> Soweit funktinoniert alles.

> Mit N-Kanal MOSFET in der positiven Versorgungsspannungleitung ?


Die MOSFETS ( BUK7514-55) in der Schaltung sind nicht richtig. Habe ich 
vergessen zu ändern. Sie dienten bei der Schalungsentwicklung nur als 
Platzhalter da ich micht noch nicht entschieden hatte welche ich nehme.

Es sind P-MOSFETs vom Typ IRF5303 verbaut.


> Bei angenommenen 13mA und 8.3V pro Segment sollte man einfach ein 12V
> Netzteil verwenden,...

Ist richitg, würde auch lieber ein 12 Netzteil verwenden, aber da ich 
nur ein 24V Netzteil zur verfügung habe muss ich das nehmen.

Es ist nicht mein Gerät sondern ein Gerät welches ich für einen 
ansässigen Verein erweitern sollte. Und da muss ich vorhandene Mittel 
wieder nutzen.
(Vorher waren es nur 2 Ziffern gesteuert von ner LOGO und mit 4 fetten 3 
W Widerständen vor der Anode.)

> Anzeige ganz abschaltet, sozusagen ein Watchdog für die
> Anzeige. Dafür gibt es einige Möglichkeiten, z.B. ein Digitsignal über
> einen Kondensator auskoppeln oder einen tatsächlichen Watchdog
> verwenden, wie er in vielen Supervisor- oder Reset-ICs enthalten ist.

Wäre noch ne super idee. Kannst du mir das mit den Kondensator beim 
Auskoppel mal aufzeichen? Also nen Schaltungsbeispiel?!

von Roy P. (digga)


Angehängte Dateien:

Lesenswert?

> ... und einen 68 Ohm Widerstand (0.25W
> reicht schon) für RB1 bis RB7. Das sind dann 52mA pro 1/4 der Zeit
> eingeschaltetem Segment (schaltet der ULN2003 problemlos)...

OK, also lag ich ja nicht falsch. Wenn ich jetzt noch den Spannungsfall 
des darlington-arrays mit einrechne (Uce(sat)=0,7V), also die Spannung 
über dem RBx um 0,7V weniger ausfällt, dann reichen auch meine 56 Ohm 
Wid. und der Strom ist dann auch 52mA. Gut ist das also soweit richtig.

Jetzt würde ich mich noch über eine Schutzschaltung via 
Koppelkondensatoren freuen.


Im Anhang nochmal die korrigierte Schaltung mit den richitgen 
Bezeichungen der BE.

P.S.: Die vorhergehende Anlage, also die mit den 3W Wid. und der LOGO 
war NICHT von mir.

von Peter D. (peda)


Lesenswert?

Wie kriegt man denn nur solche Schaltpläne hin?
Das verursacht ja Augenkrebs.

Stell mal das Raster auf den Pinabstand wie beim IC. Dann brauchst Du 
nicht mehr solche Zickzack-Drähte ziehen. Und siehst auch selber besser 
durch.

Und Schrift darf man ruhig neben die Bauteile/Drähte plazieren.

Und wenn man schon Power-Symbole verwendet, dann muß man nicht erst 
lange Drähte dahin ziehen. Direkt das GND an das Bautteil und gut.


Peter

von MaWin (Gast)


Lesenswert?

> Im Anhang nochmal die korrigierte Schaltung

Ich glaube nicht, daß deine IRF5305 so rum eingebaut schalten, auch sind 
5V Ugs durch den 5k1+5k1 Spannungsteiler für die offiziell zu wenig 
(auch wenn sie nicht 31A sindern unr 400mA schalten sollen baut man das 
so nicht).

Auch C2, C3, C3 dürfen grösser dimensioniert sein, für 400mA/12V braucht 
es keinen LM350, es tut an 24V ein LM7812, für 5W auf einem Kühlblech 
von 10 x 10cm.

von Roy P. (Gast)


Lesenswert?

> Ich glaube nicht, daß deine IRF5305 so rum eingebaut schalten,...

Da gebe ich dir recht. Mein fehler habe ich wiedermal nicht drauf 
geachtet wie rum die jetzt gezeichnet sind. In real sind sie aber 
richtig herum verbaut.

> auch sind
> 5V Ugs durch den 5k1+5k1 Spannungsteiler für die offiziell zu wenig

Ich will mich jetzt nicht aus dem Fenster lehnen, aber lt. Datenblatt 
sind bei einer Ugs = 5V ein Strom von 9A drin und bei sogar 6V ein Strom 
von ca. 11A. (Fig.1, Fig.2, Fig.3)

Wie baut man es deiner Meinung nach richtig?

Anmerkung: Sind meine ersten Erfahrungen mit P-MOSFETs und der 
dazugehörigen Schatung, also nicht gleich hauen. Für Kritik und 
Vorschläge bin ich offen.



> Wie kriegt man denn nur solche Schaltpläne hin?
> Das verursacht ja Augenkrebs.

Sry Peter, sieht bescheiden aus (weiß ich auch) wird überarbeitet.

von Wilhelm F. (Gast)


Lesenswert?

Roy P. schrieb:

> Für Kritik und
> Vorschläge bin ich offen.

Werden die Gates der MOSFETs schnell genug umgeladen? Oder hast du in 
der Ansteuerung Totzeiten drin? Überlappungen könnten sonst bei 
Dunkelheit evtl. zu einer Art unschönem Nachleuchten von benachbarten 
Bausteinen führen.

Nur als Randbemerkung, auch wenn die Schaltung mal funktioniert.

von Reinhard Kern (Gast)


Lesenswert?

Wilhelm Ferkes schrieb:
> Überlappungen könnten sonst bei
> Dunkelheit evtl. zu einer Art unschönem Nachleuchten von benachbarten
> Bausteinen führen.

Das kann man notfalls auch noch in der Software verhindern, wenn man es 
denn kann. Ich sehe grundsätzlich eine kurze Zeit vor in der alle 
Segmente oder alle Digits aus sind. Z.B. Digits ausschalten - Segmente 
umschalten - nächstes Digit einschalten.

Gruss Reinhard

von Reinhard Kern (Gast)


Angehängte Dateien:

Lesenswert?

Roy P. schrieb:
> Kannst du mir das mit den Kondensator beim
> Auskoppel mal aufzeichen? Also nen Schaltungsbeispiel?!

Anbei das Prinzip: nur solange an Digit n Impulse kommen, ist das 
Display mit GND verbunden.

Gruss Reinhard

von Wilhelm F. (Gast)


Lesenswert?

Reinhard Kern schrieb:

> Das kann man notfalls auch noch in der Software verhindern, wenn man es
> denn kann. Ich sehe grundsätzlich eine kurze Zeit vor in der alle
> Segmente oder alle Digits aus sind.

Das macht sogar der uralte 8279 (Keyboard-Display-Interface) von selbst. 
Bei Bipolartransistoren gibt es meist keine Probleme dieser Art.

Wenn man eine Totzeit per Software einfügt, ist alles kein Problem.

von MaWin (Gast)


Lesenswert?

> Wie baut man es deiner Meinung nach richtig?

Na 10-12V an UGS, so wie es auf Seite 1 im Datenblatt steht (Continuous 
Drain Current, VGS @ -10V) also den Transistor ohne die 5k1 nach Masse 
schalten lassen, nur die 5k1 pull up drinlassen.


> Ich will mich jetzt nicht aus dem Fenster lehnen, aber lt. Datenblatt
> sind bei einer Ugs = 5V ein Strom von 9A drin und bei sogar 6V ein Strom
> von ca. 11A. (Fig.1, Fig.2, Fig.3)

Oh no, noch so ein Verwirrter.

Das ist ein TYPISCHES Diagramm, und die Werte Ugs können um 1:2 
schwanken, wie schon das Datenblatt sagt (VGS(th) 2 .. 4V).

Also können deine abgelesenen 9A auch durchaus erst bei einer Ugs von 7V 
fliessen und bei 5V ganz einfach nichts (250uA).

von Roy P. (digga)


Lesenswert?

> Oh no, noch so ein Verwirrter.

> Das ist ein TYPISCHES Diagramm, und die Werte Ugs können um 1:2
> schwanken, wie schon das Datenblatt sagt (VGS(th) 2 .. 4V).

Ok, alles klar werde ich ändern.

> Werden die Gates der MOSFETs schnell genug umgeladen? Oder hast du in
> der Ansteuerung Totzeiten drin? Überlappungen könnten sonst bei
> Dunkelheit evtl. zu einer Art unschönem Nachleuchten von benachbarten
> Bausteinen führen.

Also, ein Nachleuchten sehe ich nicht. Also gehe ich davon aus das 
schnell genung umgeladen wird. Aber dein Vorschlag ist gut, denn an 
sowas habe ich nicht gedacht. Werde in die SW noch ne kleine Totzeit zur 
Sicherheit einbauen. Danke.

@ Reinhard: Danke für die Schaltung. Ist genial, einfach und schnell zu 
bauen.

von Roy P. (digga)



Lesenswert?

So, es ist vollbracht. Der Vollständigkeit halber, hier die korrigierte 
und überarbeitete Schaltung.

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.