Forum: Mikrocontroller und Digitale Elektronik SPI bei allen Atmegas gleich?


von Eugen T. (der_eugen_thorben)


Lesenswert?

Hi,

Ich wollte fragen, ob ich den Code für SPI, der auf dem Atmega32 korrekt 
läuft, auch für den atmega2560 nehmen kann? Ich hab beide Datenblätter 
überflogen und keine Unterschiede gefunden.


Danke

von Falk B. (falk)


Lesenswert?

Ja, wenn man überall mit symbolischen Register- und Bitnamen gearbeitet 
hat.

von spess53 (Gast)


Lesenswert?

Hi

>Ich wollte fragen, ob ich den Code für SPI, der auf dem Atmega32 korrekt
>läuft, auch für den atmega2560 nehmen kann?

Der ATMega2560 kann mehrere SPIs haben. Einmal das übliche SPI und vier 
mal USART im SPI-Mode. Für letztere passt der Code vom ATMega32 
natürlich nicht.

MfG Spess

von c-hater (Gast)


Lesenswert?

spess53 schrieb:

> Der ATMega2560 kann mehrere SPIs haben. Einmal das übliche SPI und vier
> mal USART im SPI-Mode. Für letztere passt der Code vom ATMega32
> natürlich nicht.

Richtig. Die Initialisierung läßt sich noch sehr einfach anpassen, aber 
bei der Programmlogik sind strukturelle Änderungen erforderlich. 
Einerseits durch das Double-Buffering (TXC gibt's bei SPI garnicht), 
andererseits durch das abweichende Verhalten von UDRE im Vergleich zum 
SPIF.

Man kann das natürlich mit relativ geringem Aufwand in das übliche 
SPI-Schema pressen, gibt damit aber gerade die Vorteile auf, die das 
Double-Buffering bietet.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.