Schieberegister mit AVR-SPI beschreiben

OP #426502
Lesenswert?

Hallo!

Für eine LED Matrixanzeige möchte ich eine seriell- parallel Wandlung 
durchführen. Die Wandlung findet in einer Schieberegisterkette mit 64 
LED Treiberausgängen statt, in die die Zustände dann parallel auf die 
Spalten gelatcht werden.

Laut Datenblatt des AVR (ATMEGA32) müsste es möglich sein dafür das 
integrierte SPI Interface interruptgesteuert zu benutzen um Rechenzeit 
zu sparen.

Ich möchte das SPI mit der maximal möglichen Baudrate betreiben, also 
das was der Controller bei 16MHz CPU Takt bzw. die Schieberegister je 
nach Technologie maximal können.

Hat jemand von Euch soetwas schonmal gemacht und kann mir einen kurzen 
Kommentar dazu geben ob das ohne besondere Tücken möglich ist?

Danke im Voraus! johnny


#426585
Lesenswert?

Ja, das geht so ohne Probleme.
Der höchstmögliche Takt ist gerade FCPU/2, bei dir also 8MHz.


Die einzelnen Bytes interruptgesteuert auszugeben ist nicht gut, da das 
länger dauert als die 16 Takte, die die Ausgabe eines Bytes braucht. 
Zwischen den jeweils 64Bit kannst du aber Interrupts verwenden.


Außer der Initialisierung des SPI sehe ich kein größeres Problem dabei. 
(Nein, das Initialisieren ist kein großes Problem, aber wahrscheinlich 
das größte)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren