[Sammelbestellung] Digitaler RGB-LED-Strip

  • So, da melde ich mich wieder.
    Das mit dem Bitshifting mache ich später, erstmal muss der Rest richtig gehen ;)


    Also ich habe nun nochmal die T0L- und T0H-Zeiten um je +-3 NOPs und auch mit +-2 und so, aber die blinken noch. Dann habe ich probiert zwischen den Bits Pausen zu machen, auch nix, nichtmal mit 6x NOP, was eigentlich lang genug sein müsste (411ns).
    Wir haben heute auf Arbeit noch ein altes Oszi (C1-94, von '85 aus der UdSSR xD), aber leider bringt das kein Bild mehr.. Die Glühkathode glüht aber noch und die Power-On-LED (musst mit die erste LED gewesen sein....) leuchtet auch noch. Nun ist nur die Frage, ob die Beschleunigungsspannung (laut Internet bei dem bei dem Oszi 2 kV) oder die Ablenkung fehlt; aber das ist ein anderes Thema.


    Und wie meinst du das mit dem "längeren aber kürzeren Reset-Puls"? Widerspricht sich das nicht ein wenig?
    Zu deiner Vermutung: Es scheint einzig die Länge von T0H entscheidend sein. Das hier geht auch, nur flackert ein Pixel dann mal nach 2 Sekunden oder so.


    Selbst das geht, obwohl das High-Bit KOMPLETT falsche Timings besitzt, theoretisch:

    Code
    void HighBit()
    {
      sbi(PORTD, pin);
      __asm__("cli\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t");
    
    
      cbi(PORTD,pin);
      __asm__("nop\n\t" "nop\n\t" "nop\n\t"  "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "sei\n\t");
    }


    Ich verstehe die Welt nich mehr... vorher kam nix zu stande wegen falscher Zeiten und nun stelle ich fest, dass die eigentlich völlig anders als im Datenblatt sein können?!


    Und die Farben werden auch ohne Reset-Puls übernehmen, muss ja, der ja bei seinem Auftreten die Bits eigentlich wieder aus dem Chip gelöscht werden sollten; eben restettet.


    PS: Wie meinst du das eigentlich mit einem ganzen Port? Willst du 8 Streifen parallel nutzen oder wie? Der TM1804 erwartet ja eben serielle Daten, wie auch sonst durch eine Leitung?


    PPS: Wenn es ganz schnell gehen soll: Bei mir gehts auch mit diesen Zeiten noch, bei kürzeren gehts dann aber nicht mehr:

  • Hier drei Schnappschuesse aus der Mittagspause. (Signalanfang, Signalende, Übersicht über den Verlauf der Frames). Den oberen Kanal ignorieren.


    Ich weis leider nicht mehr, welchen modus (high- oder low speed) ich eingestellt hatte, weitere Infos morgen.


    Evtl. hilft Dir das ja weiter? Klar, ein funktionierendes Oszi wäre bei Dir natürlich Gold wert... :(


    Viel Erfolg
    Andre




  • So, gerade nochmal die Timings des Onumen Controllers nachgemessen.


    TM1804 Highspeed:
    - "1" = 950 ns High; 550 ns Low
    - "0" = 400 ns High; 1100 ns Low


    TM1804 Lowspeed:
    - "1" = 1900 ns High; 600 ns Low
    - "0" = 400 ns High; 2100 ns Low


    Also alles andere als symetrisch, etc... ?


    Die Ausgabe fuer ein Frame ist also (im low-speed-modus): 512 * 8 * 3 * 2500 ns = 30,72 ms
    Danach ein Low von etwa 18 ms -> 20 fps


    High-Speed: 512 * 8 * 3 * 1500 ns = 18,432 ms
    Danach ein Low von etwa 30 ms -> 20 fps


    Probiers doch mal mit den Timings. Ich glaube der Strip den Du hast, lief an diesem Controller problemlos im Lowspeed (?) Modus.


    Viel Erfolg
    Andre

  • Hey, danke fürs Messen! 8o


    Ich habe nun (theoretisch) folgende Zeiten:


    TM1804 Highspeed:
    - "1" = 938 ns High; 562,5 ns Low
    - "0" = 375 ns High; 1125 ns Low


    TM1804 Lowspeed:
    - "1" = 1875 ns High; 625 ns Low
    - "0" = 375 ns High; 2125 ns Low


    Genauer bekomme ich das mit dem 16 MHz-Quarz nicht hin, was aber eigentlich auch reichen sollte. Trotzdem blinken die noch immer.... In zufälligen Farben und Helligkeiten, mal der Pixel, dann der Pixel, als völlig unvorhersehbar.... Das ist doch komisch?! Aber beide Geschwindigkeitsmodi lassen die Farben wie gewünscht leuchten.


    Komisch sind eben die Timings von dem Controller, die weichen ziemlich von denen aus dem Datenblatt ab.. Ich bin aber immer noch der Meinung, dass dein Streifen eigentlich im Highspeed-Modus läuft, da Pin 7 eben unverbunden ist, wenn ich die Ausrichtung des Chips richtig sehe:


    [gallery]2491[/gallery]
    PS: Schönes Oszi habt ihr da in der Uni (oder wo das war) ^^ Ich hätte eventuell erst nächste Woche Donnerstag an ein funktionierendes Oszi zu kommen, aber bis dahin brauchst du sicher wieder den Streifen, oder?

  • PS: Wie meinst du das eigentlich mit einem ganzen Port? Willst du 8 Streifen parallel nutzen oder wie? Der TM1804 erwartet ja eben serielle Daten, wie auch sonst durch eine Leitung?

    Ja, so meinte ich das, wenn man *viele* Streifen hat, und die eben in 8 einzelne Gruppen aufteilt, so wie das mit dem Onumen-Controller ja auch geht


    Und die Farben werden auch ohne Reset-Puls übernehmen, muss ja, der ja bei seinem Auftreten die Bits eigentlich wieder aus dem Chip gelöscht werden sollten; eben restettet.

    Ja, hier ist wohl die Bezeichnung etwas verwirrend - das ist eher ein "Latch"-Signal, also hier werden die Daten dann übernommen... er muss das aber erkennen, würde er nicht, könntest Du die Dinger gar nicht ansteuern (bzw. nur ein Mal), weil die Chips sonst in alle Ewigkeit die Bits weiter durch schieben würden...


    machst Du jetzt eigentlich immer noch nach dem Reset die Leitung wieder High, oder lässt Du sie auf Low..?


    Und wie meinst du das mit dem "längeren aber kürzeren Reset-Puls"? Widerspricht sich das nicht ein wenig?

    Ich meinte eben, ne Low-Phase einbauen, die deutlich länger als die aus dem Datenblatt, aber eben deutlich kürzer als der Reset ist - also irgendwas zwischen 4 und 16 µs


    Also alles andere als symetrisch, etc... ?

    Ja, das war eben meine Vermutung, dass es darauf nicht so ankommt, sondern nur auf die Länge des Pulses (also wie lange die Leitung "High" ist), also unter ner bestimmten Zeit -> "0", über ner bestimmten Zeit -> "1" - und halt ne mindest-Pause zwischen zwei Pulsen...


    und eben auch, dass der Reset *deutlich* länger sein darf, eben auch z.B. 30 ms - das läuft hier wohl in nem Timer, damit Du eben immer ne konstante Frame-Rate von 20 fps hast, egal wie viele Pixel und welcher Modus...


    ja, Oszi wäre hier echt hilfreich, so wie das aussieht (zufälliges Flackern) denke ich, dass da eben ab&zu "0"-Pulse zu "1"-Pulsen "verschmieren", oder irgendne Einstreuung...

    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!

  • Zitat

    Ja, hier ist wohl die Bezeichnung etwas verwirrend - das ist eher ein "Latch"-Signal, also hier werden die Daten dann übernommen... er muss das aber erkennen, würde er nicht, könntest Du die Dinger gar nicht ansteuern (bzw. nur ein Mal), weil die Chips sonst in alle Ewigkeit die Bits weiter durch schieben würden...


    machst Du jetzt eigentlich immer noch nach dem Reset die Leitung wieder High, oder lässt Du sie auf Low..?

    Nein, ich setze sie einfach auf LOW und dann lasse ich die Zeit vergehen und dann fängt es erst wieder mit dem ersten Bit des neuen Durchlauf an.


    Zitat

    Ich meinte eben, ne Low-Phase einbauen, die deutlich länger als die aus dem Datenblatt, aber eben deutlich kürzer als der Reset ist - also irgendwas zwischen 4 und 16 µs

    Das ist ja komisch. Wenn ich die vorhin genannten Timings für den Highspeed-Modus nehme und 4µS-Reset, dann blinkt nichts, im Lowspeed-Modus aber schon. Allerdings kann man das auch vergessen, da die Farben dann flackern und wenn nur ein Pixel an ist, die anderen aber nicht, die dann doch wieder blinken.


    Naja, also wenn man die Pixel nicht ausmacht, gehts ja eigentlich schon recht gut :rolleyes:

  • Nabend, da bin ich wieder. Tut mir leid, dass es solange gedauert hat.... Aber vergessen habe ich das nicht ^^


    So, ich habe momentan leihweise ein analoges 20MHz-Oszi (Hameg HM-203) da mit einem 1:1 Tastkopf (da der von einem anderen Oszi war musste ich den DIN-Stecker abschneiden und einen BNC-Stecker dran löten; sollte aber so ungefähr passen mit Schirmung und Eigenschaften).
    Allerdings bekomme ich kein brauchbares Bild hin?! Sind die 20 MHz zu wenig? Ich werde mal die Zeiten erhöhen und dann nochmal gucken.