RFM69HCW – High Power Modes

Im Netz findet man viel Blabla um die High Power Modi des RFM69HW bzw. des RFM69HCW, aber leider wenig konkrete Messergebnisse. Auch wenn die Popularität der Bauteile stark abzunehmen scheint, habe ich mir die Zeit genommen um einen RFM69HCW zu vermessen. Dabei gab es mehrere Überraschungen.

Ausgangsleistung

Sich für den RFM69H(C)W anstelle des RFM69(C)W zu entscheiden kann  mehrere Gründe haben, zB. (1) man will dessen höhere Ausgangsleistung nutzen, oder (2) man  muss auf die Pinbelegung des RFM69HCW umsteigen weil sie kompatibel mit anderen Modulen ist, zB. den RFM96/96/97/98 Modulen.

Bei  mir ist eher letzteres der Fall, daher möchte ich wissen wie ich dran bin bezüglich des Stromverbrauchs, der Eingangsempfindlichkeit, Der Softwarekompatibilität etc.

Die erste Überraschung

Die RFM69 Treiberbibliotheken die ich gefunden habe (z.B. Lowpowerlabs, hier) unterstützen den RFM69H(C)W nicht zu 100 Prozent. Das ist wirklich verwunderlich, weil die Module schon einige Jahre auf dem Markt sind. Ich habe im Netz nichts gefunden ausser jemanden der sich das genauer angesehen hat und für sich selbst Software geschrieben hat:

„Figuring out the power level settings of HopeRF’s RFM69 (H)W modules“

Na gut, ich hacke ehrlich gesagt ungern  Gerätetreiber, weil das sehr nahe an der Hardware ist und man sich damit sehr intensiv beschäftigen muss. Man kann auch sehr schnell sehr viel falsch machen was dann sehr schwer zu debuggen ist. In diesem Fall ist mir aber nichts anderes übriggeblieben um die verschiedenen Powermodi zu testen.

Die zweite Überraschung

Das RFM69HCW Modul wird mit +20dBm Ausgangsleistung beworben. Hier das Ergebnis.

RFM69HCW_Current_vs_Pout

Mit allen verfügbaren Informationen zu den betreffenden Registern ist es mir nicht gelungen mehr als 17.3 dBm aus dem Modul herauszuholen.

Wie kann das sein? Ich sehe 2 Möglichkeiten:

1.) Mein Modul ist als RFM69HCW markiert, ist auch entsprechend verschaltet,  hat aber evtl. nur einen SX1231 verbaut, nicht den SX1231H. Dies erscheint mir sehr wahrscheinlich. Zudem ist der Aufdruck auf dem Chip („RF69“) mit dem auf einem RFM69CW praktisch identisch.

2.) es ist tatsächlich ein SX1231H verbaut, aber durch den HF Schalter an der Antenne treten Verluste auf. Dass diese Verluste eine Grössenordnung von 3 dB haben sollen ist sehr unwahrscheinlich. Normalerweise hat ein HF Switch mit Anpassungsnetzwerken Verluste so um 1 dB, vielleicht etwas mehr. Also 19 dBm sollte ich dann schon messen können.

RFM69HCW_current_table

Sei’s drum, hier eine Tabelle der Einstellungen die letztendlich Sinn machen. Die gelb unterlegten Einstellungen sind sinnvoll, die anderen nicht, da sie gegenüber den anderen mehr Strom verbrauchen.  Die oben erwähnte Bibliothek von Lowpowerlabs implementiert die verschiedenen Modi übrigens unzureichend. Hier muss der Treiber entsprechend angepasst werden.

Die dritte Überraschung

Betrachtung der Ausgangsleistung mittels Powermeter:

RFM69HCW_Boostmode_BurstPower1

Ooops? Da ist eine fast 1 ms lange Phase wo das Signal um 2 dB geringer ist als programmiert. Eine Ursache aus der analogen Welt, etwa ein Spannungseinbruch aufgrund des plötzlichen Strombedarfs, scheidet aus. Dazu ist die Treppenstufe zu ausgeprägt, und für einen solchen Effekt auch untypisch. Das ist insofern äusserst unerwünscht, weil gerade am Anfang die wichtigen Synchronisierungsdaten übertragen werden. Gerade da muss man sich auf perfekte Datenübertragung verlassen, da sonst das gesamte Paket nicht erkannt wird.

Die Ursache: Der Treiber (auf Basis der Lowpowerlabs Bibliothek) wurde offensichtlich nicht ausreichend auf den Betriebsfall getestet. Die Register die für den „PA Boost“ verantwortlich sind werden unmittelbar vor der eigentlichen Datenübertragung gesetzt. Offensichtlich startet die Datenübertragung, es dauert aber eine Weile bis die Hardware auf die Registerwerte reagiert – es kommt zu so einem Treppeneffekt.

Die Lösung: Die Register werden lange vor der eigentlichen Datenübertragung gesetzt. Allerdings musste ich ziemlich lange testen bis es funktioniert hat – Gerätetreiber haben ihre eigenen Gestze. Den Treiber hänge ich hier an – er hat aber mit dem Original fast nichts mehr zu tun. Zunächst musste ich den Treiber bezüglich des Umgangs mit Interrupts entrümpeln, da ist dem Author offensichtlich die Übersicht verloren gegangen. Interrupts innerhalb der ISR freizugeben geht gar nicht.  Desweiteren bin ich der Meinung dass MAC-Funktionen nicht in den PHY gehören und habe entsprechende Funktionalität herausgenommen. Dies wird nun in einem höheren Layer erledigt.

RFM69HCW_Boostmode_BurstPower2

So jetzt passt’s.

Die vierte Überraschung

Das Diagramm zeigt einen Vergleich Der Empfangsempfindlichkeit zwischen einem RFM69CW, montiert auf einem TinyTx3 und einem RFM69HCW montiert auf einem TiNo.  Gemessen wird hier bei 865 MHz. BER_TinyTx3_RFM69_vs_prominirfm95_RFM69HCW

Die BER (Bit Error Rate, Bitfehlerhäufigkeit) messe ich mit einem PRBS9 Pattern, erzeugt von einem R&S SMU200. Üblicherweise wird als „Eingangsempfindlichkeit“ der Eingangspegel bezeichnet bei dem die BER 0.1% erreicht, also eines von tausend Bits falsch übertragen wird. Also je niedriger die Eingangsempfindlichkeit desto besser.

Das Ergebnis der Messung war ziemlich überraschend, weil ja zwischen Antennen- eingang und RF69 Chip der HF Schalter liegt, den es so auf dem RFM69CW nicht gibt. Trotzdem ist die Eingangsempfindlichkeit locker um 3 dB geringer. Sieht so aus als wäre in dem HF Schalter noch ein LNA (Low Noise Amplifier) integriert, der die Verluste des Schalters kompensiert. Auf einem komplexen Chip wie dem RF69 (also im Prinzip SX1231H) ist prozessbedingt (meist CMOS) der LNA des Empfängers immer ein Kompromiss. Im HF Schalter hingegen ist das Niveau der Integration sehr gering, oft sind solche Designs auch mit speziellen HF Prozessen gefertigt (etwa GaAs), so dass der externe LNA hier eine echte Qualitätsverbesserung bringt.

Fazit

Die beworbenen 20dBm Ausgangsleistung des RFM69HW kann ich nicht erreichen. Möglicherweise bin ich einer Mogelpackung aufgesessen. Nachdem man in Europa im SRD Band ohnehin nur 25mW ( also 14 dBm) abstrahlen darf ist dies aber kein wirkliches Problem.

Die im Internet verfügbaren Treiber implementieren den RFM69H(C)W nicht 100% richtig.

Die Eingangsempfindlichkeit ist beim RFM69HCW deutlich – um fast 3 dB – besser als beim RFM69CW. Ob man diese bessere Empfindlichkeit in der Praxis ausnutzen kann hängt stark von der äusseren Beschaltung des Moduls ab.

Hinterlasse einen Kommentar