Hallo Zusammen,
ich möchte zwei Raspberry Pi Pico über LoRa (nicht LoRaWAN) miteinander
reden lassen. Ich habe leider keine passende Library gefunden und
"entwickle" das ganze deshalb selbst. Ich nutze C und habe die Infos
alle aus dem Datenblatt. Die SPI Kommunikation mit dem funktioniert, und
ich kann beispielsweise die Frequenz einstellen. Wenn ich allerdings den
Modus auf Senden oder Empfangen stellen möchte, funktioniert das ganze
plötzlich nicht.
Empfänger:
Hallo,
David P. schrieb:> und> "entwickle" das ganze deshalb selbst.
sehr lobenswert
David P. schrieb:> und habe die Infos> alle aus dem Datenblatt.
geniale Idee
Ich finde es immer wieder als Zeugnis überragender Fähigkeiten, wenn
jemand entwickeln kann, ohne Kommentare hinter die Zeilen zu schreiben
und alle Bedeutungen der Einstellungen im Kopf korrekt parat haben kann.
was bewirkt eigentlich da die 8 in der zweiten Zeile?
Du möchstest anscheinend LoRa-mode einstellen und dies kommt zwei Mal im
Code vor. Es gibt einen magischen Satz zu diesem Bit, der hier
Einschränkungen bringt:
"0 FSK/OOK Mode
1 LoRa Mode
This bit can be modified only in Sleep mode. A write operation on
other device modes is ignored"
writeReg(RegOpMode, 0x00);
writeReg(RegOpMode,0x85);
Dabla Tabel 42
6-5 ModulationType rw 0x00
Und hast Du den hierauf folgenden Text beachtet?
4.4. LoRa Mode Register Map
mfg
Christian S. schrieb:> "0 FSK/OOK Mode> 1 LoRa Mode> This bit can be modified only in Sleep mode. A write operation on> other device modes is ignored"
ah, das muss ich überlesen haben, danke
ich weiß dass ich an meinen kommentaren arbeiten muss, tut mir leid
Nur damit ich das richtig verstanden habe:
ich schreibe 0x00 an das register für sleep
ich schreibe 0x80 an das register für lora mode
ich setze den gewünschten modus beispielsweise 0x85 für Rx.
David P. schrieb:> ich setze den gewünschten modus beispielsweise 0x85 für Rx.
Ja, im Prinzip sehe ich das auch so. Für den Modus müßte sogar 0x05
ausreichen, da zuvor separat umgeschaltet wurde. Eine Lesestelle, wonach
zum Umschalten noch eine Wartezeit einzuhalten wäre, habe ich nirgends
gefunden.
Allerdings habe ich das Gerät nicht da, sondern kann nur nach Datenblatt
angaben machen. Was da fehlt oder ungenau beschrieben ist, kann man nur
anhand funktionierender Programme anderer Leute heraus arbeiten.
mfg
Warum verwendest du die RadioLib von jgromes nicht zur Unterstützung?
Die kann sicher fast alles, was du brauchst und geht auch für den
RP2040. Siehe https://github.com/jgromes/RadioLib
Helmut -. schrieb:> Warum verwendest du die RadioLib von jgromes nicht zur> Unterstützung?> Die kann sicher fast alles, was du brauchst und geht auch für den> RP2040. Siehe https://github.com/jgromes/RadioLib
Ich kann den David nur ermutigen weiter zu machen und keine Lib zu
verwenden. Es ist ja nun kein Hexenwerk per SPI ein paar Register zu
beschreiben. Und wenn es nicht wie bei der RadioLib eine eierlegende
Wollmilchsau werden soll, reicht da eine simple Tabelle und eine kleine
Schleife. Es hat dann den großen Vorteil, dass man auch versteht was man
am Ende gemacht hat. Durch die genannte Lib muss man auch erst mal
durchsteigen, die Doku ist nicht mehr als eine Aufzählung der Funktionen
und ihrer Parameter. Nichts davon versteht man, wenn man das Datenblatt
der verwendeten Chips nicht gelesen hat. Und wenn man es hat, braucht
man keine Lib. Und wenn was wichtiges fehlt (OOK z.B. bei RFM95) bastelt
man das dann doch selbst.
Ich habe die verschiedenen Modi mitlerweile auch zum laufen bekommen,
glaube aber, dass ich eines der Module zerstört habe. ich kann beide als
sende Modul setzen und bekomme auch je eine Bestätigung, dass ein Paket
gesendet wurde, aber ich empfange nichts. Da ich die Module vorher
schonmal versucht habe zu benutzen, ist es durchaus möglich, dass dabei
etwas kaputt gegangen ist. Ich habe Ersatz bestellt und werde weiter
schauen, wenn die neuen Module da sind
Vielen Dank für eure Hilfe