RFM12BSP - Kein nIRQ beim Empfang

OP #2401616
Lesenswert?

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 :)
Angehängte Dateien:
OP #2404962
Lesenswert?

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.
#2407517
Lesenswert?

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...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren