RFM02 die Xte

OP #1054012
Lesenswert?

Hallo Leute,

ich weiß man kann im Forum auch suchen doch trotz das ich dies getan 
habe konnte ich nix zu meinem Anliegen finden...

Ich wollte einfach mal wissen wie ich erkenne das das Empfangsmodul was 
empfangen hat?

Also soweit ich weiß ist der VDI Pin ja für die Qualität der 
Funkverbindung, wenn man in auf RSSI gestellt hat, da hab ich auch wie 
im Datenblatt beschrieben ein High Signal. doch bekomme ich weder einen 
Interrupt, noch irgendein zucken am FFIT Pin...

Wie gesagt wäre froh wenn mir mal jemand die prinzipielle vorgehensweise 
zum erkennen von empfangenen Daten erklären könnte.

MfG Flo
OP #1055741
Lesenswert?

Meine Frage hat sich erübrigt.
Meine Funkstrecke regt sich zumindest schonmal, jedoch kommte es meiner 
Meinung nach noch zu einem zu großen Datenverlust.

Kann mir jemand einen Tip geben wie ich diesen Datenverlust bzw. das 
Empfangen von "Müll" verringern kann?
Wäre eine Manchester Codierung solch eine Methode?

MfG
Gast #1055751
Lesenswert?

Ich glaube Du hast den RFM02 noch nicht ganz verstanden. Jeder Empfänger 
empfängt Müll, weil er den nicht unterscheiden kann. Aber 0xD44D öffnet 
den Fofo Stack beim RFM02. Benutze den nur im Fifo Mode und reduziere 
LNA Gain etwas, dann hast Du solche Sorgen nicht.
OP #1055757
Lesenswert?

Also die Sache mit dem Sync Word hab ich schon drin und das funktioniert 
auch.
Schalte ich den Sender aus und resete den Empfänger bleibt der FIFO leer 
aber mit dem LNA das werd ich mal versuchen.

Noch was und zwar kann ich meinen Empfänger nicht mehr starten wenn ich 
ihn einmal den RX Mode deaktiviert hab auch wenn ich die komplette 
anfangsinitialisierung nochma durchlaufen lass.

MfG
OP #1055776
Lesenswert?

Also nochmal zu meinem Aufbau ich sende im dauerbetrieb und frage den 
empfänger-fifo auf inhalt ab das ganze läuft in ner schleife.
wenn jetzt was im fifo ist dann hol ich das erste byte und löse mit dem 
pin vom µc ne negative flanke aus welche ich als triggerung für mein 
oszi nehme welches dann die daten am sdo pin aufzeichnet. ist das erste 
byte draussen lass ich ihn in ner endlosschleife anhalten. wenn ich den 
Controller resete dann wartet er wieder auf das erste byte.
OP #1055782
Lesenswert?

teils teils an sowas hatte ich auch schon gedacht darum hab ich mal 
0x55,0xaa,0xff,0xf1 geschickt und is immer das gleiche.
die ersten 7 bits hauen hin und das letzte kommt an oder nich an, wenn 
ich das untere nibble auf null setze dann kommt auch manchmal ne 0 oder 
eins beim letzten bit.
OP #1055790
Lesenswert?

Hab grad ma noch ein 2. byte angehängt und da funktioniert es, das erste 
byte wird 1a erkannt sollte wahrscheinlich noch am ende einen 
Dummy-Befehl hinterherschicken nach dem ende des Streams

Hast du noch nen Tip wieso mein empfänger nachdem er abgeschaltet wurde 
nich sich nich mehr starten lässt?
OP #1055799
Lesenswert?

prog1:
  cbi portb,chip_select

  ldi data,0xc0      ;Reciever Setting Command
  rcall funk_data
  ldi data,0xe1
  rcall funk_data

  ldi data,0xce      ;Output and FIFO Mode Command
  rcall funk_data
  ldi data,0x89
  rcall funk_data

  ldi data,0xce      ;Output and FIFO Mode Command
  rcall funk_data
  ldi data,0x8b
  rcall funk_data

  sbi portb,chip_select

  rcall fifo_test
  sbrs ctrl,fifo
  rjmp prog1
  ldi temp,1<<fifo
  eor ctrl,temp

  sbi portb,chip_select

  ldi data,0xc0      ;Reciever Setting Command
  rcall funk_data
  ldi data,0xe0
  rcall funk_data

  sbi portb,chip_select
prog2:
  rjmp prog2
#1055811
Lesenswert?

Von den Befehlen her sieht es gut aus. Nur eines würde mich stören: Du 
sendest mehrere Befehle ohne CS zwischendurch auf high zu legen. Dem 
Timiningdiagramm im Datenblatt nach setzen die immer CS nach jedem 
übertragenen Befehl auf high. Keine Ahnung ob man das muss, dem 
Datenblatt nach würde ich sagen ja.
Gast #1056449
Lesenswert?

Hallo kann mir jemand erklären was LNA Gain, Bandbreite, RSSI, AFC und 
Data Filter eigentlich macht?

Und wie errechnet ihr die Datenrate, komm da nich wirklich auf nen 
brauchbaren Wert...

Hoffe ihr könnt mir das Erläutern damit ich auch mal verstehe was für 
Vorgänge in dem Mini Teil vorgehen.

MfG Flo
#1056458
Lesenswert?

Du redest jetzt vom RFM01?
LNA Gain ist der Verstärkung des Eingangsverstärkers. Höhere Verstärker 
-> empfindlicher (aber auch empfindlicher gegenüber Störungen)
Bandbreite ist eben Bandbreite. Für höhere Datenraten muss der Wert 
größer werden, allerdings ist der Empfänger dann empfindlicher gegenüber 
Störungen
RSSI gibt die Signalstärke des empfangenen Signals an. RSSI Threshold 
gibt einen Mindestwert an, der erreicht sein muss ehe das Modul Daten 
akzeptiert.
AFC stellt die Empfangsfrequenz automatisch an. Allerdings kann man hier 
auch schön Mist bauen, das sich das Modul aufhängt, wenn man diesen 
Modus falsch konfiguriert.
#1058052
Lesenswert?

rfm_receive1:
  sbi portb,clock
  cbi portb,clock
  inc temp
  cpi temp,16
  brne rfm_receive1
  rcall fifo_in

Der Clock Impuls ist da sehr kurz. Laut Datenblatt darf der Takt maximal 
2,5MHz betragen, wie symmetrisch das CLK Signal (beim Lesen des FIFOs) 
sein muss steht leider nirgends im Datenblatt. Versuch da mal noch ein 
paar nops zwischen sbi und cbi reinzumachen.

fifo_test:
  cbi portb,chip_select
  cbi portb,data_out

  sbi portb,clock
  ldi temp,1<<fifo_full
  sbic pinb,data_in
  or ctrl,temp
  cbi portb,clock

  sbi portb,data_out
  sbi portb,chip_select

Wieso sendest du da 1bit? Lass die CLK Leitung am besten auf Low liegen, 
das reicht um das FFIT Bit zu lesen.
OP #1059159
Lesenswert?

Hab zum besseren Verständnis und evtl. besseren Hilfe noch was 
vorbereitet.

wenn ich diese daten sende

        ldi data,0xaa
  rcall tx
  ldi data,0xff
  rcall tx

kommt am sdo pin nur das 0xaa an und danach ist der pin noch für ca 20µs 
auf high versteh das nich das 2. byte wird aber irgendwie nich erkannt 
denn wenn ich dann den fifo abfrage ist der angeblich leer

nach dem 8 takten kommt die abfrage des fifo standes, und die hinteren 
takte sind von der init des fifo.

MfG Flo
Angehängte Dateien:
#1059324
Lesenswert?

Florian Patzer wrote:

> kommt am sdo pin nur das 0xaa an

Du meinst SDI? Also AVR -> RF01?

Ist das die TX Funktion die aufgerufen wird?
Falls ja, dann vermisse ich da einen Takt.
tx:
  ldi serial,0x80
tx1:
  push serial
  and serial,data
  cbi portb,data_out
  breq tx2
  sbi portb,data_out
tx2:
  sbrs ctrl,send
  rjmp tx2
  ldi temp,1<<send
  sbrc ctrl,send
  eor ctrl,temp

  pop serial
  lsr serial
  brne tx1

  ret
OP #1060052
Lesenswert?

Ja genau.
Wenn du in das u-Programm fifo_test schaust da siehst du die abfrage des 
sdo pins. wenn der null ist dann springt da programm zu fifo_test1 und 
überprüft ob vorher der fifo voll war, wenn ja dann wird das init bit 
gesetzt.
Das hat die bewandtnis das nicht jedes mal wenn der fifo als leer 
erkannt wird die init gestartet wird sondern nur nach einem empfang.

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