RFM12 Receiver MISO ständig low trotz Datenempfangs

Gast #2558746
Lesenswert?

Guten Abend zusammen,

ich beschäftige mich in letzter Zeit mit den RFM Modulen.
Momentan versuche ich mit einem RFM12 Daten zu empfangen, die von einem 
RFM02 gesendet werden.
Das RFM12 erkennt die Daten auch, zumindest bekomme ich immer ein 
Interrupt an VDI. Bloß bekomme ich auf dem Bus immer nur 0x0000.
Ich verwende SoftwareSPI auf einem MSP430F2001.

SPI funktioniert problemlos, ich kann das Modul konfigurieren sowie 
Register auslesen. Nur kann ich mit 0xB000 keine Daten auslesen?

Verschaltung müsste korrekt sein, da Empfang und Kommunikation mit dem 
Modul ja funktionieren.

In der Versorgung hängen ein ELKO, 1uF sowie Folienkondensatoren 0.22uF 
direkt am Modul. MISO mit Pullup 20kOhm.

Hier noch der relevante Code:
Initialisierung:
1
SPI_transfer16(0xc0e0);//clk 10Mhz
2
    SPI_transfer16(0x80D7);//fifo enable
3
    SPI_transfer16(0xc2ab);//data filter internal
4
    SPI_transfer16(0xca81);//set fifo mode
5
    SPI_transfer16(0xe000);//disable wakeuptimer
6
    SPI_transfer16(0xc800);//disable brownoutdetection
7
    SPI_transfer16(0xC4F7);//autotuning -10+7.5khz
8
    SPI_transfer16(0xA000|500);//set frequency200kHz 
9
    SPI_transfer16(0x9400|((0&7)<<5)|((1&3)<<3)|(4&7));// 67kHz Bandbreite, -6dB Verstärkung, DRSSI threshold: -79dBm 
10
    SPI_transfer16(0xC680|((43104/4800)-1));//4800Baud

Empfang:
1
    SPI_transfer16(0x82C8);// RX on
2
    SPI_transfer16(0xCA81);      // set FIFO mode
3
    SPI_transfer16(0xCA83);      // enable FIFO
4
    for(ptr=0;ptr<50;ptr++)
5
    {
6
      rf12_ready();
7
      tmp=SPI_transfer16(0xB000);//receive
8
      Transmit();
9
      
10
    }
11
    tmp1=SPI_transfer16(0x8208);//RX off

Transmit() gibt den Inhalt von tmp via UART aus, SPI_transfer16() 
schreibt/liest 16 Bit via SPI.
rf12_ready():
1
void rf12_ready(void)
2
{  setCS(1);
3
  while (!(getMISO())); // wait until FIFO ready
4
  return;
5
}

Danke fürs Ansehen;)

Mit freundlichen Grüßen
SegFault

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