Per Software SPI ist das sicher nicht möglich.
Der Controller muss dazu auch mit 20MHz laufen
Es muss das zu übertragende Bit auf einen Port gelegt werden und auf einem anderen Port muss der Shift Impuls genertiert werden = H,L,H.
Jede Operation benötigt mindestens einen Prozessor Clock, auch wenn man das in Assembler macht.
Auch die Hardware SPI kommt hier an Ihre Grenzen.
Man müsste mal im Datenblatt des entsprechenden Controller gucken, ob sie sich überhaupt so hoch takten lässt.
Ausserdem hat man somit auch nur maximal 8 Takte Zeit das SPI Daten Register neu zu beschreiben, sonst gibts Pausen im Signal.
Das ist zwar im Prinzip nicht schlimm, aber die angestrebte Taktrate ist so nicht erreichbar.
Das Ganze läuft auf jeden Fall an den hardwaretechnischen Grenzen eines AVR.
EDIT:
Hab mal im Datenblatt eines ATMEGA 8 nachgesehen.
Für SCK ist eine maximale Taktrate von Fosz/2 möglich.
Bei diesem Controller ist also eine SPI Taktfrequenz von 20MHz nicht möglich.
Lesezeichen