Moin Ich bin auf der Suche nach externen PWM Bausteinen, am liebsten mit 8 AUsgängen zum direkten (oder indirekten) Anteuern von LEDs. Ich dachte dabei könnte pro Ausgang der Wert 0-255 seriell übertragen werden was schließlich in der Helligkeitsänderung der angeschlossenen LED resultiert. Bislang habe ich mit dem TL494 gelibäugelt, aber vielleicht gibt es ja bessere Lösungen... Gruß Kamin Katze
Cypress hatte da mal was, einen IIC Portextender der neben einfachen I/Os auch mehrere PWMs drin hat.
Wenn es auch 16 Ausgänge sein dürfen, bietet sich der TLC5950 von TI an: Er besitzt 16 Ausgänge à 120 mA mit 6 Bit Dot Correction und 12 Bit PWM. Die Ansteuerung erfolgt per SPI. http://focus.ti.com/docs/prod/folders/print/tlc5940.html
Hallo Kami Katze, von NXP (Philips) gibt es einen ganzen Sack voll I2C Bausteine für LED-PWM: http://www.nxp.com/#/homepage/cb=[t=p,p=/71114/41735/48878]|pp=[t=pfp,i=48878] Von den simplen 8 Bit bis zu 16 Bit mit Gruppenbildung. avr
Danke für die Tipps erstmal. Allerdings ist mir das ganze zu langsam... Ich bin dabei, eine RGB-Led Leiste mit etwa 100 LEDs (a 5mm = 50cm) durch Rotation als leuchtende "Littfasssäule" darzustellen. Der Umfang sollte etwa 200 LEDs sein; das heißt, dass sich die Leiste pro Umdrehung 200 mal ändert. Bei einer Geschwindigkeit von etwa 100 Umdrehungen pro Sekunde (evtl. gehts auch mit 50 flimmerfrei, bin dahingehend noch am testen) ändert sich die Leiste also 20.000 mal pro Sekunde. Halbbilder (Interlacing) darstellen usw. kommt nicht in Frage, da durch die Umdrehung jede LED nur 1/200 pro Sekunde an jeder einzelnen horizontalen Position leuchtet. Die Leuchtkraft wird durch die Trägheit des Auges ohnehin schon stark vermindert, jede weitere Absenkung wäre in der Tat strafbar... Die Ansteuerung habe ich auf 3 AVRs aufgeteilt (pro Farbe 1 AVR), das dürfte ausreichen. Allerdings stellt PWM wohl das größte Problem dar... Der PCA9626 (24LED PWM Treiber) hat zum Beispiel eine 97 kHz PWM-Frequenz. Bei 20.000 Umdrehungen würden also pro LED und Position etwa 5PWM Zyklen durchlaufen werden. Das ist zwar nicht viel, würde aber funktionieren. Schlechter schaut es mit der Ansteuerung der PWM-Treiber aus. Der obgenannte Treiber wird per I2C angesteuert im normalen Modus also mit 100kb/s. Das ist eindeutig zu wenig, um die PWM-Daten für 24LED zu übertragen. Hat jemand einen Lösungsansatz? Gruß Kamin Katze
Du brauchst etwas schnelleres als I2C zb SPI, der AS3693 oder AS1112 sollte passen. lg
> Hat jemand einen Lösungsansatz? Klar, versuch's mal mit nachdenken. 100 Umdrehungen pro Sekunde, 200 Positionen, 5 komplette PWM Zyklen, Helligkeit mit 8 bit also 256 Stufen, macht 25.6MHz PWM Takt. Schon mit einem AVR die 60 kByte Helligkeitswerte 100 mal pro Sekunde umherzuschalfen, ist 'ambitioniert', woher sollen die Daten denn auch kommen, RAM gibt's jedenfalls nicht so viel. Einen TL494 bloss weil er PMC Controller heisst, als LED Dimmer einzusetzen, zeugt von grandioser Unkenntnis. Die üblichen spinning LED signs machen gar keine Helligkeit, sondern nur voll an oder voll aus. Nehmen wir an, die Helligkeitsregulierung um Videos darzustellen ist das Besondere an deiner Schaltung. 5 PWM Zyklen brauchst du nicht. Wenn man bei digitaler PWM bleibt (also LED ist n/256 der Zeit voll an, dann aus) mit 300 Kanälen, müssen 300 Byte-Counter 5120000 mal pro Sekunde dekrementiert und 20000 mal pro Sekunden neu geladen werden. Will man das mit einem Chip machen, sollte man zu einem FPGA greifen, einem Spartan mit mindestens 80000 Zellen und 320 I/O Pins. Die haben dann auch 60k RAM zum Puffern der Daten. Das sind schon die grösseren, also lass dich im FPGA Forum nach der preiswertesten Lösung beraten. Mit fertigen serilee versorgten mehrkanaligen LED PWM Dimmern wirst du Abstriche machen müssen.
Hallo Kamin, Wenn du bewegte Bilder anzeigen möchtest sehe ich schwarz. Wenn du "nur" fixe Bilder anzeigen möchtest, würde es folgender Maßen gehen: Aus dem Bild werden die RGB-Infos extrahiert, und diese wiederum in PWM-Infos in einer Tabelle abgelegt. Die Tabelle wird anschliessend auf "Vor-Ort"-AVR's aufgeteilt. Dazu wird eine normale serielle Übertragung benutzt. Die Vor-Ort-AVR's ´treiben die LED's direkt (das können die). Einige AVR'S können bis 20MHz getaktet werden, das heisst ein Takt dauert 50 ns (Nano-Sekunden). Die meisten Maschinenbefehle dauern 1-2 Takt-Zyklen. Laut deinen Angaben, wird eine LED für 50us mit einer best. PWM angesteuert (1/(200Umdr. x 200 LED's)=50us). Während dieser Zeit sollen mindestens 5 PWM-Zyklen durchlaufen werden. Man hat also 50us Zeit, die PWM-Daten für die nächsten 50us vorzubereiten. Mithin ca. 500 Maschineninstruktionen. Das sollte reichen, um aus einer Tabelle indiziert zu lesen. Damit die LED's auch alle schön synchron sind, müssen die Vor-Ort-AVR pro Runde einmal per externem Hardware-Signal synchronisiert werden.
Hallo Michael AVR sind für die direkte Ansteuerung nicht geeignet, da pro LED etwa 20mA, je nach Farbe sogar bis zu 30mA, benötigt werden. Außerdem braucht man bei einer Leiste mit 100 RGB-LEDs, sprich 300 LEDs auch 300 direkte Ausgänge die alle PWM beherrschen bzw per Software simulieren. Da brauch man Unmengen von AVRs dazu... Ich hab mir die Sache mit FPGA schon überlegt, genauer gesagt hab ich mir mal einen Xilinx XC3S4000 angeschaut. Die sind mit 100Euro erheblich tuerer als eine AVR Lösung wäre aber das größte Problem wird wohl sein, den Chip mit seinen 900 Pins mal auf die Platte zu bekommen. Wäre toll wenns da so ne Lösung gäbe, wie bei SOcket 775, hab aber bislang nix gefunden. Gruß Kamin Katze
Hallo nochmal, Ich wünsch Dir weiterhin viel Glück bei deinem Projekt. Wie du schon erkannt hast, sind 300 Ausgänge eine Menge. Gerade deswegen würde ich eine modulare Lösung vorziehen. Bei den Stromangaben muss ich Dir wiedersprechen, laut Original Atmel-Dokumentation, liegen die "absolute maximum-ratings" für "DC-Current per I/O-Pin" bei 40mA. So, dann noch viel Spass beim Löten von 300 FPGA-Pins ;-)
ja, pro Pin vielleicht. Aber insgesamt hast du nicht mehr als 300mA Source zu verfügung, 350mA als Sink (ungefähr, müsst nochmals nachschaun...) Gruß Kamin Katze
@ Kamin Katze (Gast) >Ich hab mir die Sache mit FPGA schon überlegt, genauer gesagt hab ich >mir mal einen Xilinx XC3S4000 angeschaut. Die sind mit 100Euro erheblich Ist da ne 0 zuviel? Back erst mal kleinere Brötchen, nimm einen vom Kaliber XC3S400 (vierhundert), der hat im TQFP144 Gehäuse ~100 User-IOs und ist sehr preiswert. Davon drei und fertig ist die Laube. MfG Falk
Bei so vielen LEDs und so schnellen Wechseln: Schon mal Gedanken über die Synchronisation gemacht? Die Daten werden ja nacheinander geschrieben.
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.