Forum: Mikrocontroller und Digitale Elektronik RFM12 Receiver MISO ständig low trotz Datenempfangs


von Segmentation Fault (Gast)


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

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
Noch kein Account? Hier anmelden.