Das der AVRmega als SPI-Slave bei hohen Taktfrequenzen nicht sooo optimal ist, wurde hier schon beschrieben(Jörg Wunsch?). In meiner Anwendung habe ich einen mega88 als Släve mit 460,8kHz Clock. Da aber der Master den Clock vorgibt, frag ich mich, wie eine sichere Kommunikation zustande kommen kann, zumal der Masterclock bei einem Projekt 100kHz, und beim anderen Projekt 400kHz sein kann. Oder denke ich zu kompliziert?
Offensichtlich, denn da der Slave den Takt vom Master geliefert bekommt kann der exakte Wert ihm egal sein. Kritisch ist nur die Reaktionszeit auf "Byte verfügbar", mangels Puffer, die durchaus taktabhängig ist.
Aber warum muss ich den beim Slave überhaupt einen Clock einstellen?
> Musst du doch garnicht.
Hm, ich hab mit dem Codevision-Wizard das Grundgerüst erstellt. Bei der
Auswahl als Slave hab ich auch eine Clock ausgewählt. Dann hab ich mir
zuviel Gedanken gemacht.
So wie du es sagtst ist es auch verständlicher.
Besten Dank!
Serieller Freund schrieb:
> In meiner Anwendung habe ich einen mega88 als Släve mit 460,8kHz Clock.
Wenn der Master keine langen Pausen zwischen den Bytes macht und der
Slave auch senden soll, hast Du genau 1/2 Takt Zeit, neue Daten ins SPDR
zu schreiben.
Bei 20MHz am ATmega88 sind das 20MHz : 460kHz : 2 = 21 Zyklen.
Ich will nicht sagen, daß das völlig unmöglich ist, aber daran haben
sich schon einige die Zähne ausgebissen.
Ein MC mit gepuffertem SPI scheint mir da deutlich einfacher, z.B.
AT89LP4052.
Peter
Die CPU-Clock ist 7,3728 MHz. Demnach komme ich auf 8 Zyklen für das Senden eines Bytes vom Slave zum Master, was sehr wenig ist. Leider bekomme ich erst nächste Woche zum testen ein Board mit nem SPI-Master. Ich werde evtl. diesen Thread dann nochmal ausgraben. Erstmal vielen Dank!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.