Hallo ich versuche seit kurzem zwei RFM12BSP Module mittels des rfm12 "Treibers" von das-labor.org zu betreiben. Das Senden an sich sollte schon klappen, da die Interrupts, die ich durch das RFM12-Modul bekomme, zu passen scheinen. Leider habe ich auf der Empfängerseite keinerlei Interrupts. Nun ist die Frage, warum? Auf der Suche nach dem Fehler habe ich mir mal das PWR Register angeschaut. Beim Empfangen, also so gut wie immer, steht es auf 0x87. Beim Senden auf 0x27. Das deckt sich nicht ganz mit anderen Beispielen, die ich gelesen habe, aber da der Treiber von das-labor.org auch bei anderen in Betrieb ist und meiner Meinung nach die entscheidenden Bits gesetzt sind, scheint das schon zu passen. Nun habe ich mal versucht das Statusregister mitzulesen bei einem möglichen Empfang (siehe Bild im Anhang). Der Sender Sendet seine 16 Byte Daten + Sync und Preamble und am Empfänger ändert sich das Statusregister zu 0x3E0. Damit sollte ich doch erkennen, das irgendwas angekommen ist, oder? Bin mittlerweile ziemlich ratlos. Aber hier noch ein paar Fragen, die das Problem vielleicht verursachen. 1.) Ich habe ein RFM12BSP Modul mit einer Markierung auf der Platine bei 433MHZ. Kann ich dieses Modul nur mit 433MHz betreiben oder kann ich es auch ohne zusätzliche Hardwareänderungen auf 868MHz umstellen? 2.) Kann ich zu Testzwecken mit einer Antenne für 868MHz auf mal 433MHz testen? 3.) Kann mir jemand den Kommentar bei "Interrupt nIRQ klappt nicht bei 868MHz" bei http://www.mikrocontroller.net/articles/RFM12 erklären? Welche Änderungen sind das und warum soll mein FIFO IT Level auf 16 hoch? Schon mal Danke für's viele Lesen :)
Und es funktioniert immer noch nicht. Ich gehe jetzt einfach mal davon aus, dass mein RFM12 Modul auch nur 433MHz kann. Deshalb habe ich alles auf 433MHz konfiguriert und eine neue Antenne angelötet, aber NICHTS! Ich verstehe das einfach nicht. Warum klappt das bei allen außer bei mir? Jetzt habe ich sogar die Register mal an einen anderen Treiber angeglichen, aber wieder das gleiche Verhalten. Warum nur empfängt mein Empfänger nichts? Die letzten Register, die am Empfänger geschrieben werden, sollten diesen jedoch aktivieren?!
1 | rf12_trans(0x82C8); // RX on |
2 | |
3 | rf12_trans(0xCA81); // set FIFO mode |
4 | |
5 | rf12_trans(0xCA83); // enable FIFO |
An was könnte das noch liegen? Lötstellen sind alle überprüft, Kabelverbindungen ebenso und die Empfängerhardware löst, falls man Sie als Sender konfiguriert, beim Senden ebenfalls ihre Interrupts sauber aus. Bei der Konfiguration als Empfänger kann ich "per Hand" auch einen Interrupt auslösen. Bin ratlos.
Hab hier nochmal den etwas veränderten Treiber von das-labor.org angehängt. Evtl. findet jemand von euch ja raus woran's liegt. Ich hab das schon so oft durchgeschaut, ich finde nix mehr :)
hab auch mal die lib verwendet.... bin aber wegen solchen problemen auf die von jürgen eckert umgestiegen... http://www.mikrocontroller.net/articles/AVR_RFM12 irq-> ext. int fsk -> pullup noch den spi-bus dran... und die header-datei konfigurieren.... und es läuft...
Hi, ich hab irgendwie das Gefühl, dass ich das auch machen werde. :)
Bin gestern nun auch auf die lib von jürgen eckert umgestiegen und es funktioniert alles einwandfrei. Ich habe sie nur durch meine SPI lib erweitert. Ich habe aber keine Ahnung woran es nun letztendlich gelegen hat. Es kann nur eine Kleinigkeit gewesen sein.
Das hatte ich auch, es war nur eine kleinigkeit, aber die war nicht aus dem Weg zu räumen weil die daslabor-lib extrem overloaded ist... Für so einen Treiber kann man das wesentlich kompakter und übersichtlicher Schreiben...siehe lib von eckert... Hab schon mal mit dasLabor gemailt, habe aber keine lösung bekommen...
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.