SPI-Fragen (RFM01/02 Module)
Hi!
Ich ärgere mich gerade mit den RFM01/02 rum.
Verkabelung RFM01 <-> M32
SDI <-> MOSI
SDO <-> MISO
SCK <-> SCK
nIRQ <-> INT0
nSEL <-> SS
Da ich keinen brauchbaren Bascom-Code finden konnte, hab ich erstmal die Datenblätter durchgekaut.
Soweit so gut, also erstmal mit dem Auslesen des Status beginnen...
Zwei Fragen (erstmal)...
1 - Auslesen Status Register RFM01
Sobald man eine Null in den SDI vom RFM01 rein-taktet, beginnt dieser mit dem Senden des Status-Reports, gefolgt vom FIFO-Inhalt.
Jetzt frage ich mich, ob man MISO und MOSI vom Mega32 trotz Hardware-SPI noch selber steuern kann, und worauf ich dabei achten sollte.
Denn MOSI muss ja auf LOW bleiben, bis alles da ist.
Kann ich die normalen SPI-Befehle SPIin SPIout SPImove nutzen, oder soll ichs besser per SHIFTin/out machen und SS selber steuern?
Timing-Diagramm RFM01 Read:
Bild hier
2 - Data Transmit Command RFM02
Hier wirds jetzt seltsam (wie ich finde):
Man sendet das Data Transmit Command ganz normal per SDI+SCK und hält dann die Clock an, während man die Daten reinschiebt.
Wieso wird die Clock nicht genutzt? Und vor allem: Woher weiß der RFM02, welches Bit welches ist?
Bei Nutzung des FSK-Pins hat man auch kein Clock-Signal - genauso seltsam.
Timing-Diagramm RFM02 Data-Send:
Bild hier
Liste der Anhänge anzeigen (Anzahl: 1)
So, hier ist mal mein (nicht funktionierendes) Programm.
Vielleicht findet ja jemand den Fehler oder sagt mir, wo ich völlig falsch liege.
Ist quasi eine 1:1 Übersetzung des C-Codes hier: http://www.mikrocontroller.net/attac...2522/rfm01.zip
RFM01 tuts soweit, aber der RFM02 nimmt anscheinend nichtmal Befehle entgegen, geschweige denn Nutzdaten.
Das Progi hängt immer da, wo der nIRQ dann kommen sollte (TX-Bit ist an).
Im Code, letzte Routine - Stelle ist kommentiert...