Hallo alle zusammen, zu der im Bild gezeigten Schaltung habe ich ein paar Fragen. Ich will nur wissen und verstehen wie es funktionert und hoffe ihr könnt mir dabei weiterhelfen. Die Leiterplatte stammt aus einem der millionenfach verkauften "Spinner", die nun nach dem Hype für paar Cent auf den Wühltischen an der Kasse verramscht werden. 1.Frage: Die Schaltung läuft mit 3 Volt (Li-Zelle 1220 ist auf der Rückseite der Platine befestigt). Von den 10 LED sind 4 Stück blaue. Außer dem IC, einem Taster zum Einschalten und den LED sind keinerlei weiteren BE vorhanden. Die Schaltung funktioniert auch noch bei ca. 2,5V. Wie wird das mit den blauen LED realisiert? Hat der IC intern evtl. eine Ladungspumpe? 2.Frage: Es gibt keinerlei Vorwiderstände für die LED. Trotzdem sind alle LED stets gleichmäßig hell, egal ob nur eine oder alle 10 leuchten. Kann der IC eine Art KSQ für die Ausgänge beinhalten? Wenn nicht, lässt sich das auch mit Software erreichen? 3.Frage: Der IC hat max. 6 Pins als Ausgänge zum Treiben der 10 LED zur Verfügung. Es müsste also irgendein Multiplexbetrieb stattfinden. Da die LED-Zeile der Schaltung Text und beliebige Grafikmuster anzeigen kann, muss jede LED auch einzeln ansteuerbar sein. Egal mit welcher Drehzahl die LED-Zeile rotiert, keine einzelne LED flimmert, wie man es bei hohen Drehzahlen und Multiplex erwarten könnte, wenn alle 10 LED gleichzeitig auf ON geschaltet sind. Da die Schaltung keinen Winkelsensor besitzt, kann das Multiplexing auch nicht mit der Winkelposition synchronisiert werden (um etwa ein stehendes Bild zu erhalten). Wie kann so trotz alledem mit dieser Minimalschaltung bei Rotation ein flimmerfreies Multiplexing realisiert werden? Der IC hat kein Label, ist also leider eine Blackbox. Wenn ich Zeit habe, werde ich den Schaltplan dazu mal aufzeichnen. Die paar Leitungen dürften schnell durchzuklingeln sein. Blaue (bzw. weisse) LED mit 3 Volt direkt per µC anzusteuern finde ich schon interessant. Beste Grüße Micha
:
Bearbeitet durch User
Michael P. schrieb: > zu der im Bild gezeigten Schaltung Das ist eine Platine, keine Schaltung (Schaltbild)? Michael P. schrieb: > Es müsste also irgendein Multiplexbetrieb stattfinden. Charlieplexing
:
Bearbeitet durch User
Wenn man sucht, kann man schon blaue und weiße LEDs unter 3V finden, allerdings haben die Seltenheitswert.
Was hindert einen Hersteller daran, verschiedene Funktionen in ein IC zu integrieren? Warum darf nicht auch ein Drehratensensor darin verfügbar sein? Meist können LEDs einen Spitzenstrom vertragen und das plumpest Mögliche wäre, die mittlere Leistung über eine PWM zu liefern, ohne den Spitzenstrom zu überschreiten. Unter Umständen hat auch die Versorgung einen Innenwiderstand, was den Maximalstrom ebenfalls begrenzt (Stichwort Throwie). Es gibt übrigens auch ins PCB eingebettete Bauteile. Dazu könnte der Kondensator für die Ladungspumpe gehören.
Michael P. schrieb: > Wie kann so trotz alledem mit dieser Minimalschaltung bei Rotation ein > flimmerfreies Multiplexing realisiert werden? Obwohl SinoWealth und Holtek interessante uC haben, mit 100mA Treiberleistung direkt für LEDs, kenne ich keine mit eingebauter charge pump. Miss doch mal mit einem Oszilloskop bei wechselnder Betriebspannung die relevanten Spannungen an den LEDs nach. Und wenn du kein Scope hast, löte ein blaue LED aus und schau, an welcher Spannung sie welche Helligkeit produziert. Eine Reduzierung des mittleren Stromes bei höheren Spannungen liesse sich ja durch Messen der Betriebsspannung per A/D und verkürzten PWM Impulsen erreichen.
Die LEDs werden wohl mit nur wenigen mA laufen und ich fürchte die Strombegrenzung wird teilweise über den Innenwiderstand der Batterie passieren…
Hallo, danke erstmal für eure Antworten. Bei ähnlichen Anwendungen, z.B. Propelleruhren, werden die Zeichen oder Grafiken spaltenweise berechnet und angezeigt. Entweder die Spalte komplett mit allen Punkten (meistens 8) oder alternativ bei der 1. Umdrehung z.B. Pkt 1 - 4, bei der 2. Umdrehung Pkt 5 - 8 usw. Durch die schnelle Rotation wird dann unter Ausnutzung der Trägheit der Rezeptoren im Auge das Bild zusammengesetzt. Ähnlich also wie beim alten Röhren-TV. Bei der vorliegenden Leiterplatte werden die Zeichen auch alle sequentiell spaltenweise nach einem im µC fest eingestelltem Takt angezeigt. Einen externen Trigger für die Synchronisierung gibt es definitiv nicht. Wenn ich starr geradeaus schaue und die LP einmal schnell horizonal bewege, ist der Text oder die Grafik klar zu sehen. Es bleibt die Frage, wie die es schaffen, dabei die Spalten (hier 10 LED) auch mit Charieplexing gleichzeitig komplett und flimmerfrei anzuzeigen. Bei Charlieplexing können ja prinzipbedingt nie alle LED gleichzeitig leuchten. Eigenlich müsste dazu wohl eine extrem hohe MPX-Frequenz zum Einsatz kommen. Leider habe ich z.Zt. für derartige Messungen keinen geeigneten Oszi oder LA hier. Jörg R. schrieb: > Charlieplexing ja, ist so. Jeweils 2 LED sind antiparallel zusammengeschaltet. Habe es eben mal ausgemessen. Boris O. schrieb: > Es gibt übrigens auch ins PCB eingebettete > Bauteile. hier eher wohl nicht der Fall. Das ist eine billige doppelseitige Hartpapierplatine. > Unter Umständen hat auch die Versorgung > einen Innenwiderstand wenn der Innenwiderstand der Zelle gezielt ausgenutzt wird, ist es erstaunlich, dass die Flanken der Schaltimpulse den µC ohne einen Stützkondensator wegen unstabiler Spannung nicht zum zufälligen Absturz oder Reset führt. Michael B. schrieb: > Und wenn du kein Scope hast, löte ein blaue LED aus und schau, an > welcher Spannung sie welche Helligkeit produziert. an einer blauen LED habe ich 2,75 Volt gemessen Beste Grüße Micha
:
Bearbeitet durch User
Noch was: Habe gerade mal am IC gemessen. Pin 1 ist Vdd und Pin 8 ist Vss. Ist das nicht der Standard bei den einfachen PICs?
Michael P. schrieb: > Habe gerade mal am IC gemessen. Pin 1 ist Vdd und Pin 8 ist Vss. > Ist das nicht der Standard bei den einfachen PICs? und bei Atmels und bei vielen anderen vermutlich auch. Das reicht nicht, um auf einen bestimmten Typ zu schließen.
Hallo, für alle die es interessiert habe ich hier mal den Schaltplan gezeichnet und beigefügt. Keine Widerstände zur Strombegrenzung, keinerlei Stützkondensatoren am Controller - trotzdem läuft diese absolute Minimal-Schaltung stabil. Sogar mit blauen LED, bei dieser geringen Spannung! Clevere Typen, die das auf dieser HW so zum Laufen gebracht haben. Vor allem beindruckt mich, wie sie die gesamte Zeile trotz Charlieplexing auch bei schnellster Rotation so gleichmäßig hell erscheinen lassen können. Den IC habe ich nun auf eine Adapterplatine gelötet. Ich versuche mal ob ich mit einem Programmer darauf zugreifen kann. Die SW ist sicherlich code protected, aber wenigstens der Typ vom Controller könnte so ja mit etwas Glück zu ermitteln sein. Beste Grüße Micha
Geh lieber mal davon aus, dass der Controller ein Chinamodell ist von dem wir hier im Westen noch nie was gehört haben. Die haben da Teile für unglaublich wenig Geld mit entsprechend wenig Funktionen (z.B. 4-Bit-Controller). Es würde mich eher wundern wenn da überhaupt Flash-Speicher drin steckt. Eher ist der One-Time-Programmable (OTP) oder kommt sogar schon mit fertigem Programm aus der Fabrik. Du wirst also kaum eine Chance haben da was dran zu ändern. Ich hab sogar mal einen OTP-BluetoothLE-Controller gesehen.
Es gibt mitlerweile einen Haufen von LED-Treiber IC's. Die sind für den Zweck geschaffen. Diese regeln alles selbständig. Die brauchen keine ext. Widerstände. Strombegrenzung macht der Chip, und besser als wie mit Widerständen, da er bei ändernder Spg. den Strom nachregelt. LT3760fc, LT3909fb, LT375612fb, AL9910 - 9910a, tlc5947, ....
Hallo, > dass der Controller ein Chinamodell ist von > dem wir hier im Westen noch nie was gehört haben. > Es gibt mitlerweile einen Haufen von LED-Treiber IC's. Die sind für den > Zweck geschaffen. Ja sicher. Die Entwicklung auf dem Gebiet geht ja rasend schnell. Dennoch, selbst die intelligenteste LED-Treiber-Lösung, in einem IC integriert, kann es nicht ermöglichen, dass bei der Beschaltung wie im Bild gezeigt mehr als 50% aller LED gleichzeitig leuchten. Auch wer noch nie was mit LED-Multiplex-Betrieb, speziell Charlieplexing, zu tun gehabt hat erkennt am Schaltbild sofort, dass von den antiparallel angeschlossenen LED-Paaren zu einem Zeitpunkt X maximal eine leuchten kann. Egal, welche (beliebige) Pegelkombination (H,L,open) an den Ausgängen des IC anliegt. Mein Handy kann angeblich Video mit über 900 fps aufnehmen. Ausprobiert habe ich das noch nie. Es wäre gut, wenn ich den sequentiellen Bildaufbau mal optisch dokumentieren könnte. Derartige Highspeed-Aufnahmen benötigen aber wohl soviel Licht, dass die Leuchtkraft der kleinen LED vermutlich zu schwach dafür ist. Mal schauen... Beste Grüße Micha
Michael P. schrieb: > Vor > allem beindruckt mich, wie sie die gesamte Zeile trotz Charlieplexing > auch bei schnellster Rotation so gleichmäßig hell erscheinen lassen > können. Das ist doch trivial. Mit einem Tiny@8MHz z.B. kann man bei nur vier Bits für das Charlieplexing schon bei völlig naiver Implementierung irgendwas bei gut 380kHz framerate erreichen (Input und Timer für die state machine pollen ist da bereits eingerechnet). Die entsprechende Schleife sieht so aus: outloop: out LEDPORT,R16 out LEDPORT,R17 out LEDPORT,R18 out LEDPORT,R19 out LEDPORT,R20 out LEDPORT,R21 out LEDPORT,R22 out LEDPORT,R23 out LEDPORT,R24 out LEDPORT,R25 out LEDPORT,R27 out LEDPORT,R28 out LEDPORT,R29 out LEDPORT,R30 out LEDPORT,R31 sbis KEYFLGREG, KEYINTBIT rjmp statemachine_keytoggle sbis TMRFLGREG, TMRINTBIT rjmp outloop ;TODO: add code for timer step here statemachine_keytoggle: ;TODO: add code for key line toggle here Jeder gelernte Assemblerprogrammierer lacht über so ein Problem nur herzhaft. Der beschäftigt sich damit, wie es noch schneller gehen könnte (und das geht!). Tipp: man braucht nicht alle 16 möglichen Zustände ausgeben, das geht deutlich besser und spart dann auch noch Code an der Stelle, wo die Inhalte der (dann deutlich weniger) Framebuffer-Register in der state machine berechnet werden...
Hallo, c-hater schrieb: > ... Jeder gelernte Assemblerprogrammierer lacht über so ein Problem nur > herzhaft.... Na ja, von viel Praxisnähe in Bezug auf Charlieplexing zeugt der Beitrag nicht gerade. > ...man braucht nicht alle 16 möglichen Zustände > ausgeben... Zum Ansteuern von LED per Charlieplexing gibt es für 4 lines genau 12 sinnvoll mögliche Bitkombinationen, bei 5 lines sind es 20. Dazwischen ist nix, also auch nicht die erwähnten "16 Möglichkeiten". > outloop: > out LEDPORT,R16 > out LEDPORT,R17 > out LEDPORT,R18 . . Laut Definition arbeitet Charlieplexing u.a. maßgeblich durch Anwendung des tristate-mode. Zumindest bei den Prozessorfamilien AT und PIC lässt sich dieser nur erreichen, indem die betreffenden Portbits auf Input geschaltet werden. In dem angeführten Codeschnipsel müsste also zwingend vor JEDEM einzelnen OUT zumindest noch ein DDRn bzw. TRISn per LD oder MOV geändert werden. Dazu kommt dann noch die Berechnung der in diese Register zu ladenden Bytewerte, die sich, wenn variable Werte grafisch angezeigt werden sollen, schnell mal ändern können. Das hat alles mit dem Handling vom Framebuffer selbst noch garnichts zu tun! Wenn man Zeichen oder Grafik als Matrix mit Charlieplexing ausgeben will, braucht man faktisch neben der Tabelle der Bitfolgen für den Zeichensatz zusätzlich noch eine gleichgroße Tabelle dazu mit den Bitfolgen für die Werte der DDRn/TRISn-Register. Dieser Riesenaufwand dürfte auch der Grund sein, warum bisher kaum jemand dieses Multiplexing bei derartigen Anwendungen einsetzt. Ganz soooo trivial die Geschichte also nicht. Und das Problem der gleichmäßigen Helligkeit aller Segmente, das bereits beim üblichen Stellen- oder Spaltenmultiplex eine Rolle spielt, ist beim Codebeispiel gleich völlig unter dem Tisch gelandet. ;>) Wünsche noch eine angenehme Winterzeit.....
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.