Hallo zusammen, ich möchte mit einem MSP430 und Charlieplexing 240 LEDs ansteuern. Da die Portpins des MSP aber keine 15 LEDs auf einmal treiben können, habe ich mir die angehängte Schaltung überlegt, die ich für jeden "Charliegeplexten" Pin aufbauen müsste. R_pnp und R_npn sind gegenüber R_uc groß. D.h., wenn der Portpin (Signal) getrieben wird, sollte je nach Pegel entweder der PNP oder der NPN durchschalten und somit auch Signal_verstaerkt getrieben werden. Wird der uC Pin auf Input gestellt, dann sollte weder der NPN noch der PNP durchschalten. Könnte das bei entsprechender Auslegung der Transistoren und Widerstände funktionieren? Viele Grüße, Gigal
Gigal Gigal schrieb: > Wird der uC Pin auf Input gestellt, dann sollte weder der NPN noch der > PNP durchschalten. > > Könnte das bei entsprechender Auslegung der Transistoren und Widerstände > funktionieren? Nein, falls der Pin hochohmig ist oder einen Pegel im Bereich 0,7...2,6V hat, sind beide Transistoren geöffnet.
Charliepixling ist nur brauchbar wenn gleichzeitig nur weniger (z.B. 1-4) LEDs leuchten sollen. Wirklich gleichzeitig geht auch nur 1 LED und extra Treiber sind wegen der 3 Zustände in aller Regel zu Aufwändig. Wenn man die Transistoren durch passende MOSFETs ersetzt, könnte es funktionieren - ist aber auch schon grenzwertig, weil die Schaltschwellen schon stimmen müssen, damit nicht beide MOSFETS gleichzeitig an sind. Die Alternative ist dann eine LED Matrix mit dann einfacheren Treibern.
> Nein, falls der Pin hochohmig ist oder einen Pegel im Bereich > 0,7...2,6V hat, sind beide Transistoren geöffnet. In DER Schaltung die er gezcihnet hat ? Du solltest dir die Beiträge auf die du antwortest schon angucken. Hätte er 3.3V | +--|< NPN | |E Pin ---+ +--- | |E +--|< PNP | GND wäre das schon eher so, aber bei 3.3V bleibt kaum was übrig an Ausgangsspannung, ist also auch unbrauchbar. Mit 2 MOSFETs könnte man den Spannungsverlust reduzieren, aber dabei welche zu finden, die bei offenem Ausgang (tri state) auch beide offen bleiben, wird wohl unmöglich, zu ungenau sind Ugsth. Also müsste jeder MOSFET eine genauere Schaltstufe bekommen: 3.3V | +--+----+----+ R R |S +--(--|-\ | | | | >--|I PMOSFET | +--|+/ | Pin ---+ | +--- | +--|+\ | | | | >--|I NMOSFET +--(--|-/ | R R |S +--+----+----+ | GND aber wir kennen unsere Pappenheimer schon;: Ach, so viele Bauteile, so viel Lötzinn hab ich gar nicht...
Hallo zusammen, zunächst mal vielen Dank für Eure Antworten. @Ulrich: Mit Charlieplexing kann bei n verwendeten Leitungen genau n-1 LEDs gleichzeitig steuern und nicht nur eine. Z.B. Leitung 0 auf High Pegel. Dann Leitung 1 .. n-1 auf Low Pegel und schon leuchten alles Leds, deren Anode auf Leitung 0 hängt. Sollen Leds nicht leuchten, werden die entsprechenden Leitungen auf "Input" also hohe Impendanz gestellt. @MaWin: Die Schaltung sieht ja richtig interessant aus und funktioniert meiner Meinung nach auch, wenn noch ein zusätzlicher Widerstand eingeführt wird (alle R haben dabei den gleichen Wert bis auf Bauteiltoleranzen): 3.3V | +--------+----+----+ R R |S + +-----(--|-\ | +--(--+ | | >--|I PMOSFET +-+ | | +--|+/ | Pin ---+ R | | | +--- +-+ | | +--|+\ | +--+ | | | >--|I NMOSFET + +--(--|-/ | R R |S +--------+----+----+ | GND 1. Fall Pin floating --> Spannungsteiler steuern Operationsverstärker --> Opv des PMOSFET --> 3.3V --> Opv des NMOSFET --> GND --> Ausgang --> floating 2. Fall Pin 3.3V --> - Eingänge der OPV haben größere Spannung als + Eingänge --> Opv des PMOSFET --> GND --> Opv des NMOSFET --> GND --> Ausgang --> 3.3V 3. Fall Pin GND --> + Eingänge der OPB haben größere Spannung als - Eingänge --> Opv des PMOSFET --> 3.3V --> Opv des NMOSFET --> 3.3V --> Ausgang --> GND Sollte ich keinen Denkfehler drinhaben, müsste das so funktionieren. Ich werde das im Laufe der nächsten Woche mal in PSPICE simulieren. Vielen Dank nochmal für die Hilfe, Gigal
Also MaWin, in deiner Schaltung (komplementärer Emitterfolger) können nie beide Transistoren gleichzeitig leitend sein. In der des TE schon, und zwar unter den von mir genannten Bedingungen, und genau das hat er gefragt.
> wenn noch ein zusätzlicher Widerstand eingeführt wird Richtig, aber deiner ist kurzgeschlossen. So war's gedacht: 3.3V | +--+----+----+ R R |S +--(--|-\ | | | | >--|I PMOSFET | +--|+/ | Pin ---+ R +--- | +--|+\ | | | | >--|I NMOSFET +--(--|-/ | R R |S +--+----+----+ | GND > nie beide Transistoren gleichzeitig leitend sein. In der des TE schon Sie sollen ja auhc nicht beide gleichztig leiten.
Man kann mit Charlipixling schon viele LEDs ansteuern, und so lange davon gleichzeitig nur weniger Leuchten sollen geht es auch gut. Es gibt auch einige Kombination wo mehr als einige LED wirklich gleichzeitig leuchtet - nur sind das halt einige Kombinationen der vielen Möglichen. Es gibt auch viele Kombination von LEDs die nicht direkt möglich sind. Das gibt sich schon aus der Zahl der Kombinationen bei N Leitungen mit je 3 möglichen Zuständen und N*(N-1)*2 möglichen LEDs. Es ist nun mal 2^(N*(N-1)*2) > 3^N ab N = 2. Einen höheren Strom kann aber trotzdem gebrauchen, wenn per Multiplexing mehrere LED im schnellen Wechsel angesteuert werden. Man kann den Treiber auch ohne OPs oder Komperatoren aufbauen. Es geht ja nur darum die 3 Spannungswerte von etwa 0 V , 1,6 V , und 3,3 V auseinander zu halten. Das geht auch schon über die Basis Emitterspannung. Im einfachsten Fall mit 2 Zusätzlichen Widerständen in der Schaltung ganz oben, so das man die Schaltschwelle der Transistoren auf etwa 2 V bzw. 1 V einstellt. Wirklich gut wird das aber auch noch nicht, weil man relativ viel Ruhestrom braucht.
Warum immer alles so kompliziert. Charlieplexing ohne die speziellen MAXIM-ICs ist viel zu aufwendig. Nimm einfach ne 15*16 Matrix. Die 16 Spalten werden über 2 * TPIC6B595 durchgeschoben, kostet 2 IO-Pins. Die 15 Reihen werden über 15 npn in Kollektorschaltung + Widerstand direkt angesteuert. Das ergibt dann 16:1 Multiplex. Macht zusammen 17 IO-Pins und fertig ist die Laube. Peter
... Charlieplexing ohne die speziellen MAXIM-ICs ist viel zu aufwendig ... Das ist nicht richtig. Hatten wir schon mehrfach das Thema. Hast du Verständnisprobleme oder möchtest du die IC der obigen Firma verkaufen?
Mit Charlieplexing kann ich N * (N-1) LED's ansteuern. Mit einer Matrixansteuerung kann ich N * M LED's ansteuern. Für 240 LED's brauchst du bei Charlieplexing 16 Leitungen. Für 240 LED's brauchst du bei einer Matrixansteuerung 16 + 15 = 31 Leitungen. Das spricht für Charlieplexing Aber Vorteile bei einer Matrixansteuerung: 1. Die Software ist einfacher zu programmieren 2. Du brauchst nur Lowside (ULN2803) und Highside (UDN2981A) Treiber. 3. Die Verdrahtung der LED's ist bei einer Matrixansteuerung deutlich einfacher Also vergiss Charlieplexing, nimm eine Matrixansteuerung. Hier noch ein kleines Bonbon: UCN5821 und UCN 5891 hier ist das Schieberegister schon drin!
Evtl könnte man hier noch 4 Dioden einfügen: 3.3V |E +-|<|-|<|-|< PNP | | Pin -R-+ +--- | | +-|>|-|>|-|< NPN |E GND Wenn der Pin hochohmig ist, dann sperren beide Transistoren solange die Spannung < 4*Ud + 2*Ube ist, also ~4,2V. Der Pin floatet dann irgendwo zwischen 1,2V (=3,3-3*0,7) und 2,1V (=3*0,7V) Verlässt er den Spannungsbereich, faängt einer der Transistoren an zu leiten. ggf muss noch jeweils ein R zwischen B+E je Transistor damit diese sicher sperren und evtl reichen auch 3 Dioden. Zugegeben... gewagt und es wird ein kleines "Siliziumgrab" Gruß Roland
Martin schrieb: > Hast du > Verständnisprobleme Nein, aber andere, z.B.: http://www.mikrocontroller.net/attachment/93262/224-2405_IMG.JPG Wer ne dunkle '8', helle '7' und gleißende '-' mag, kann es so machen. Die meisten Leute wollen aber alle Segmente gleichhell. Martin schrieb: > oder möchtest du die IC der obigen Firma verkaufen? Nö, aber Du solltest Dir ruhig mal deren Innenschaltung ansehen, damit Du endlich das Charlieplexing verstehst. Ein Charlieplexing-Ausgang braucht nämlich 3 Zustände: - stark low (einige 100mA) - Konstantstrom-high - hochohmig. D.h. um eine solche Treiberstufe nachzubilden, braucht man 2 IO-Pins vom MC. Man spart also keinerlei IO-Leitungen vom MC ein in Vergleich zum Multiplex. Peter
> D.h. um eine solche Treiberstufe nachzubilden, > braucht man 2 IO-Pins vom MC. Nö, 1 reicht, siehe meine Schaltung oben, die man natürlich bei positiver Rail auf geschaltete Konstantstromquelle umbauen könnte. > und gleißende '-' mag Auch Humbug, wenn man jedes Segment nur dieselbe Zeit mit Strom versorgt (auch wenn man die restliche Zeit nichts zu tun hat, also alles aus bleibt) sind alle gleichhell.
Das gleißende - ist nicht nötig, aber die dunkle 8 ist ein Problem. Wenn nicht bei der 8 dann bei der 88. In Grenzen kann man die kurze Einschaltdauer durch einen höheren Strom für die LEDs ausgleichen, aber bei etwa dem 10 fachen Nennstrom ist man da am Limit. Wenn deutlich mehr als 10 LEDs per Charliepixling (quasi-) gleichzeitig an sein sollten, wird es zwangsweise dunkler. Mit viel Aufwand kann man ein paar Spezialfälle retten, aber dann wird halt nicht die 88 sondern die 89 dunkel.
... Ein Charlieplexing-Ausgang braucht nämlich 3 Zustände: ... Was sollen diese ewigen Pöbeleien von dir? Versuchst du hier deinen Minderwertigkeitskomplex zu kultivieren?
MaWin schrieb: > Nö, 1 reicht, siehe meine Schaltung oben, die man > natürlich bei positiver Rail auf geschaltete > Konstantstromquelle umbauen könnte. Dazu fällt mir nur ein: Wir sparen ein, völlig egal was es kostet. Ob ein 2. IO-Pin teurer ist als 2 Komparatoren + 5 Widerstände, da hege ich meine Zweifel. Ehe ich 16 Komparatoren und nen Haufen Hühnerfutter verschwende, nehme ich doch lieber einen TPIC6B595 und mache normales Multiplex. Ich bin ein ziemlicher Layoutmuffel, d.h. möglichst einfaches Layout und möglichst wenig Bauteile. Viel Hühnerfutter ist mir daher ein Greuel. Peter
MaWin schrieb: > Auch Humbug, wenn man jedes Segment nur dieselbe Zeit > mit Strom versorgt (auch wenn man die restliche Zeit > nichts zu tun hat, also alles aus bleibt) sind alle > gleichhell. Dann aber bitteschön gehört auch noch ne Temperaturkompensation dazu. Der Widerstand eines FET ist ja temperaturabhängig. Nur Weicheier wie ich, nehmen FETs deren Innenwiderstand so klein ist, daß er keinen Einfluß hat. Ich hab deshalb überhaupt keine Skrupel, Treiber zwischen zu schalten, wenn die Last am MC zu groß wird. Peter
Hallo Leute, es ist gut möglich, das ich ein Schaltungskonzept mit Mosfet und auch an 3.3V gefunden habe. Besteht Interesse ?? MfG -- Jens
Donald Duck schrieb: > Hier ist das Schieberegister schon drin! Genau, und damit braucht man noch weniger Leitungen als beim Charlieplexing. Gruss Harald
Jens Grabner schrieb: > Besteht Interesse ?? Was kostet es denn... (nur Nerven, weil du Ugsth als zu konstant ansiehst?)
Folgende Bauteile je PIN (Charlieplexing - kein Multiplexausgang notwendig) 4 x R (eventuell ein R weniger) 1 x BAT54 1 x BC327 1 x IRLML6401 Hinweis: Ich verstehe das Forum auch als Ideenfindung! Gruß -- Jens
Jens Grabner schrieb: > es ist gut möglich, das ich ein Schaltungskonzept mit Mosfet und auch an > 3.3V gefunden habe. Da hast Du sicherlich lange und sorgfältig drüber nachgedacht. Der TE wird vermutlich aber mittlerweile entweder das Projekt in die Ecke geknallt haben oder es funktioniert schon lange.
Hier eine Schaltung die der Überschrift gerecht wird. Sie ist für 20mA bei roten Led ausgelegt. Funktion: Ist Ue > (3,3V - 0,4V) wird der Mosfet leitend. Wichtig: Der Mosfet lässt sich nur "ohne Last einschalten". Also immer erst alle Led ausschalten bevor ein neuer Mosfet geschaltet wird. Gruß -- Jens P.S.: Die Schaltung ist noch nicht praktisch getestet worden.
Für 20mA braucht man keine Verstärkerschaltung, das liefert ein uC alleine, das muss er bei dir ja auch. Ausserdem funktioniert die Schaltung nicht. 3.3V 5V | | +--+ +---------+ R R +-|<|--|<|--+ +--(--|-\ | R E | | | >--R--+---------|<PNP | +--|+/ | Pin ---+ R +--- | +--|+\ | | | | >--|I NMOSFET +--(--|-/ | R R |S +--+----+----+ | GND
MaWin schrieb: > Für 20mA braucht man keine Verstärkerschaltung ... für 15x20mA = 300mA benötigt man den Mosfet schon. Erinnerung: Eine 15x16 Matrix soll gemacht werden. Die obige Schaltung wird also 16x gebraucht um jeweils bis zu 15 Led nach "Output Low" zu ziehen . Mit "Output High" wird multiplext. ... und R3 ist der Vorwiderstand einer Led. Gruß -- Jens
Herr Kainka veranschaulicht das Prinzip der Schaltungen. http://www.elektronik-labor.de/AVR/Charlieplexing.html#v2 Meine Idee verwendet eine gemeinsame Anode anstelle der gemeinsamen Kathode.
Hier ist noch eine einfachere Variante eines Verstärkers. http://m.eet.com/media/1126085/11497-figure_1.pdf Gruss -- Jens
... und hier noch einmal anders herum. http://m.eet.com/media/1132033/14772-figure_1.pdf Gruß -- Jens
*Hinweis*: Der Charlieplexverstärker ist praxiserprobt (inklusive Software für den Arduino). Der Charlieplexverstärker ist 12x aufgebaut und treibt 126 Leds an. Bei 5V Versorgung und roten Led komme ich auf maximal etwa 240mA. Gruß -- Jens
:
Bearbeitet durch User
Details zur Softwareansteuerung kann man hier: http://www.elektronik-labor.de/AVR/Charlieplexing.html#amp nachlesen. Herr Kainka war so freundlich meinen Hinweis zu veröffentlichen. Gruß -- Jens
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.