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?
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.
Unsere Erfahrungen sagen folgendes:
Software-SPI von Bascom funktionierte noch nie mit den RFMs. Beim Hardware-SPI wieß ichs grad nicht, aber das dürfte eigentlich gehen.
Die Knackpunkte bei uns waren anfangs die falsche Empfehlung und falsche Beschaltung von Pollin. Da musste der Optokoppler weg (Das Problem hast Du sicher nicht), und dringend ein Widerstand rein.
Für SS empfehle ich das selbersteuern. Dann könntest Du rein theoretisch auch mehrere Module gleichzeitig benutzen, aber das ist nur ein Nebeneffekt.
Zum Clockthema kann ich Dir net helfen, aber halte Dich im Zweifelsfall an die Beispiele im Forum.
Also das RFM01 habe ich gestern glücklicherweise angesteuert bekommen.
Kann den Status auslesen und er reagiert auch auf Parameter wie FIFO usw..
Hardware-SPI (M32) ging nicht, da hab ichs mit SHIFTOUT/in gemacht - super.
Der Sender war noch nicht zur Kooperation zu bewegen, aber da gebe ich mich später mal dran...
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...
Lesezeichen