Raspberry Pi mit TM1812 Stripes

  • Hallo zusammen,


    ich bin gerade an einem Projekt dran. Ich möchte via Android Smartphone ein paar Stripes (TM1812) via Raspberry Pi (Middleware in Java, Treiber für SPI in C++) steuern. Mein Prototyp funktioniert soweit. Wenn mal alles läuft stelle ich das Projekt hier im Forum vor und gebe auch gerne den Sourcecode heraus.


    Allerdings gibt es noch ein Problem:


    Bei niedriger Helligkeit fangen die Leds im Stripe an zu flackern. Und zwar am Ende der Stripe besonders oft und je näher ich dem Anfang komme um so seltener. Reduziere ich die Spannung von 12 auf kann 10 Volt reduziert sich der Effekt sehr stark. Bei hoher Helligkeit (also RGB jeweils größer 170,170,170) ist der Effekt auch fast nicht zu erkennen. Sowohl bei 10 als auch bei 12 Volt. Ich habe ein Meanwell SP 150 12 verwendet. Alternativ auch ein Universalnetzteil. Immer das gleiche. Auf dem Oszilloskop sehen die Bits so aus wie ich es erwarten würde.


    Ich habe testweise auch mal in der Mitte des 5m langen Stripes die Spannung neu eingespeist. Aber das scheint nichts zu bringen. Weitere Modifikationen wurden nicht vorgenommen.


    Hat vielleicht jemand einen Tipp bezüglich dieser Stripes für mich? Ich bin kein Elektrotechniker und weiß langsam nicht mehr weiter.


    Vielen Dank und viele Grüße

  • daran hatte ich auch erst gedacht. allerdings wird nach dem ersten chip ja das signal mit 5 Volt weitergeleitet. und gerade die ersten LEDs machen nie Probleme. Die restlichen vor allem wenn 12 Volt angelegt sind anstatt 10Volt.

  • Hast du es schon mal mit ein paar Stützkondensatoren in der Versorgungsleitung ausprobiert. Ruhig auch über den Stripe verteilt. Könnte mir vorstellen, dass das NT zwischendurch mit dem Nachregeln nicht hinterherkommt und dadurch die Spannung einbricht. Bei 12V fließt entsprechend mehr Strom als bei 10V und der Einbruch ist dadurch heftiger.

  • Ich vermute das Problem auch hier, habe nämlich aktuell das selbe... ;)


    ne 22 x 22 Pixel-Fertigmatrix, das sind so Stripes mit APA101-LEDs auf ne flexible Matte geklebt und noch mal ne transparente Folie drüber...


    da war erst ein NT dran, das gerade mal so gereicht hat -> viel Geflacker immer wieder, wohl wegen schlechter Nachregelung...


    jetzt ist ein PC-NT dran, das Flackern ist nur noch sehr selten - ganz habe ich es noch nicht weg bekommen, müsste wohl irgendwie für mehr Grundlast sorgen.


    ich kann leider keine Kondis auf den Stripes anbringen, weil ich das Teil dazu aufschneiden müsste, und das gehört mir gar nicht - würde mich dann schon interessieren, ob das bei Dir was bringt, da müsste ich dann dem Hersteller mal sagen, dass er evtl. die gleich dazu baut...


    mich hat erst irritiert, dass es bei Dir bei niedriger Helligkeit flackert - aber das ist schon logisch: wenn das NT reicht (bei mir flackert's eher bei großer Helligkeit, weil es da an seine Grenzen kommt), dann hast Du natürlich mehr Störungen, wenn die LEDs gedimmt sind, also nur kurze Strom-Pulse ziehen, wo das NT dann mit dem Regeln nicht mehr mitkommt...

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Da du ja ein Oszi hast, schau dir dort mal die Spannung am Oszi an und zwar einmal am Anfang des Stripes und einmal am Ende, prüfe ob ein Kondensator 100nF oder 1µF am Ende der Leitung was für die LED die am nächsten ist was bringt.

  • gott sei dank bin ich nicht allein. Was mir im nachhinein auffällt. Ich hatte mal nen Elko (Kapazität nicht bekannt gerade) direkt ans Netzteil drangepackt. Das hat in der Tat ein bisschen geholfen. Ich versuche jetzt mal Kondensatoren in der Stripe zu verteilen. Ausserdem messe ich mal das Timing der Daten am Ende des Stripes... Vielen Dank für die Hinweise.

  • Fürs Protokoll: ich habe heute ein paar Kondensatoren eigenlötet. Bei niedriger Spannung ist das Flackern fast vollständig verschwunden. Ich kann jetzt sogar niedrigerer Helligkeiten fahren als vorher. Bei höherer Spannung jedoch flackert es noch. Ob es weniger ist weiß ich nicht genau. Ich experimentiere jetzt mit den Positionen der Kondensatoren. Vor allem zu Beginn der Kette fehlt einer und ich werde die Spannung noch einmal mittig einspeisen und einen großen Kondensator davor setzen.


    Frage in die Runde: Ich habe Elkos mit großer Kapazität da und relativ kleine Kerkos da. Kann man Elkos einsetzen oder gibt es Gründe die dagegen sprechen?


    Viele Grüße

  • alles nützt nichts. Ich verwende inzwischen ein komplettes Byte darauf um die Laufweite fein genug zu generieren. Der SPI Takt beträgt 8 MHZ und die Bytes die 0 und 1 repräsentieren sind:


    unsigned char spiWord1 = { 0xFE };
    unsigned char spiWord0 = { 0xE0 };


    Auf dem Screenshot sieht man auch das die Timings meiner Meinung nach dem Datenblatt entsprechen. Dort sind 400 ns für 0 und 850 ns für 1 angegeben. plus minus 100 ns.




    Mein Problem ist auch das ich nur 4096 Bytes am Stück übertragen kann. Dann ist der Puffer voll. Ich fange an zu überlegen ob ich mit einem China-Import des WS2801 bessere Ergebnisse erreichen kann. Dann müsste ich überhaupt keine Pulsweiten simulieren und könnte mit einem Schlag 4096/3 Leds versorgen.

  • versuchs mal mit einem seriellen widerstand in der spi linie, zu impedanz anpassung (47..220ohm).


    zur info ich habe (danke andre) mal einen versuch unternommen ein buffer board zu machen
    https://github.com/neophob/Kal…aster/hardware/breadboard


    edit: hier noch paar bilder des breadboards:
    http://neophob.com/2012/04/lon…allation-lessons-learned/


    hoffe das hilft, cheers