WS2812B mit Attiny817 Hardware ansteuern

OP #5183860
Lesenswert?
• ▲
▼
Hallo,

im Anhang ist ein Codeschnipsel wie man das WS2812B Protokoll
mit der Hardware des Attiny817 umsetzen kann.

Hardware:
USART im SPI Master Mode
TCB0 im single shot Mode
Event System XCK vom PIN an TCB0 leiten
CCL Das ganze verkleben

Im Code ist es nocht etwas genauer beschrieben.


Vielleicht kann es ja jemand gebrauchen.

Gruß Thomas
Angehängte Dateien:
OP #5268805
Lesenswert?
• ▲
▼
Hallo,

im Anhang ist ein Codeschnipsel bei dem ein ATtiny817 als
SPI WS Konverter dient.
Ist vielleicht interessant wenn der ATtiny212 verfügbar ist.

Das ganze wurde mit einem ATMega328P als SPI Master und 240 LED
getestet. Der jitter der durch den asynchronen Start des TCB0
entsteht hatte hier keine Auswirkungen.


Gruß Thomas
Angehängte Dateien:
#5504528
Lesenswert?
• ▲
▼
Hey, vielen Dank für den Beispielcode!
Ich versuche gerade das Ganze auf einem ATTiny414 umzusetzen.

Wegen der verschieden Pinouts und meinem Boardlayout habe ich ein paar 
Änderungen vorgenommen:

- USART per PORTMUX auf die alternativen Pins gelegt (XCK auf PA3)
- dementsprechend ASYNCCH0 (wg Source von PORTA) statt ASYNCCH1
- LUT1 statt LUT0

allerdings war ich bis jetzt erfolglos, in Einzelnfällen ist hat die 
erste LED grün aufgeleuchtet, was aber eher nach Zufall klingt.

Ein paar Fragen zum Originalcode hätte ich auch noch:
- fehlt nicht eine Zeile um per PORTMUX LUT0-OUT von PA4 auf PB4 zu 
verschieben?
PA4 wird im Code nicht genutzt und PB4 ist als 'LED' kommentiert.
- wozu wird unten im Loop PB4 per Write auf 'PORTB.IN' getoggled?


Im Anhang ist meine aktuelle Version des codes, ich wäre für Hinweise 
sehr dankbar :)
Angehängte Dateien:
OP #5513244
Lesenswert?
• ▲
▼
Hallo Sol B,

an PB4 "LED" ist eine normale LED angeschlossen.
Hat nichts mit den WS-LED zu tun.

Ich hab deine Änderungen mit einem 817 getestet.
"USART0.CTRLB = USART_TXEN_bm;" darf nicht aus kommentiert werden.
Nach dieser Änderung hat es funktioniert.

Das Projekt mit dem ich es getestet habe ist im Anhang .

Bei den Fuses muss 16MHz eingestellt sein.

Gruß Thomas
Angehängte Dateien:

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.