Forum: HF, Funk und Felder HM-TRP868 config auslesen


von Andy aus Tirol (Gast)


Lesenswert?

Hallo Leute,

hat jemand von euch schon mal das HM-TRP Modul zum Laufen bekommen?
Ich hätte dazu ein paar Fragen mit der Bitte um Unterstützung.

Habe ein Modul an eine UART to USB Bridge angeschlossen. Nach dem 
Einschalten des Modules sendet dieses seine Kennung (HM-TRP-V02!) über 
die UART und kann übers Hyper Terminal angezeigt werden.

Bevor ich das 2. Modul in Betrieb nehme für die eigentliche 
Funkübertragung wollte ich das Auslesen der config bzw. das Ändern der 
Parameter über einzelne Befehle probieren.
Zum Auslesen der config sei AA FA E1 erforderlich. Ich habe es auf 2 
Wege probiert:
1.) über das hyper terminal über das senden einer txt Datei, die diesen 
Code enthiet, hab verschiedene Möglichkeiten probiert.
2.) über den Mega16 mit printf("AAFAE1")

Leider bekomme ich mit keine Rückmeldung vom Modul. Muss das Blockweise 
"gesendet" werden?
Vielleicht kann mir jemand nen Tipp geben. Danke schon mal im voraus.


Hardware: ATmega 16, 16MHz, UART to USB Bridge, HM-TRP868
Compiler: AVR Studio 4, winAVR
Sprache: C

: Verschoben durch Moderator
von Krapao (Gast)


Lesenswert?

[offtopic]
HM-TRP868
http://www.quasaruk.co.uk/acatalog/HM-TRP.pdf
[/offtopic]

von Andy aus Tirol (Gast)


Lesenswert?

Hallo Krapao,

danke für deine Antwort. Das Datenblatt ist mir bereits bekannt. Auf 
Seite 4 stehen die Instruktionen. Jedoch ist mir nicht klar, wie diese 
ausgegeben werden.
Die Parameter sind in hex anzugeben, die Instruktionen allerdings 
scheinbar im ACII Code? Muss der string ein "end string Zeichen" haben?

Gruß
Andy

von Ekkehard D. (ekkehard)


Lesenswert?

Ohne auch nur die blassesste Ahnung von dem Modul zu haben (dafür schon 
etliches mit serieller Datenübertragung gemacht) vermute ich folgendes:
- Die Übertragung erfolgt als ASCII-HEX, d.h. immer zwei Zeichen aus 
'0'..'9' und 'A'-'F' hintereinander bilden ein Byte.
- Der String muss sehr wahrscheinlich mit einem Ende versehen sein, also 
<cr>, <lf> oder zwei Zeichen <cr>+<lf>
- ob die Leerstellen zwischen den Bytes nötig sind, möglich aber eher 
unwahrscheinlich

Bei der Konfiguration über Hyperterminal muss unbedingt jedwedes 
Handshake abgeschaltet werden, weil sonst Hyperterminal wartet oder im 
Falle von XOn/XOff selber Zeichen sendet.
Vermutlich muss auch 8bit und keine Parität verwendet werden.

Viel Erfolg!
Gruß Ekkehard

von Krapao (Gast)


Lesenswert?

IMHO ist das nicht so.

Du schickst drei Bytes (Hex) AA FA F0 (= Reset to default parameter, no 
parameter follows) und bekommst die Antwort (Hex) 4F 4B 0D 0A d.h. 
"OK\r\n".

Die Leitungen CONFIG und ENABLE müssen dabei auf LOW liegen. Wie du das 
bei deiner UART to USB Bridge lösen kannst... vielleicht ganz banal 
pragmatisch mit 1-2 Jumpern, wenn du nur selten konfigurieren musst. 
Oder das Datenblatt der Bridge studieren, wo man mindestens eine freie 
Steuerleitung herbekommen kann.

Wenn du auf µC umsteigst: Vielleicht hilft dir der Sourcecode HM-TRP 
Configurator (Arduino)
https://github.com/MikeSmith/HM_TRP_configurator

von Krapao (Gast)


Lesenswert?

Zum Versenden von Bytes, die man als Hexzahlen kennt, benutze ich HTerm 
("Ein- und Ausgabe in Ascii, Hex, Binär und Dezimal") oder das Br@y++ 
(kann man gut Kommandos auf Makrotasten legen). Downloadadressen stehen 
im Artikel RS232

von Ekkehard D. (ekkehard)


Lesenswert?

Wenn das so ist wie Krapao schreibt, kommt man mit Hyperterminal nicht 
weit. Wenn ich mich recht entsinne muss man dann Binärdateien erzeugen 
und senden. Das ist ein riesen gehampel, deshalb lieber was anderes 
nehmen!
Gruß Ekkehard

von Andy aus Tirol (Gast)


Lesenswert?

Hallo Leute,

vielen Dank für Euro Infos. Ich werde es in den nächsten Tagen mit euren 
Hinweisen testen und auf jeden Fall nen Feedback geben.

@Ekkehard:
Das wundert mich eben auch, dass da keine End Zeichen erforderlich sind 
und keine Hinweise zur Notwendigkeit der Leerzeichen.
Ich werde die Einstellungen des HyperTerminals erneut prüfen.

@Krapao:
Die UART to USB Bridge ist von myAVR. Eigentlich bin ich nicht der 
Freund von vorgefertigten Modulen. Denn was da genau vor sich geht, weiß 
man dann nicht genau und ist fürs debugging schwierig. Aber die myAVR 
Bridge ist echt super und arbeitet seit Jahren stabil (ist Brigde und 
Progammer für ca. 30€). Das ist aber auch das einzige, was ich von myAVR 
habe. Der Rest Eignebau, außer dem Funkmodul natürlich.

Nochmals vielen Dank und Grüße
Andy

von Krapao (Gast)


Lesenswert?

> Das wundert mich eben auch, dass da keine End Zeichen erforderlich sind

Der Befehlssatz (drittes Byte) ist dem Modul ja bekannt und da wäre es 
auch einfach für das Modul die Zahl der Parameter (Bytes) pro Befehl zu 
kennen bzw. entsprechend viele Bytes zu parsen.

> UART to USB Bridge ist von myAVR

mySmartUSB MK2 (Programmer und Bridge)?

In dessen Beschreibung steht was von Hardware-Handshake RTS/CTS (=> 
RS232) Möglichkeiten im Datendurchreiche-Modus RS232. Die 
RTS-Leitung des PC kannst du eventuell benutzen, um die CONFIG Leitung 
zu bedienen (auch aus HTerm oder Br@y++ aus möglich). Wenn du auf den 
Sleep-Modus beim HM-TRP868 verzichtest und ENABLE dauerhaft auf LOW 
legst, reichen die Leitungen der Bridge.

von Andy aus Tirol (Gast)


Lesenswert?

Hallo Leute,

vielen Dank für Eure Hilfen, ihr habt mir sehr geholfen. In der Tat 
reagiert das Modul nur auf hex code Eingaben. Ich nahm an, es müssten 
ASCI Zeichen sein, die ich mit dem hyper Terminal von windows senden 
wollte.
Laut Datenblatt sollten die Parameter in hex gesendet werden. Wie die 
Instruktionen gesendet werden sollen, stand nicht expliziet drin.
Habs dann mit dem HTerm versucht und die hex codes damit rübergesendet.
Das Modul antwortet beim Ändern der config mit ok und beim Lesen der 
config mit dem entsprechenden code.

Genau, es ist der mySmartUSB MK2 (ist Programmer und Bridge). Für das 
Funkmodul soll die Bridge nur zum Einsatz kommen, wenn das Modul in 
seiner config geändert werden soll. Dies geht mit HTerm schnell und 
effizient.
Ansonsten wird gesendet und empfangen (und Steuerung der config, enable 
Leitungen) über einen Mega16. Evtl. schreibe ich noch nen paar c Zeilen, 
um grundlegende config Änderungen per Mega16 vorzunehmen. (back to 
default config)
Richtig komfortabel wäre ein win Program, mit dem die Konfig geändert 
werden kann. Der Hersteller bietet so ne Software kostenlos an, aber 
läuft nicht. Laut Hersteller muss das Modul über COM1 laufen, reagiert 
aber trotzdem nicht. Evtl. läuft es unter win7.

Nochmals vielen Dank an Euch.
Andy

von Rolf R. (ultra-low)


Lesenswert?

@Andy aus Tirol

Habe schon mal mit dem Modul gearbeitet. Mein Rat ist nur die 
Frequenz(hD2) und  transmission power (h96) zu ändern. Alles andere 
bringt nicht so viel. Bei freier Sicht habe ca. 500 Meter mit 
Drahtantenne erreichen können.

Start baud ist 9600.
Zwischen Bytes würde ich 1ms Pause einlegen. Sicher ist sicher.

Was ich nicht rausgefunden habe, wie man Reading the current Config 
parameter [hE1] benutzt.

von Andy aus Tirol (Gast)


Lesenswert?

Hallo Rolf,

durch Ostern komme ich erst jetzt zum Schreiben. Besten Dank für Deine 
Anmerkungen.

Das Auslesen der config geht recht einfach (dank der Tipps hier im 
Forum): AA FA E1 in hex direkt auf das Modul geben. Die Antwort ist 
wieder in hex, die einzelnen Parameter sind durch \n bzw. durch 0 
getrennt. Die Werte kann man sich in dez umwandeln (mittels Win 
Rechner). Die Reichenfolge der Parameter ist dieselbe wie in der Default 
Tabelle im Datenblatt. Nur der Block in der Mitte ist etwas verwirrend, 
da die Parameter dort nicht getrennt sind. Die Freq. ist der allererste 
Wert.

Danke für Tipps mit der Verstellerei der Parameter. Ich habe die 
Sendeleistung nun auf Minimu reduziert, werde aber eine Gummiantenne 
anschließen (Drahtantenne ist schlecht angekoppelt, reflktierte Welle zu 
groß, die Gummiantenne ist 9cm lang und kostet 5€, gibt es auch in 5cm 
Länge). Habe die Reichweite noch nicht getestet, alledings ist dies 
(Reichweite) bei meinen Anwendungen eher irrelevant.

Also, nochmals vielen Dank und schönen Abend. Werde die Tage noch mal in 
diesen Thread reinsehen.

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.