Atmega 8 SPI Frage

Gast #1533603
Lesenswert?

Hallo

Ich möchte gerne mehrere Atmega 8 kaskadieren und mit dem ersten Atemega 
8 die Daten senden.

Die restlichen mega 8 sollten dann jeweils eine rgb led ansteuern.

Also wenn ich drei mal 8 bit schicke dann sind das die helligkeiten für 
den mega 8 der dann die pwm per hardware ausgibt.

Nun meine Frage:

wenn ich die ersten 8 bit sende, kommen die Daten dann beim Mosi gleich 
wieder raus? Weil wenn die gleich wieder rauskommen, dann kann ich sie 
ja im atmega nicht hinterlegen.

Also es sollte so wie das ShiftBrite wie hier funktionieren: 
http://www.nodna.com/product_info.php?products_id=1176&XTCsid=hquuordh72gavgd468u77m6e57

Mein Problem ist nur, daß das ShiftBrite eine PWM auflösung von 10bit 
hat.  Mir ist das leider zuviel und deshalb möchte ich es gerne selber 
realisieren.

Ist das mit mehreren M8 möglich oder funktioniert das so nicht?

Gruß Stefan
Gast #1534314
Lesenswert?

Hi

>wenn ich die ersten 8 bit sende, kommen die Daten dann beim Mosi gleich
>wieder raus? Weil wenn die gleich wieder rauskommen, dann kann ich sie
>ja im atmega nicht hinterlegen.

Das Shiftregister des SPI hat einen Read-Buffer. Kannst du dann im 
'Serial Transfer Complete-Interrupt' auslesen.

MfG Spess
#1534316
Lesenswert?

Hallo,

Stefan schrieb:
> Also mein Problem ist, das ich mit SPI 3x8 bit in einen M8 reinschiebe.
> ist das prinzipiell möglich, ohne das der M8 die Daten gleich wieder
> rausschiebt.
>
> Geht das?

Warum nicht?
SPI liest 8 Bit in das SPI-Empfangsregister ein.
Parallel dazu wird der Inhalt des Senderegisters rausgeschoben.
Das sind im AVR 2 getrennte Register, die unter der gleichen Adresse 
luegen.
Mit out SDR,r16 wird das Senderegister beschrieben, mit in r16,SDR das 
Empfangsregister gelesen.

Um Deine 3 Byte muß Du Dich ohnehin alleine kümmern.

Gruß aus Berlin
Michael

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