Forum: Mikrocontroller und Digitale Elektronik RFM12 Modul empfängt zu viel


von Josef K. (zumlin)


Lesenswert?

Hi,

ich habe mal wieder eine RFM12 Frage. Meine Module laufen nun endlich. 
Nur jetzt habe ich das Problem, dass ich beim Empfangen zu viele Bytes 
empfange.
Sendet mein Sender eine Zeichenfolge, so wird diese auch vom Empfänger 
erhalten, doch leider werden dann noch beliebig viele Bytes empfangen. 
Woran kann das liegen. Da ich mit nIRQ arbeite, dachte ich, dass sobald 
mein Sender keine Daten mehr verschickt, mein Empfangsmodul auch keine 
Daten mehr erhält. Ist das nicht richtig?


Grundlegend ist das die lib von Jürgen Eckert.
Initialisierung (ohne Baud etc)
1
spi_send_data_u16(0xC0E0);        // AVR CLK: 10MHz
2
  spi_send_data_u16(0x80D7);      // Enable FIFO
3
  spi_send_data_u16(0xC2AB);      // Data Filter: internal
4
  spi_send_data_u16(0xCA81);      // Set FIFO mode
5
  spi_send_data_u16(0xE000);      // disable wakeuptimer
6
  spi_send_data_u16(0xC800);      // disable low duty cycle
7
  spi_send_data_u16(0xC4F7);      // AFC settings: autotuning: -10kHz...+7,5kHz
8
9
  spi_send_data_u16(0x0000);

RX starten:
1
  spi_send_data_u16(0x82C8);      // RX on
2
  spi_send_data_u16(0xCA81);      // set FIFO mode + disable FIFO
3
  spi_send_data_u16(0xCA83);      // enable FIFO

von Achim M. (minifloat)


Lesenswert?

Josef Kkk schrieb:
> doch leider werden dann noch

Implementier eben ein Stringende-Zeichen. Wenn der Empfänger das 
bekommt, macht er eben den Empfang kurz aus. Vielleicht hilft es auch, 
mal nachzuforschen, ob nich dein Funkthermometer oder dein Nachbar oder 
oder oder... auf derselben Frequenz rumschrubbt.
mfg mf

von Marcus B. (raketenfred)


Lesenswert?

Josef Kkk schrieb:
> mein Sender

genau kenne ich mich mit dem Thema nicht aus, aber was wäre mit dem 
Sender deines Nachbarn?

von Josef K. (zumlin)


Lesenswert?

Achso. Sobald mein Empfänger mit 0xAA und Sync versorgt wurde empfängt 
er ja sowas mit. Das mein Nachbar sowas hat kann wirklich sein.
Mein Protokoll im Hintergrund kann sowas schon ab, aber mich hat's nur 
auf den ersten Blick gewundert.
Da muss ja mächtig was los sein auf dem Band.

von Gerhard G. (xmega)


Lesenswert?

Hallo,


du sendest aber schon zum Schluß  folgenden Code?

// Anfang Senden

// Daten senden....

// Ende senden
rfSend(0xAA); // DUMMY BYTES
rfSend(0xAA);
rfSend(0xAA);




Gruß Xmega

von Funker (Gast)


Lesenswert?

Mini Float schrieb:
> Vielleicht hilft es auch,
> mal nachzuforschen, ob nich dein Funkthermometer oder dein Nachbar oder
> oder oder... auf derselben Frequenz rumschrubbt.

Und wenn es nicht das Funkthermometer ist, dass sowieso nur alle paar 
Minuten mal kurz sendet, werden es wohl die Reste des Urknalls sein, die 
den Empfänger mit Rauschen beglücken, ganz abgesehen vom Eigenrauschen.

von Holger W. (holgerw)


Lesenswert?

Der Empfänger erkennt selbst kein Ende.
Ich mach es so, als erstes Byte wird die Anzahl der folgenden Bytes 
gesendet, danach die Nutzbytes und zum Schluß noch eine Prüfsumme. Der 
Empfänger wertet das 1.Byte aus ob es innerhalb bestimmter Grenzen 
liegt, empfängt die darin angegebene Anzahl und stoppt dann den Empfang. 
Prüfsumme berechnen und vergleichen und dann wird verarbeitet.

Holger

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.