TPM2 und die Baudraten

  • Hallo,


    ich möchte 800 Stk WS2801 Pixel mit TPM2 und einem ATMega64 ansteuern.
    Wenn ich diese mit einer SPI Freq von 1 MHz ansteuere komme ich auf 50,76 Hz.


    (Anzahl Pixel * Anzahl Farben * Bit je Farbe * (1/Frequenz)) + Latchtime = Periodendauer
    (800*3*8*(1/1000000))+,0005 = 0,0197


    Die Software soll diese SEDU-Board - Software von Pesi werden.
    Benötige ich den ATMega64P oder reicht die Version ohne P?
    Bei der Frequenz steht was von 250k, 500k und 1,25M. Bedeutet dass, dass ich eine Ausgabefrequenz von bis zu 1,25 MHz erreichen kann?
    Warum werden keine üblichen Baudraten wie 115200 oder 921600 genutzt? Ist dies grundsätzlich möglich?
    Würde ich bei einer Baudrate von 921600 dann die WS Pixel mit 0,9216 MHz speisen können? Oder habe ich da was übersehen?


    Hintergrund der Frage: Der ATMega soll von einem XPort gespeist werden, der wiederrum seine Daten via UDP vom Glediator erhält.


    Ist das alles so möglich wie ich es mir vorstelle?


    VG
    :thumbup:
    Mode

  • Ok ich habe selber etwas recherchiert.


    Wenn ich einen Quarz mit 22.1184 MHz nutze (moderates Übertakten geht ganz gut) und eine Baudrate von 921600 Baud anstrebe wäre die Konfiguration für einen ATMega:
    U2X=1
    UBRR=2


    Um dies mit Pesis TPM2 -> WS2801 Software zum fliegen zu bringen muss ich doch eigentlich in der Set_Baudrate.inc nur die Zeile

    Code
    .equ UBRR_VAL_500 = ((XTAL+500000*4)/(500000*8)-1) ; UBBR für 500 k


    gegen

    Code
    .equ UBRR_VAL_500 = 2


    austauschen und mit Baudrate 500k konfigurieren, oder? 8o

  • Zum Quellcode selbst kann ich nicht viel sagen, da stecke ich nicht so tief drin. Aber ... die Baud-Rate hängt natürlich von der sendenden Software ab. AtmoWin unterstützt da 250kBaud und Linux/boblight 500kBaud. Mit einem normalen Quarz kommt man dann auf diese Raten, für die "üblichen" krummen braucht man einen Baudratenquarz. Ich weiß jetzt nicht, was Glediator unterstützt, aber wir nutzen das 250 oder 500kBaud, soweit ich weiß.


    Der Prozessor auf dem SEDU ist übrigens ein ATmega644P und nicht 64P. Der Buchstabe P hat eine wichtige Bewandnis, denn nur dieser hat 2 USARTs.

  • Ich benötige doch aber nur einen UART, oder? Für Serial in vom PC bzw XPort. Die Ausgabe zu WS2801 wird doch über Port C (SDA / SCL) abgewickelt. Sprich der 2. UART ist in der Anwendung nicht aktiv....


    Pesi. Ist die WS2801 Ausgabefreq immer gleich der UART Eingangsfreq.? Muss ich an dieser Stelle etwas beachten, wenn einen Baudratenquarz nutze?


    VG

  • Die Ausgabefrequenz (also wenn Du die Taktrate meinst) hat nix mit der Baudrate zu tun, die ist immer fest... und erfolgt immer schneller, als die Daten rein kommen


    es werden halt die Frames synchronisiert, d.H., erst wenn ein kompletter Frame empfangen wurde, wird er an die Pixel ausgegeben.


    der 2. USART ist bei dieser SW nicht nötig...


    wie schon richtig erkannt, für andere Baudraten einfach nen Baudraten-Quarz nehmen, und UBBR entsprechend ausrechnen (Datenblatt) - ausserdem eben ggfs. das U2X-Flag setzen


    wenn der µC nicht mit 20 MHz läuft, stimmt zwar das Timing für WS2811/TM180x nicht mehr, aber das macht bei Dir ja nix...

    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!

  • macht ja nix, ich will ja gar keine 65.335 Bytes speichern können - diese SW ist für max. 1.024 Pixel (3.072 Bytes) gedacht, kommen größere Frames rein, werden die ignoriert...


    die Ausgabefrequenz ist so ca. 1,2 MHz, "fest eingestellt"... die Routine gibt ja gleichzeitig für WS2811/TM180x aus, da müssen bestimmte Pulslängen eingehalten werden... wenn Du diese ganzen nops in der Ausgaberoutine entfernst, geht sie auch noch schneller...

    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!