mikrocontroller.net

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


Autor: Carsten M. (ccp1con)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Carsten M. (ccp1con)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Carsten M. (ccp1con)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
??
oder sollte ich das Thema in einer anderen Gruppe posten?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Carsten M. (ccp1con)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Funker (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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..

Autor: Carsten M. (ccp1con)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Carsten M. (ccp1con)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Funker (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Carsten M. (ccp1con)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Carsten M. (ccp1con)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Carsten M. (ccp1con)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Aktuelle Config angehangen.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Analoger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Carsten M. (ccp1con)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Amaran (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.