Forum: Mikrocontroller und Digitale Elektronik FSK mit HopeRF HM-R und RaspyRFM (RFM69CW)


von D. F. (freeze)


Lesenswert?

Hi,

ich versuche gerade eine FSK-Funkverbindung (433MHz) zwischen einem

RaspyRFM-Modul (bestückt mit RFM69CW)
http://www.seegel-systeme.de/2015/09/02/ein-funkmodul-fuer-den-raspberry-raspyrfm/

und einem

HopeRF HM-R Modul
http://hoperf.de/rf/fsk/HM-R.htm

herzustellen.


Mit OOK (und einem RXB12 statt dem HM-R) klappt es eigentlich schon ganz 
gut, aber die FSK-Modulation mag irgendwie garnicht.

Ich sende versuchsweise immer 4 mal dasselbe Datenpacket bestehend aus 3 
Bytes. Im Signal (Oszi am Datenpin des Empfängers) ist zwar klar 
erkennbar, dass vier Pakete ankommen, aber die Daten sehen mehr nach 
Rauschen aus als nach irgendetwas verwertbarem.

Nun stellt sich mir erstmal die grundsätzliche Frage, ob die beiden 
Module überhaupt zueinander kompatibel sind?!
Ich beschäftige mich jetzt zwar schon eine Weile mit dem Thema, aber so 
richtig dahintergekommen bin ich leider noch nicht, wie das Ganze im 
Detail funktioniert und worauf z.B. bei der Auswahl der Module zu achten 
ist.


Vielen Dank bereits im Voraus!

von Georg G. (df2au)


Lesenswert?

Wie wäre es mit ein paar Details, Datenrate und Frequenzhub für den 
Anfang?

von D. F. (freeze)


Lesenswert?

Bei der Datenrate hab ich auch schon alles möglich ausprobiert - 1 bis 9 
kbit/s. Das resultierende Signal sieht immer ähnlich aus (minimale 
Pulsbreite ändert sich nicht).
Welchen Frequenzhub der Sender macht weiß ich nicht, finde dazu auch 
nichts im Datenblatt des RFM69CW?

von Georg G. (df2au)


Lesenswert?

D. F. schrieb:
> Welchen Frequenzhub der Sender macht weiß ich nicht

Du initialisierst doch das Modul, oder? Dazu gehört auch der Hub des 
Senders. Seite 60 des Datenblattes wäre ein guter Anfang.

von D. F. (freeze)


Lesenswert?

Grad hab ichs auch gefunden ;-)

Ist auf default, also 5kHz.

Ich nutze übrigens diese Bibliothek: 
https://github.com/Phunkafizer/RaspyRFM/blob/master/rfm69.py

von Georg G. (df2au)


Lesenswert?

D. F. schrieb:
> Ist auf default, also 5kHz.
Dann sind 9kBd Datenrate unmöglich. Stell mal 1200Bd Datenrate und 25kHz 
Hub ein. Und stell die Datenrate auch beim Empfänger passend ein (ich 
habe kein Datenblatt von dem Ding, kann dir also nicht sagen, wo das 
steht).

> Ich nutze übrigens diese Bibliothek:
> https://github.com/Phunkafizer/RaspyRFM/blob/master/rfm69.py
Was sagt der Ersteller der Bibliothek zu dem Problem? De würde ich als 
erstes befragen.

von D. F. (freeze)


Lesenswert?

Nachdem es hier wohl um das Zusammenspiel zweier Module geht, die 
erstmal nichts miteinander zu tun haben, habe ich mich an die Community 
hier gewendet.

Hab mal 1,2kBit/s und 25kHz eingestellt, bringt auch keine Besserung.

Am Empfängermodul kann ich garnichts einstellen. Das hat nur Vcc, 
Data-Out und GND.
D.h. ich frag beim Hersteller des Empfängermoduls mal nach, mit welchen 
Werten man da fahren soll.

von Georg G. (df2au)


Lesenswert?

Es gibt FSK Module, die mit sehr großen Hub bedient werden wollen, 
100kHz und mehr. Aber ohne Datenblatt bringt das nichts.

von D. F. (freeze)


Lesenswert?

Hab das mal angefragt.
Aber ab 40kHz sind im empfangenen Signal nicht mal mehr die einzelnen 
Pakete zu entdecken.

von D. F. (freeze)


Lesenswert?

Nach Rücksprache mit dem Hersteller habe ich nun funktionierende 
Parameter gefunden.
Wichtig sind die Bandbreite von 134kHz, die Trägerfrequenz von 434MHz 
(und nicht 433,92!) sowie der Frequenzhub von mindestens 60kHz.
Außerdem muss laut Hersteller die Trägerfrequenz immer wieder neu 
gesetzt werden.
Standard Datenrate ist übrigens 4,8kBit/s, aber ich fahre lieber etwas 
langsamer.

Ich nutze diese Bibliothek: 
https://github.com/Phunkafizer/RaspyRFM/blob/master/rfm69.py

Mein Python-Test-Script sieht dann so aus:

1
#!/usr/bin/env python2.7
2
3
from rfm69 import Rfm69
4
import rfm69
5
import sys
6
7
rfm = Rfm69()
8
9
i = 0
10
while i < 3:
11
 rfm.SetParams(
12
  Freq = 434,
13
  Datarate = 1.2,
14
  TXPower = 31,
15
  Bandwidth = 134,
16
  LnaGain = 0x80,
17
  ModulationType = rfm69.FSK,
18
  SyncPattern = [0x00, 0x00],
19
  Preamble = 0,
20
  Deviation = 60
21
  )
22
 rfm.SendPacket([int(sys.argv[1]), int(sys.argv[2]), int(sys.argv[3])])
23
 i += 1

Bei mir funktioniert es mit einem Frequenzhub von 20 bis 80kHz gut.
Von daher scheinen die 60kHz gut zu passen.

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.