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
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
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
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
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
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
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
> 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.
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
@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.
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.