www.mikrocontroller.net

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


Autor: Markus82 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Markus82 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Is keiner da der mir weiter helfen kann??

Markus

Autor: gast (Gast)
Datum:

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

Autor: Markus82 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.