Forum: HF, Funk und Felder RFM22-S1 Rev V2


von Carsten M. (ccp1con)


Angehängte Dateien:

Lesenswert?

Hallo Jungs,
ich bin gerade am Verzweifeln. Bekomme die Funkbrücke zwischen zwei 
Modulen nicht zum laufen.
Ich habe beide Module auf GFSK im FIFO betrieb mit automatischem packet 
handling konfiguriert.
Konfiguration habe ich auch schon wieder zurückgelesen und verglichen. 
All OK.
Wenn TX FIFO Almost Full Threshold (txafthr[5:0]) überschritten wird 
gibt der Sender gibt mir einen ipksent Interrupt.
Also gehe ich davon aus, dass er was rausgeschoben hat.
Aber auf der Empfängerseite ist Stille.
Der Chip ist im RX State (cps[1:0] = 01), Synthesizer Lock Detect Status 
= 1 und FIFO’s empty.
Aber der Chip sagt kein Mux. Keine valid keine invalid Preamble, kein 
SynchWord nothing.

Hat Jemand Erfahrungen mit diesen Modulen?
Wie kann ich mich weiter vortasten? Habe ich was übersehen?
Was kann ich prüfen?

Danke für Eure Hinweise.
Gruß
Carsten

von Carsten M. (ccp1con)


Lesenswert?

Hallo,

Nach wer weiß wie vielen Stunden probieren habe ich nun die beiden 
Module mehr oder weniger am laufen.
Probleme habe ich noch mit dem POR des Receivers. Manchmal ist der Chip 
im RX mode manchmal nicht.
Keine Probleme dagegen auf der Senderseite. Einfach Daten in den FIFO 
schreiben und alles passiert automatisch.
Allerdings geht ungefähr ein Packet von zehn verloren.
Ich denke, dass es mit der Frequenzabstimmung zu tun hat.
Leider hört meine Messtechnik bei 60 MHz auf zu funzen.

Nun meine Frage: wie kann ich die Quarze und/oder die Frequenzen 
trotzdem anpassen.
Ich habe bereits das Offset des AFC aus den Register 0x73 und 0x74 
ausgelesen.
Das bewegt sich immer so bei 0x0399 (is a twos complement value??)  ist 
das nun 921 oder -409 (oder nichts von beidem).
Werde da nicht ganz schlau aus dem Datenblatt (ich sollte besser 
Fehlerblatt sagen :-).

Die Grundidee ist einen festes Offset und eine festen „Crystal 
Oscillator Load Capacitance“ zu programmieren und AFC auszuschalten.

Vielleicht hat ja dieses mal jemand einen Hinweis.
Wäre schön.
Gruß Carsten

von Carsten M. (ccp1con)


Lesenswert?

??
oder sollte ich das Thema in einer anderen Gruppe posten?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Carsten H. schrieb:

> oder sollte ich das Thema in einer anderen Gruppe posten?

Nö, du bist hier im Prinzip schon richtig, allerdings ist offenbar
der Kreis derer, die mit den neuen RFMs wirklich schon was gemacht
haben, überschaubar klein.

von Carsten M. (ccp1con)


Lesenswert?

Danke Jörg,

ok verstehe, aber die letzte Frage ist ja eher 'ne generelle:

Wie kann ich Sender und Empfänger ohne Messtechnik aufeinander 
abstimmen?

von Funker (Gast)


Lesenswert?

Naja, die Messtechnik ist ja schon eingebaut und wird von der AFC 
genutzt.

Wenn man einen Sender ins Gefriefach beförderst, kann man sehr schön 
sehen wie sich der vom Empfänger gemessene Offset langsam verschiebt.

Bis wieviel kHz das gut funktioniert steht im Datenblatt.

Dein hoher Packetloss ist IMO eher wo anders zu suchen..

von Carsten M. (ccp1con)


Lesenswert?

Danke Funker,

also ist mein Grundgedanke gar nicht so falsch.
Solange abstimmen, bis das AFC offset klein ist.

Bezüglich packet loss: manchmal gibts nen CRC error. Keine Ahnung was 
dafür die Ursache sein kann?

Was meinst du mit "eher wo anders zu suchen.." was kommt da noch in 
Frage?

Gruß

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Carsten H. schrieb:
> also ist mein Grundgedanke gar nicht so falsch.
> Solange abstimmen, bis das AFC offset klein ist.

Solange die AFC nicht in die Nähe eines "Anschlags" kommt, ist das
aber egal, du wirst keine weitere Verbesserung mehr erreichen
bezüglich der Qualität deines Signals.

von Carsten M. (ccp1con)


Lesenswert?

soweit klar. es könnte höchtens ein Zeitproblem sein.
Je größer das offset desto länger der Abstimmungsprozess?? und die 
preamble könnte zu ende sein.

Leider weiß ich nicht wo der "Anschlag" liegt.
Gemessen 0x0399. Das offest ist 10bit breit. ein bit Vorzeichen.

Habe das Gefühl, dass das offset ziemlich groß ist.
Aber was kann man tun um as besser anzupassen.

von Funker (Gast)


Lesenswert?

"Zeitproblem" ist ein gutes Stichwort:
Gibt es einen Unterschied in der PER[%]  wenn du mit 1, 10, 100 PPS 
sendest?

Ändert sich die PER wenn du die Datenrate oder Paketlänge änderst?


Noch 'ne Idee:
QRM? Der RSSI sollte wenn du nicht sendest ja deutlich kleiner sein als 
zum
Zeitpunkt iswdet = 1  (Sync Word Detected)

von Carsten M. (ccp1con)


Lesenswert?

Danke Funker,

mal langsam ich bin BWL-Student und kein Funker. ;-)

Was ist PER, PPS und QRM!?

RSSI ist 00 bis 03 wenn ich nicht sende. Aber auch wenn ich sende und 
der Empfänger was kriegt ist RSSI blos max 53. Das sind laut Datenblatt 
ungefähr nur -90dBm. Sender und Empfänger sind ca. 20 cm voneinander 
entfernt un der sender powerd mit ca. 11dBm.

Ist das nicht ein bisschen wenig? Auch wenn ich nur zwei Wurfantennen 
verwende?

Gruß Carsten

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Carsten H. schrieb:
> Was ist PER, PPS und QRM!?

PER - packet error rate
PPS - pulses per second (rate ich jetzt mal)
QRM - Störungen durch andere Sender, eine der so genannten Q-Gruppen,
      mit denen im klassischen (Morse-)Funk ständig wiederkehrende
      Begriffe abgekürzt werden

von Carsten M. (ccp1con)


Lesenswert?

Hallo Jörg, Hallo Funker,

über QRM hatte ich was im net gefunden.
Ist das vergleichbar mit Rauschen?
Ich habe gesehen, dass am Empfänger immer irgendwas reinkommt.
Oft invalid preamble aber manchmal auch ne valid preamble.
Habe dann verschiedenen Kanäle getestet konnte aber nicht wirklich einen 
signifikanten Unterschied feststellen. Habe dann die preamble ein wenig 
verlängert (40bit) und gehofft.
PPS heißt bestimmt packet per second ?
Im Moment gibt es ein Packet per Mausklick (also vergesst 100 PPS:-) und 
die PER ist demzufolge eher 'ne Schätzung.
Kann jemand bitte den oben erwähnten RSSI Wert beurteilen.

PS: Ich habe versucht auf Manchester codierung umzustellen, jetzt geht 
im Moment gar nichts mehr! Könnte Manchester zu einer stabileren 
Übertragung beitragen?


Gruß

von Carsten M. (ccp1con)


Angehängte Dateien:

Lesenswert?

Aktuelle Config angehangen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Carsten H. schrieb:

> über QRM hatte ich was im net gefunden.
> Ist das vergleichbar mit Rauschen?

QRM als solche wären wirklich Störungen durch andere Sender, aber...

> Ich habe gesehen, dass am Empfänger immer irgendwas reinkommt.
> Oft invalid preamble aber manchmal auch ne valid preamble.

...die wirst du mit in der Auswertung kaum von durch Rauschen
verursachten ungültigen Signalen unterscheiden können.  Daher
benutzt man ja auch eine Präambel, auf die man den Empfänger
erst einmal synchronisiert.

> PPS heißt bestimmt packet per second ?

Ja, da wirst du Recht haben.

> Im Moment gibt es ein Packet per Mausklick (also vergesst 100 PPS:-) und
> die PER ist demzufolge eher 'ne Schätzung.

Dann solltest du erst einmal entsprechend viele Frames übertragen,
denn derartige Störungen kann man nur statistisch erfassen.  Erst,
wenn du den Störgrad kennst und seine Veränderung bei Änderung von
Parametern wahrnehmen kannst, merkst du, was wirklich gegen die
Störung hilft.

> Kann jemand bitte den oben erwähnten RSSI Wert beurteilen.

Tut mir leid, ich nicht.

> Könnte Manchester zu einer stabileren
> Übertragung beitragen?

Ja, ich denke schon.

von Analoger (Gast)


Lesenswert?

Hi Carsten,
deine RFM22_Config.c ist viel aussagekräftiger als mein hex und bin 
Geschreibsel.

Ein Vorschlag:
Du postest die RFM22_Register struct und die enums / #defines etc.,
und ich vergleich dann die Register und poste die Register die sich von 
meiner Konfig. unterscheiden.

von Carsten M. (ccp1con)


Angehängte Dateien:

Lesenswert?

Hallo Analoger (Gast),
wie du aus meinem ersten post entnehmen kannst habe ich es auch erst mit 
ein paar hex Zahlen versucht. Merkte dann aber sehr schnell, dass die 
Sache zu komplex ist und habe angefangen Übersicht und Ordnung zu 
schaffen. Hat mich einige Mühe gekostet :-)
Gestern, ich weiß nicht warum, bin ich auf die page von Silicon Labs 
gesurft und bin auf die neue Version V26 des Register Rechners gestoßen 
(Si4432 Register Settings_RevV-v26.xlsx).
Die Ausgaben unterscheiden sich nur um zwei oder drei bits.
Aber jetzt geht’s!!
Das die Dokumentation schlampig ist war mir gleich aufgefallen, aber 
dass die ein tool veröffentlichen, das gelinde gesagt Sch… rechnet, 
hätte ich nicht geglaubt. Langsam überkommt mich der Verdacht, dass 
HopeRF diese frühe Revision nur an uns Bastler abgeben kann. Naja.
Also hier die header Datei.  Hatte mir schon gedacht, dass diese Frage 
kommt.
Vielleicht kann der Eine oder Ander etwas verbesser oder ergänzen.
Welchen chip hast du im Einsatz?

Gruß Carsten

von Amaran (Gast)


Lesenswert?

Servus,
ich hatte eine Zeit lang mit dem Chip (V2) zu tun. Und irgendwie hat 
anscheinend jeder die gleichen Probleme.

I)
Baut 30 MHz TCXOs ein. Dadurch verringert sich die fehlerhafte 
Frequenzverschiebung auf ca. 1/10, da diese meist gut abgestimmt sind.
Leider sind diese meist relativ teuer und nicht so einfach verfügbar.
Silicon Labs hat eine entsprechende Applikation Note zur Beschaltung.
Es ist keine weitere Arbeit mehr für die Frequenzverschiebung nötig.

II)
Carsten H. schrieb:
> RSSI ist 00 bis 03 wenn ich nicht sende. Aber auch wenn ich sende und
> der Empfänger was kriegt ist RSSI blos max 53. Das sind laut Datenblatt
> ungefähr nur -90dBm. Sender und Empfänger sind ca. 20 cm voneinander
> entfernt un der sender powerd mit ca. 11dBm.

Das ist zu wenig. Überprüfe, ob du die Leitungen für RX_Ant und TX_Ant 
richtig beschalten hast, da diese direkt auf den Umschalter (SPDT) am 
Antennenausgang führen.
Zudem muss man die RSSI Register öfters abfragen, da diese manchmal 
seltsame Werte ausgeben.
Pi*Daumen sollte ein Wert über -20dbm rauskommen.

III)
@Carsten H.
Stell die Frequenz lieber direkt in 75h 76h ein, und verwende das 
Receiver Workaround aus dem Erratasheet. Ob das mit den Hopping Kanälen 
wirklich zu funktioniert, hab ich noch nicht getestet.
Zu den Berechnungssheets. In die Tonne damit.
Lieber selbst die Berechnungen in nem Excelsheet durchführen.

IV)
Warum gehen alle so auf den Sync-Word-Detect? IMHO ist dieser für 
unidirektionale Kommunikation überflüssig. (Außer bei FHSS zur 
Kanalidentifikation)
Wird der Paket-Handler aktiviert, kann Empfängerseitig einfach der Valid 
Packet Received Interrupt ausgewertet werden. Dann in Register 4Bh, 
"Received Packet Length" nachschauen und den FIFO im Burst mit der Menge 
auslesen. Damit vermeidet man auch nen FIFO underflow.
Nach der Aktion ´nen RX/TX FIFO reset durchführen.
Leider weis ich nicht, wie´s mit dem Errata Receiver Workaround 
aussieht, ich führs nach jedem Paket aus.

Wenn man die Pakete selbst stückelt und das Versenden manuell startet, 
dann braucht man auch keine Tresholds bei den FIFOs.


Leider habe ich keine weiteren Unterlagen mehr, da ich nur im 
Praxissemester den Chip behandelt habe.

Evtl. werde ich mit Version B1 ein Funkmodul mit uC als Semesterarbeit 
erstellen. Kommt aber drauf an, obs mein Prof zulässt, bzw. was anderes 
im Sinn hat.

mfg
Amaran

PS.:
>500m Reichweite in urbaner Umgebung

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.