Hallo zusammen, ich suche nach einer Möglichkeit einen TM1812 LED Treiber des Herstellers Titan Micro anzusteuern. An diesen lassen sich vier RGB LEDs anschließen, die sich dann digital in Farbe und Helligkeit regeln lassen. Für die Datenübertragung zum Treiber wird nur eine Datenleitung benötigt, allerdings ist die Bitrate so hoch, dass ich mit meinem ARM STM32F107 Mikrocontroller an meine Grenzen stoße! (72MHz) Ich habe mal einen Auszug aus dem Datenblatt des Treiber-ICs hochgeladen. Das ist zwar auf chinesisch, das Timing des Protokolls kann man aber gut erkennen. Für eine logische '0' oder '1' beträgt die Periode immer 1,25us. Soll eine '0' gesendet werden, muss für 400ns High-Pegel gesetzt werden, soll eine '1' gesendet werden, so ist ein High-Pegel für 850ns erforderlich. Mein erster grober Gedanke war, alle 1,25us einen Timer-Interrupt zu erzeugen, der einen High-Pegel auf die Leitung setzt und dann zu überprüfen, ob eine '0' oder '1' gesendet werden soll. Dafür ist der STM32 aber zu langsam. Die schnellste Schaltgeschwindigkeit, die ich am Ausgang erzielen konnte waren 100ns. Wenn ich dann erst noch irgendwelche Abfragen machen muss, komme ich mit dem Timing nicht hin. Hat jemand eine Idee, wie ich am besten Daten zu dem Treiber-IC senden könnte? Andere Hardwarevorschläge gehen natürlich auch! Datenblatt des Herstellers: http://titanmec.com/docc/product-downloads-149.html Danke im Voraus! Gruß J.K.
Hi, schon mal überlegt das SPI-Interface dafür zu nutzen? Ich hatte mir das mal für die Ansteuerung eines TM1809 überlegt. Da es dafür Routinen (FastSPI) für 8MHz AVRs gibt, sollte das mit einem 72MHZ STM32 locker zu schaffen sein. Die TMs nehmen es nicht sehr genau beim Timing, das Wichtigste ist, dass der Chip die Länge des Startimpuls (0 kurz, 1 lang) unterscheiden kann. Man könnte z.B. die Bitrate auf 5 MHz setzen. Dann hat ein Bit 200ns und 8 Bit 1.6us. Will man nun dem Chip eine 1 senden, sendet man 11110000 über den SPI, will man eine 0 Senden sendet man 11000000.
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.