So ist es.funktioniert da ganze über den CLK
Du aktivierst den Enable Eingang des RFM ( der heisst meines Wissens nSEL ) . Dann legst Du das erste Bit deines zu Übertragenden Bytes an den Din Eingang deines RFM. Nun Setzt due den Takt Eingang deines RFM auf High und gleich wieder auf Low ( pass auf, der Compiler könnte diese Befehlsfolge wegoptimieren ! ) .
Jetzt das 2te Bit des Bytes anlegen und wieder einen CLK Impuls erzeugen.
Das Spielchen geht so lange weiter bist alle Bits in das RFM eingeschoben wurden. Danach wird die nSEL Leitung wieder deaktiviert und fertig ist der Lack. Das Ganze funktioniert wie ein Schieberegister mit seriellem Eingang.
Daten anlegen - Schiebetakt anlegen - Daten + 1 anlegen - Schiebetakt anlegen ...
Ich meine das ist eigentlich nicht sonderlich schwer zu verstehen.
Sollte der Schiebetakt zu schnell sein ( Datenblatt des RFM ) kann man noch ein paar "NOP" Befehle zwischen dem Setzen und löschen des CLK Pins einfügen.
Eine Besonderheit gibt es noch, wenn man Daten für die Funkstrecke über Din einspeist. Dabei muss man auf das Timing achten ( Timer oder Interrupt des RFM verwenden ) und es dürfen keine ! CLK Impulse generiert werden. Dieser Modus ist nicht SPI kompatibel, deshalb halte ich es auch für sinnvoller eine Software SPI zu verwenden, auch wenn das ein wenig Rechenleistung kostet.
Lesezeichen