Hilfe! Folgendes Problem:
Ich baue eine Digitaluhr. Das Grundprinzip ist folgendes:
Ein MSP430 erzeugt mit einem Quarz einen 1 Hz-Takt und zählt von 0 bis 9
(auf einer 7-Seg.-Anzeige). Beim Übergang auf 0 sendet er Übertrag auf
den nächsten MSP, der zählt bis 5, usw., ich denke signaltechnisch ist
der Rest klar.
Es sollen also die Sekunden und Minuten vollständig angezeigt werden.
Die Anzeigen für die Minuten wollte ich gerne etwas größer haben, die
brauchten aber mit Vorwiderstand über 9V, die der MSP430 natürlich nicht
verkraftet. So musste ich einen Trick machen: Ich habe die Anzeigen als
common Anode an 12V-Potential gehängt, und betreibe sie negativ
schaltend: ist der Ausgang des MSP am entsprechenden Segment low, ist
die Spannung groß genug für einen Leuchteffekt, ist er high, dann nicht
(der MSP läuft mit 3V).
Ich war sehr froh als der Entwurf auf Steckbrett endlich funktioniert
hat und das auch noch recht genau (Fehler <1s /Tag).
Doch etwas sehr wichtiges habe ich übersehen: die Anzeigen ziehen sehr
viel Strom. So viel das jede Batterie in die Knie geht. Mir viel dann
auf das alle Digitaluhren mit 7Seg.-Anzeige wo ich kenne am Netz hängen
und nur LCD-Uhren mit Batterie laufen. Also will ich meiner Uhr auch ein
Netzteil verpassen.
Ich dachte da an das APS 1500 von Ansmann. Selbst wenn ich für jedes
Segment 30mA einplane, was sehr großzügig ist, zumal auch nie alle
gleichzeitig an sind, müsste das dicke reichen. Aber ich brauche ja
eigentlich einen 12V- und einen 3V-Abgriff (noch besser wäre 3,5V). Wie
kann ich das geschickt und mit wenig Aufwand realisieren? Auf der
Testplatine hatte ich einfach nen 9V-Block und zwei AAAs in Reihe
geschalten und zwischendrinabgegriffen, aber das läuft nicht mal ne
Woche mit der Belastung.
Schwererziehbar schrieb:> Wie> kann ich das geschickt und mit wenig Aufwand realisieren?
LDO-Regler für den MSP! Z.B. einen MCP1700 - den verwende ich ganz
gerne.
Schwererziehbar schrieb:> ist der Ausgang des MSP am entsprechenden Segment low, ist> die Spannung groß genug für einen Leuchteffekt, ist er high, dann nicht> (der MSP läuft mit 3V).
Das ist doch totaler Quark!!!!! Dann fließt ja immer ein Strom. Guck dir
mal Transistoren an ;-)
Dennis schrieb:> What????? Mehrere Controller für eine Uhr?!
Ja klar. Ich habe hier diese DIP-ICs vom Launchpad, für die anderen habe
ich kein Gerät um sie zu programmieren und irgendwelche QFP mit 50
Kontakten löten wollte ich auch nicht. Vielleicht nicht die eleganteste
Lösung, aber der schaltungstechnische Entwurf ist hier nicht das
Problem. Es geht mir um die Versorgung. Wie zwacke ich von 12V drei oder
3,5 ab?1
Schwererziehbar schrieb:> Es geht mir um die Versorgung. Wie zwacke ich von 12V drei oder> 3,5 ab?
Da würde ich ein kleines Schaltnetzteil nehmen. Bei den einfachen
Forderungen würde da schon ein MC34063 reichen.
Gruss
Harald
Schwererziehbar schrieb:> Ich habe hier diese DIP-ICs vom Launchpad
Dann solltest du deine Anzeigen multiplexen, wie in jeder anderen
Applikation auch.
Aber viel wichtiger ist erstmal, dass du deine Anzeigen mit Transistoren
ansteuerst und nicht mit dem MSP direkt.
Schwererziehbar schrieb:> Es geht mir um die Versorgung. Wie zwacke ich von 12V drei oder> 3,5 ab?
Mit einem Spannungsregler.
Dennis schrieb:> LDO-Regler für den MSP! Z.B. einen MCP1700
Der wird mit 12 V am Eingang gar nicht glücklich sein. Lt. Datenblatt
ist der für Eingangsspannungen bis 6.0 V ausgelegt.
Bei Reichelt gefunden:
LM 1086 IT3,3
Eigentlich genau was ich brauche oder?!
Mit der Spannung sind die großen Anzeigen sicher gesperrt!
Mir ist schon klar dass man üblicherweise Transistoren, MOSFETs usw. zum
schalten verwendet, ich hatte bloß einfach nicht Bock an jedes Segment
einen anzulöten. Ich dachte bei so kleinen Strömen geht das ohne Stress
- was soll denn das Problem sein?
Dennis schrieb:> Dann solltest du deine Anzeigen multiplexen, wie in jeder anderen> Applikation auch.
Wie soll das übrigens gehen? P1.0 bis P1.6 brauche ich für die sieben
Segmente, an P2.6 und P2.7 hängten Quarz, nur P1.7 ist noch frei-wie
soll ich damit 6 Anzeigen ansteuern?
Michel schrieb:> Der wird mit 12 V am Eingang gar nicht glücklich sein.
Stimmt, sorry, für 12V nicht geeignet.
Schwererziehbar schrieb:> wie> soll ich damit 6 Anzeigen ansteuern?
SIPO!
@ Schwererziehbar (Gast)
Anstatt das Rad als Achteck neu zu erfinden, solltest du lieber was über
die Themen LED-Matrix, Pegelwandler und [[Versorgung aus einer
Zelle]] lesen.
MFG
Falk
Schwererziehbar schrieb:> Wie soll das übrigens gehen? P1.0 bis P1.6 brauche ich für die sieben> Segmente, an P2.6 und P2.7 hängten Quarz, nur P1.7 ist noch frei-wie> soll ich damit 6 Anzeigen ansteuern?
Mit einem Schieberegister (z.B. 74HC595) kannst du dir 8 zusätzliche
Ausgänge schaffen, mit weiteren Schieberegistern entsprechend mehr.
Statt dem 74HC595 kannst du auch den TPIC6B595 nehmen, der hat an seinen
Ausgängen schon Treiber, die die für deine LED-Anzeigen nötigen
Spannungen und Ströme verkraften. Oder gleich den TLC5916, der hat sogar
Konstantstromquellen eingebaut, sodass du für die LEDs keine
Vorwiderstände mehr brauchst.
Hm, du hast die Segmente, die 25mA ziehen, direkt an den MSP430
angeschlossen, ohne Transistor und dann auch noch bei einer
Betriebsspannung von 12V? Und das überlebt der?
Christian R. schrieb:> Hm, du hast die Segmente, die 25mA ziehen, direkt an den MSP430> angeschlossen, ohne Transistor und dann auch noch bei einer> Betriebsspannung von 12V? Und das überlebt der?
Das ist dann wohl sowas ähnliches wie der Stresstest bei den
Atomkraftwerken? :-)
Gruss
Harald
@ Christian R. (supachris)
>angeschlossen, ohne Transistor und dann auch noch bei einer>Betriebsspannung von 12V? Und das überlebt der?
Sicher, wenn gleich eine gehörige Portion Glück dabei ist. Die
LED-Segmente haben wohl um die 8V + Vorwiderstand. Wenn der MSP 0V
ausgibt, sehen die Segmente 12V und leuchten. Gibt er 3,3V aus sehen sie
nur 8,7V und leuchten nur sehr schwach bis gar nicht.
MfG
Falk
Hier haste mal ein Beispiel für die Ansteuerung mit Schieberegister. So
in etwa könntest du es lösen - musst es halt an deine Wünsche anpassen.
...nur als Starthilfe... besser wäre halt n SIPO mit Latch, in dem Bild
würde man das ändern der Ausgänge theoretisch sehen, obgleich du es in
der Praxis nicht tust...wie gesagt: nur als Starthilfe.
@ Christian R. (supachris)
>Die armen Clamping-Dioden im MSP430.
Warum? Da wird gar nicht geklemmt.
> Ob der Threadersteller schon jemals>ins Datenblatt geschaut hat? Speziell bei "Absolute maximum ratings"???
Spielt keine Rolle, der Trick funktioniert an sich sauber, nur dass halt
der MSP nicht Nx25mA solide aufnehmen kann/sollte.
MFG
Falk
Im AVR-Tutorial steht es auch, dass man eine 7-Seg-Anzeige über die
Outputs lowaktiv ansteuern kann. Es ist bloß an jeder Kathode ein
Widerstand - warum macht man nicht einen einzigen an die Anode und das
wars? Wird der dann zu heiß weil alles durchgeht? Verkraften AVR mehr
als MSP?
Die Schieberegister scheinen mir ideal, sie verkraften ja auch 35mA pro
Pin, des langt 100%. Mit nem 2ten Register kann ich dann auch die
Auswahl der gerade anzeigenden Digit pinsparender gestalten, denn ich
brauche noch Pins um die Uhr auch stellen zu können;) Gibts eigentlich
auch einen weg Common Kathode Anzzeigen per Transistor zu schalten? Ich
habs versucht aber kanns irgendwie nur über die Anode steuern.
Danke für die vielen konstruktiven Beiträge! Jetzt hab ich endlich einen
Plan.
Schwererziehbar schrieb:> Gibts eigentlich> auch einen weg Common Kathode Anzzeigen per Transistor zu schalten?
Klar kannste das auch umdrehen. Zu den 7-Segment direkt am uC: Du kannst
es machen, aber du musst drauf achten, dass nicht zuviel Strom
gleichzeitig durch den uC fließt. Beim Multiplexen kannst du das regeln.
Aber ich denke für deinen Fall mit dem Launchpad bist du mit SIPOs gut
bedient.
Wenn du nun CC-Segemente steuern willst, musst du halt NPN-Transen unten
dran hängen.
Die MSPs verkraften in der Tat nicht soviel an Strom.
Schwererziehbar schrieb:> warum macht man nicht einen einzigen an die Anode und das> wars?
Weil der Strom dann je nach der Anzahl der momentan aktiven Segmente
variiert.
Schwererziehbar schrieb:> Es ist bloß an jeder Kathode ein Widerstand - warum macht man nicht einen> einzigen an die Anode und das wars?
Dann würde dieser Widerstand den Strom für alle gerade leuchtenden
Segmente gemeinsam begrenzen. Je mehr Segmente, desto dünkler würde
jedes leuchten ...
Außerdem würde sich wegen der Toleranzen der LEDs der Strom
unterschiedlich auf die einzelnen LEDs aufteilen.
> Verkraften AVR mehr als MSP?AVR: 20 mA pro Pin, insgesamt max. 200 mA
> Die Schieberegister scheinen mir ideal, sie verkraften ja auch 35mA pro> Pin, des langt 100%.
Aber nicht an allen Pins gleichzeitig (siehe Datenblatt). Ich weiß es
jetzt nur vom 74HC595 auswendig; der möchte insgesamt maximal 70 mA
sehen.
> Mit nem 2ten Register kann ich dann auch die Auswahl der gerade> anzeigenden Digit pinsparender gestalten,
Ja.
> Gibts eigentlich auch einen weg Common Kathode Anzzeigen per Transistor> zu schalten?
Ja. Genauso, nur umgekehrt ;-)
Also NPN statt PNP-Transistor nehmen, und den Emitter nach GND statt
nach V+ legen.
Seltener Gast schrieb:> Oder gleich den TLC5916, der hat sogar> Konstantstromquellen eingebaut, sodass du für die LEDs keine> Vorwiderstände mehr brauchst.
Das finde ich besonders interessant. Verstehe ich das richtig: Das Ding
nimmt nur 3,3 Volt und gibt bis zu 20 V aus?! Also kann ich auch die
großen Anzeigen mit ca. 9V dranhängen?
Schwererziehbar schrieb:> Verstehe ich das richtig: Das Ding nimmt nur 3,3 Volt und gibt bis zu 20 V> aus?!
Es kann bis zu 20V aufnehmen. Diese werden aber - genau wie bei deiner
ursprünglichen Schaltung - nicht vom IC erzeugt, sondern extern angelegt
(an die Anoden der LEDs).
> Also kann ich auch die großen Anzeigen mit ca. 9V dranhängen?
Ja.
Wenn ich die Anoden der Anzeigen mit MOSFETs ansteuern will,
funktioniert dann die folgende Kombination:
ICL7667 mit BS170
Ich blicke da nicht ganz durch, was die Treiber angeht:
-ist jeder Treiber für p- und n-Kanal geeignet und für Verarmungs und
Anreicherungstypen?! Ich denke schon denn man kann ja das Signal vom MSP
einfach invertieren für eine andere Polarität ?!
-laut dem Guide "LED-Matrix" kann man mit dem ICL7667 offenbar die Anode
einer LED-Matrix beschalten, ohne Massebezug der Gate-Spannung also
High-Side
In Mosfet Treiber ICL 7667 schreibt nun aber jemand der Treiber wäre
für Low-Side. Wie habe ich das jetzt zu verstehen?
ach jetzt seh ich erst das dass P-Kanal sind in der LED Matrix. Da bei P
alles umgekehrt ist heißt dort Low-Side wohl Source gegen Vcc?! Das ist
dann wohl auch die einzige Möglichkeit, eine Common Anode Matrix
Low-Side zu schalten zu schalten?
Steckernetzteile für externe Festplatten oder Router etc. haben oft eine
12V und eine 5V Schiene und können einiges an Strom liefern. Die Teile
gibt es manchmal auch preiswert bei Restehändlern. Bei Pollin o.ä. würde
ich mal nachsehen.
OK, fragt sich nur ob der Strom dann langt.
Da ich nicht SMD-löten will nehme ich jetzt den IRFD9024 in Verbindung
mit dem ICL7667 für meine Ansteuerung. Ist zwar nicht ganz billig aber
ein weiterer Vorteil ist dass ich es auf Breadboard testen kann.
> ca. 25mA pro Segment!
Bei einer gemultiplexten Anzeige (immer nur ein Element kurzzeitig in
Betrieb, das Auge mittelt das zum Gesamtbild der Anzeige) und bei "worst
case" (= Ziffer 8) sind das 25 mA * 7 = 175 mA für die komplette
Anzeige
Auch bei einer moderaten Erhöhung des LED-Stroms um den
Helligkeitsverlust beim Multiplexen auszugleichen (=> Datenblatt Angaben
zum Strom bei 1/x Duty Cycle beachten!) kommst du eher nicht in den A
Bereich.
Vorsicht #2: Bei Versuchen zur Stromerhöhung darf das Multiplexen nie
unterbrochen werden andernfalls röstest du die Anzeige. Das kann z.B.
beim On chip Debuggen und ungünstig gesetzten Haltepunkten passieren.
Es kann sinnoll sein, die Schaltung zunächst mit Widerständen
auszustatten, die den Strom auf das Maß beim Dauerbetrieb (<25 mA)
begrenzen und später diese Widerstände zu brücken (>25mA wg. Multiplex).
Schwererziehbar schrieb:> Hab ja vor eine Konstantstromquelle zu nehmen (wenn ich sie bekomme)
Beim Multiplexbetrieb muß auch die ein vielfaches des Dauerstromes
liefern und führt bei Multiplexstillstand zu Überlastung, falls du
während des Debuggens nicht den Strom reduzierst.
> Hab ja vor eine Konstantstromquelle zu nehmen (wenn ich sie bekomme)
Hmm - eine KSQ reicht da IMHO nicht. Du brauchst pro Segment eine
Strombegrenzung, d.h. dann mindestens 7 KSQs. Und bei einer /Common
Anode/ Schaltung sind die nicht so einfach anzuordnen.