Forum: Mikrocontroller und Digitale Elektronik ARM + RFM12, Empfange nix


von Markus82 (Gast)


Lesenswert?

Hallo leute,

ich versuche schon seit geraumer Zeit mit dem ARM LPC2129 und den 
Funkmodulen RF12 von Pollin eine Funkstrecke aufzubauen.
Leider klappt es nicht so wie ich es mir vorstelle.

Senden Funktioniert laut Spektrum Analyzer sehr gut und auf der 
Empfänger seite tut sich auch was an dem nIRQ Pin, dieser geht auf LOW.
Laut Datenblatt müsste dann ja der FIFO bereit seit und der RF12 
Empfangen können.
Wenn ich den SDO Pin mit dem Oszi ausmesse sehe ich nur ein kurzes 
Wackeln des Statusregisters und sonst nur einen geraden Strich.
Also empfange ich nur nullen, oder??

Als Init Routine hab ich mich an das Datenblatt von HopeRF gehalten und 
den Beispielcode vom Benedikt K.
Das einzigste was ich verändert habe, is die Bandbreite von 134kHz auf 
400kHz angehoben.

Hier meine Init Routine des Emfpängers:

  Spi_Send(0x80D7);  //EL,EF,12.0pF
  Spi_Send(0x82D9);  //Enable RX
  Spi_Send(0xA680);  //A140=430.8MHz
  Spi_Send(0xC647);  //4,8kbps
  Spi_Send(0x9420);  //VDI,FAST,400kHz,0dBm,-103dBm
  Spi_Send(0xC2AC);  //AL,!ml,DIG,DQD4
  Spi_Send(0xCA81);  //FIFO8,SYNC,!ff,DR
  Spi_Send(0xC4F7);  //@PWR,autotune: -10kHz...+7,5kHz,!st,!fi,OE,EN
  Spi_Send(0x9850);  //!mp,9850=90kHz,MAX OUT
  Spi_Send(0xE000);  //NOT USE
  Spi_Send(0xC800);  //NOT USE
  Spi_Send(0xC000);  //kein WDT, kein Batteriewächter

Und hier die Empfangsroutine im main():

Funk_RX_Init();

Spi_Send(0xCA81);   //Init FIFO
Spi_Send(0xCA83);  //Enable FIFO
Spi_Send(0x0000);  //Read Status Register

while(1)
{
  WAIT_nIRQ_LOW;      //wait until nIRQ is low -> incoming data

  Spi_Send(0x0000);  //Read Status Register

  delay(1000); //Delay 1000 Takte

  for(i=0;i<16;i++)
  {
    Spi_Send(0xB800);  //Read FIFO
    delay(100);
  }

    Spi_Send(0xCA81);  //Disable FIFO
}

Ich hoffe ihr könnt mir ein paar Tips geben was ich noch austesten kann.
Bin langsam mit meinem Latein am Ende

MFG
Markus

von Markus82 (Gast)


Lesenswert?

Is keiner da der mir weiter helfen kann??

Markus

von gast (Gast)


Lesenswert?

!!! Spi_Send(0x82C8);   //RX einschalten !!!
Spi_Send(0xCA81);   //Init FIFO
Spi_Send(0xCA83);  //Enable FIFO
Spi_Send(0x0000);  //Read Status Register

von Markus82 (Gast)


Lesenswert?

Hallo

@Gast: Danke, hat aber noch nich den erwünschten erfolg gebracht :-(

Desweiteren is mir noch aufgefallen das ich delay-zeiten eingesetzt habe 
die nich gerade sehr geschickt gewählt waren.
Hab diese komplett rausgenommen, aber auch keine verbesserung.

Bin für jeden Vorschlag offen!

MFG
Markus

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.