Forum: Mikrocontroller und Digitale Elektronik Programmierung und Betrieb der Funkmodule E32-868T


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Wolle G. (wolleg)


Angehängte Dateien:

Lesenswert?

Ich habe mir die LoRa-Funkmodule E32-868T und die Anleitung dazu 
zunächst nur erst einmal auf dem Papier angesehen.
Die Funkmodule kommunizieren über UART. Leider finde ich keine 
Anleitung, wie man die Dinger programmieren muss. Im Netzt gibt es 
Programme für den Betrieb mit einem Arduino. (k. A. davon)
Ich würde MSP430 + Programmiersprache C verwenden wollen.
Meine Frage: Hat jemand einen Hinweis, wo man etwas zur Programmierung 
und dem Betrieb dieser Module finden könnte?
Das beginnt schon bei der Konfiguration. Z.B. Wie könnten die 
Programmzeilen lauten, um die Adresse, den Kanal oder ob das Modul der 
Empfänger oder Sender sein soll usw.  fest zu legen?

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Wolle G. schrieb:
> Im Netzt gibt es
> Programme für den Betrieb mit einem Arduino. (k. A. davon)
> Ich würde MSP430 + Programmiersprache C verwenden wollen.
> Meine Frage: Hat jemand einen Hinweis, wo man etwas zur Programmierung
> und dem Betrieb dieser Module finden könnte?
> Ich würde MSP430 + Programmiersprache C verwenden wollen.

Warum guckst du dann nicht in den Arduino Code?

von Harry L. (mysth)


Lesenswert?


von Wolle G. (wolleg)


Lesenswert?

Harry L. schrieb:
> Guckst du hier:

Dort hatte ich nur die Anleitung, welche im 1. Beitrag bereits angehängt 
wurde, gefunden. Dort finde ich aber nicht das, was ich im 1. Beitrag 
beschrieben hatte.

von Harry L. (mysth)


Lesenswert?

Wolle G. schrieb:
> Harry L. schrieb:
>> Guckst du hier:
>
> Dort hatte ich nur die Anleitung, welche im 1. Beitrag bereits angehängt
> wurde, gefunden. Dort finde ich aber nicht das, was ich im 1. Beitrag
> beschrieben hatte.

Da gibts aber auch ein Zip-File mit Beispielen für versch. MCUs.

von pureasm (Gast)


Lesenswert?

Das Datenblatt ist doch ausführlich, M0 und M1 legen den Modus fest, der 
Rest ist reines ASCII

von H. (Gast)


Lesenswert?

Da gibt es doch nichts zu programmieren. 5V dran, M0/M1 beide auf Masse. 
Dann 2 Bytes Adresse, 1 Byte Kanal und x Bytes Daten in einem Rutsch 
senden, fertig.
An deiner Stelle würde ich zunächst einmal zwei Module jeweils an einen 
USB/UART-Converter hängen und direkt am PC/HTerm o.ä. ein wenig damit 
herumspielen, um Erfahrungen damit zu sammeln. Nicht zu nahe beieinander 
liegen lassen, das könnte die jeweiligen Empfänger zudröhnen.

von Einhart P. (einhart)


Lesenswert?

Eigentlich musst du die Dinger nicht programmatisch konfigurieren. Es 
gibt vom Hersteller ein PC Progrämmchen mit dem du die Konfiguration 
vornimmst. Die Einstellungen bleiben gespeichert. Du hast dann eine 
transparente USARt Verbindung.

Bei meinen Lieferungen lagen damals sogar passende USB-Adapter bei.

: Bearbeitet durch User
von Langwelle (Gast)


Lesenswert?

Hallo,


so um die 10€, sehen interessant aus diese Module.
Hat da jemand Erfahrung mit gesammelt, sind die empfehlenswert,
oder gibt es ähnlich besseres?


Danke

von temp (Gast)


Lesenswert?

Langwelle schrieb:
> so um die 10€, sehen interessant aus diese Module.
> Hat da jemand Erfahrung mit gesammelt, sind die empfehlenswert,
> oder gibt es ähnlich besseres?

Die Idee hinter den Modulen ist gut, allein die Ausführung ist Scheiße. 
Warum man sich ohne Not auf ein Kanalraster von 1MHz festgelegt hat, 
erschließt sich wohl nur den Chinesen. Damit ist es nicht ganz einfach 
regelkonform in Deutschland zu bleiben. Was anderes als die bekannten 
Semtech-Chips und ein kleiner Controller steckt in den Modulen ohnehin 
nicht drin. Schade auch, dass es keine Infos dazu gibt wie die Bytes 
zusammengebastelt werden die dann in der Luft landen.
Auch sollte man bedenken, dass man über die Module nur immer ein paar 
Byte als Block schicken kann. Es ist halt nicht so wie bei einem 
Bluetooth Modul.
Meine ersten Projekte mit Lora habe ich auch mit diesen Modulen gemacht. 
Im Nachhinein war das (für mich) ein Fehler. Inzwischen benutze ich die 
RMF95 Module, die wesentlich flexibler zu handhaben sind sobald man die 
ersten Hürden überwunden hat.

von temp (Gast)


Lesenswert?

Ach, noch was. Du sprichst vom E32-868T30D mit 1W Sendeleistung (30dBm).
Die Leistung des Moduls lässt sich nach unten nur bis 21dBm einstellen. 
Mit dieser Leistung und dem Kanalraster von 1MHz sollte es nicht nur 
schwer sein, sondern unmöglich in D legal zu bleiben. Dann kauf lieber 
den kleinen Bruder E32-868T20D mit max. 20dBm. Der lässt sich dann auch 
soweit runterschrauben, dass er legal bleibt.

von H. (Gast)


Lesenswert?

Legal, illegal, sch...egal, ist doch eh Spread Spectrum...
Amateurfunker hassen diesen Trick.
SCNR

von temp (Gast)


Lesenswert?

H. schrieb:
> Legal, illegal, sch...egal, ist doch eh Spread Spectrum...
> Amateurfunker hassen diesen Trick.
> SCNR

Nicht nur die. Ich würde den Experten auch hassen der mit 1W und 
Dauerstrich alles um sich herum zum schweigen bringt.

von Wolle G. (wolleg)


Angehängte Dateien:

Lesenswert?

H. schrieb:
> Da gibt es doch nichts zu programmieren. 5V dran, M0/M1 beide auf Masse.
> Dann 2 Bytes Adresse, 1 Byte Kanal und x Bytes Daten in einem Rutsch
> senden, fertig.
> An deiner Stelle würde ich zunächst einmal zwei Module jeweils an einen
> USB/UART-Converter hängen und direkt am PC/HTerm o.ä. ein wenig damit
> herumspielen, um Erfahrungen damit zu sammeln.

Soweit bin ich noch nicht.
Da meine Programmier- und Englischkenntnisse rel. schwach entwickelt 
sind, wollte ich erst mal eine Trockenübung ohne diskrete Module machen.
Deshalb hatte ich zunächst mit der „Entwicklung“ der UART- Übertragung 
mit 2x MSP430, wie sie für die Ansteuerung der Funkmodule notwendig ist, 
begonnen. (Beitrag "Re: MSP430 über UART Daten senden")
Das funktioniert jetzt wie gewünscht.(keine "Trockenübung")

Vielleicht kann mal jemand meinen Programmentwurf für eine mögliche 
Konfiguration eines Funkmoduls („den kleinen Bruder E32-868T20D mit max. 
20dBm“) beurteilen. (Anhang)
Erste offene Fragen:
1) Was bedeutet C0,C1,C3 ?
2)  Wie legt man fest, ob es Sender oder Empfänger sein soll?

: Bearbeitet durch User
von H. (Gast)


Lesenswert?

Genau aufgrund deiner Fragen wäre ein echtes Modul am USB-Converter 
sinnvoll, denn dann würdest Du ein „Gefühl“ für die notwendigen Schritte 
entwickeln.

von Einhart P. (einhart)


Lesenswert?

Das sind Transceiver - d.h. sie senden und empfangen. Was du an RxD 
gibst wird gesendet. Empfangene Daten kommen über TxD zum Controller.

Kannst du beantworten warum du die Konfiguration der Module im laufenden 
Betrieb verändern willst? Nur dann hast du mit C0 etc. zu tun.

von Wolle G. (wolleg)


Lesenswert?

Einhart P. schrieb:
> Das sind Transceiver - d.h. sie senden und empfangen. Was du an RxD
> gibst wird gesendet. Empfangene Daten kommen über TxD zum Controller.
Danke. Das verstehe ich. Aber, ich konstruiere mal: Was passiert, wenn 
während des Sendens eines Datenpaketes zur gleichen Zeit Daten empfangen 
werden? Das geht doch über dieselbe Antenne (falsch gedacht?)

> Kannst du beantworten warum du die Konfiguration der Module im laufenden
> Betrieb verändern willst? Nur dann hast du mit C0 etc. zu tun.
Nein,das kann ich nicht. Das läuft unter k. A. (keine Ahnung)

Was soll es mal werden?
Es sollen u. a. aus einem entfernt liegenden Heizraum zunächst
8 x 16Bit breite Temperaturwerte abgefragt werden. Der Zeitpunkt der 
Abfrage soll sporadisch festgelegt werden, indem ein Signal dorthin 
gesendet wird, welches den Sendeprozess im Heizraum auslöst. Damit sind 
die Sender für längere Zeiträume AUS.
Ob ich mir die Module zulege oder nicht, soll davon abhängen, ob es mir 
gelingen könnte, auch mit Hilfe des Forums, die Module zum Laufen zu 
bringen. (alles ist Neuland)
Deshalb auch die „komischen“ Fragen.
z.B. Wozu sind C0, C1 ... gut? Weitere Fragen wurden schon im Hinterkopf 
gespeichert.

: Bearbeitet durch User
von Harald (Gast)


Lesenswert?

Wolle G. schrieb:
> Was passiert, wenn
> während des Sendens eines Datenpaketes zur gleichen Zeit Daten empfangen
> werden? Das geht doch über dieselbe Antenne (falsch gedacht?)

Das ist generell bei allen Funkmodulen ein relativ komplexes Thema. 
Diese einfachen Module werden vermutlich(!) einfach lossenden und das 
Paket in der Luft wird ignoriert. Die ausgehende Nachricht könnte die 
"in der Luft" liegende Nachricht auch stören, am Ende haben alle 
Teilnehmer nichts. Kann ich aber mangels Erfahrung mit genau diesen 
Modulen auch nicht beweisen.

Gute Funkmodule können "LBT - Listen before talk", also vor dem Senden 
abhören, ob die Luft rein ist.

Wolle G. schrieb:
> Deshalb auch die „komischen“ Fragen.

Ich wiederhole nochmal meine Vorschlag, mit einem Demoset aus zwei 
Teilnehmern und einem einfachen Terminalprogramm wie z.B. HTERM oder 
Docklight wirst Du verstehen lernen. Kostet doch nicht viel. Du kannst 
beide Sets an einem PC anschließen und dann Nachrichten hin- und 
herpingen. Oder Du bringt einen in ein festes Senderaster von z.B. einer 
Sekunde und versuchst von der Gegenseite eine Nachricht zu senden und 
schaust, was passiert. Kommt die durch?

von Einhart P. (einhart)


Angehängte Dateien:

Lesenswert?

Die Vorgehensweise: Die beiden blauen Jumper vom USB-modul entfernen 
(M0/M1 auf high), Funkmodul aufstecken und USB Anschluss mit dem PC 
verbinden. Das Modul kann jetzt parametriert werden.

Das RF_setting Programm starten und die Parameter für beide Module 
setzen. Gleicher Kanal, gleiche Adresse. Baudraten einstellen und 
Parameter auf die Module schreiben.

Die beiden Module (M0 auf low) verhalten sich jetzt wie eine langsame 
Kabel Halb-Duplex_Verbindung.

Mit Hilfe des USB Adapters (mit gesteckten Jumpern) kann man einfach 
testen.

von Wolle G. (wolleg)


Lesenswert?

Einhart P. schrieb:
> Die Vorgehensweise: Die beiden blauen Jumper vom USB-modul entfernen
> (M0/M1 auf high), Funkmodul aufstecken und USB Anschluss mit dem PC
> verbinden. Das Modul kann jetzt parametriert werden.
Habe ich das richtig verstanden? Man muss, um die Funkmodule zu 
konfigurieren, M0 und M1 nicht auf 0 setzen, sondern auf 1. Dann habe 
ich:
„5V dran, M0/M1 beide auf Masse.
Dann 2 Bytes Adresse, 1 Byte Kanal und x Bytes Daten in einem Rutsch
senden, fertig.“
falsch verstanden.
Oder ist das so zu verstehen: Um die Funkmodule zu konfigurieren müssen 
M0 und M1 auf 1 gesetzt werden.
Sind M0 und M1 auf 0 gesetzt, kann ein Datentelegramm versendet bzw. 
empfangen werden.

Zunächst noch einmal die Frage: Was muss bzw. sollte im HEAD-Byte 
stehen, um das Modul zu konfigurieren bzw. wie sollte meine Funktion
void E32_konfigurieren(void) in: 0168-iar_V03-E32 konfig.c aussehen?

Ich habe weder USB-module, noch die Funkmodule. Dafür aber Eigenbauten 
mit MSP430, die z.B. die Temperaturen mittels DS18B20 erfassen, die 
Daten speichern und ... Über UART wäre eine Datenübertragung zu den 
Funkmodulen möglich und die MSP430 sollen auch verwendet werden.

: Bearbeitet durch User
von Harald (Gast)


Lesenswert?

Wolle G. schrieb:
> Um die Funkmodule zu konfigurieren müssen M0 und M1 auf 1 gesetzt
> werden.
> Sind M0 und M1 auf 0 gesetzt, kann ein Datentelegramm versendet bzw.
> empfangen werden.

Genau so, allerdings denke ich mit 3.3V (nicht 5V) bzw. mit den internen 
Pull-ups brauchst Du nur Jumper nach Masse.

In deiner späteren Schaltung würde ich die Pins mit dem Controller 
verbinden, dann bleibt man flexibel.


Wolle G. schrieb:
> Ich habe weder USB-module, noch die Funkmodule.

Aber dann kaufe dich welche. Wenn Du etwas damit machen willst brauchst 
Du die doch eh.

von Harald (Gast)


Lesenswert?

Harald schrieb:

> Aber dann kaufe dich welche.
doch welche

von Einhart P. (einhart)


Lesenswert?

OK, wenn es einigermaßen einfach werden soll, dann nimm die USB Adapter 
zum konfigurieren. Leider sind sie teuer geworden - ich habe sie noch 
als Zugabe bekommen.

Du musst dich in deiner Anwendung nicht mehr um die Konfiguration 
kümmern. Die Module werden am PC eingestellt und dann in's Zielsystem 
gesteckt. Dann hast du eine transparente serielle Verbindung. Wenn du 
eine einfache Verbindung willst kannst du dann M0 auf 0 halten. Du musst 
dich nur noch um TxD und RxD kümmern.

von Wolle G. (wolleg)


Lesenswert?

Einhart P. schrieb:
> OK, wenn es einigermaßen einfach werden soll, dann nimm die USB Adapter
> zum konfigurieren. Leider sind sie teuer geworden - ich habe sie noch
> als Zugabe bekommen.
Warum sollte man sich USB Adapter kaufen, wenn es auch mit den 
vorhandenen µC gehen könnte.
Deshalb auch noch einmal eine konkrete Frage zur Konfiguration. Wie 
müsste das noch fehlende HEAD-Byte aussehen?
Könnten der folgende Programmentwurf funktionieren?

int main(void)
 {
   WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
  // Timer_einstellen();
  // UART_einstellen();
   P2DIR |= BIT4 + BIT5;     // M0 M1
   E32_konfigurieren();
   konfiguration_senden();
   for(;;);
 }
void E32_konfigurieren(void)
{
  P2OUT | =  Bit4 + BIT5;      // M0 und M1 auf  1

  txbuffer[0] = ?? HEAD    was muss hier stehen?
  txbuffer[1] =  0xAB         // Adresse oberes Byte
  txbuffer[2] =  0xCD         // Adresse unteres Byte
  txbuffer[3] =  // SPED    8N1, baudrate, datenrate
  txbuffer[4] =  0x07;        // Kanal 7
  txbuffer[5] =  0x44         // OPTIO, hier Werkseinstellung
}

void konfiguration_senden(void)
 {
     i=0;
     while (i<6)
    {
     TXBUF0 = txbuffer[i];
     while (!(IFG1 & UTXIFG0));     // USART0 TX buffer ready?
     i++;
     }
 }

von Harald (Gast)


Lesenswert?

Wolle G. schrieb:
> Warum sollte man sich USB Adapter kaufen, wenn es auch mit den
> vorhandenen µC gehen könnte.

Das stimmt, da die USB-Serial heutzutage bereits bis zu 1€/Stück kosten 
können muss man da schon zweimal überlegen. Warum sollte man sich das 
Verhalten bequem auf dem PC anschauen, wenn man es durch ein Zielsystem 
auch komplizierter haben kann.

Wenn Du es schon unbedingt auf dem Zielsystem direkt umsetzen willst, 
kaufe Dir jedenfalls einen Logicanalyzer (Saleae Clone 10€), damit Du 
den Traffic zum Modul sehen kannst.

von Wolle G. (wolleg)


Lesenswert?

Zunächst noch 2 weitere Fragen:
a) Falls die Konfiguration des Funkmoduls erfolgreich war, bleibt die 
Einstellung auch nach Abschalten der Vorsorgungsspannung erhalten?

b) Ist das das Senden eines Datenpaketes wirklich so einfach:
M0/M1 beide auf Masse.
Dann 2 Bytes für die Adresse des Empfängers, 1 Byte für Kanal des 
Empfängers und x Bytes Daten in einem Rutsch vom µC über UART an das 
Funkmodul senden, fertig.

: Bearbeitet durch User
von Udo (Gast)


Lesenswert?

Hallo,

Langwelle schrieb:
> sind die empfehlenswert,
> oder gibt es ähnlich besseres?

Ich nutze diese Module sehr gerne:
https://www.tindie.com/products/dorji_com/433mhz-sx1268-tcxo-module-drf1268t/

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Wo ist zu denen das DB zu finden?

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]
  • [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.

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