Hallo zusammen, bei der Kommunikation zwischen meinem GSM Modul und HTERM vom Laptop aus, gebe ich nur die Baudrate bei HTERM vor. Bei dem GSM Modul steht als Baudrate auto-baud eingetragen. Die Kommunikation klappt einwandfrei. Ich frage mich allerdings, woher dem GSM Modul die Baudrate von HTERM bekannt ist. Sendet HTERM die Baudrate als Parameter mit? Vielen Dank. Grüße datatom
Ich würde die Länge des Startbits messen. Aber wie es tatsächlich IST, weiss ich nicht.
Die meisten Modems können mit dem "A" von "AT" an Hand der Flanken die Baudrate automagisch erkennen. Gibts auch bei manchen µCs, z.B. im UART vom LPC1768 von NXP.
Thomas H. schrieb: > Sendet HTERM die Baudrate als Parameter mit? Nein. Ein verbreiteter Autobaudmechanismus ist das AT-Kommando aus dem Hayes-Befehlssatz von Modems (wie von Jim schon erwähnt). https://en.wikipedia.org/wiki/Hayes_command_set#Autobaud
Danke für die Antworten. Ist das auch zwingend so, wenn ich das AT- Kommando von meinem Arduino Mega 2560 sende?
Zusatz: Weil das Senden vom Arduino MEGA 2560 zum GSM Modul niht klappt. Wohl aber das Senden vom Arduino MEGA 2560 zu HTERM auf dem Laptop. Von daher scheint das reine Senden ok zu sein.
datatom schrieb: > Danke für die Antworten. > > Ist das auch zwingend so, wenn ich das AT- Kommando von meinem Arduino > Mega 2560 sende? Wenn die Autobaud-Erkennung im GSM-Modul auf dem AT-Kommando basiert, dann ist es egal, wo das AT herkommt. Probiere es doch einfach aus, ob es funktioniert. Die Wahrscheinlichkeit ist groß, daß es klappt.
Nicht jedes GSM-Modul akzeptiert jede Baudrate. Außerdem muss ein AT-Kommando korrekt aufgebaut sein, um akzeptiert zu werden - hier wird gerne das CR (\r) am Ende vergessen.
THOR schrieb: > Ich würde die Länge des Startbits messen Das geht garnicht, danach kann es ja mit einem 0-Bit weitergehen. Ausser der Erkennung eines festen Zeichens wie A von AT kann man bei beliebigen Texten eine Reihe von Flankenabständen messen, die müssen ein Vielfaches des kleinsten vorkommenden Abstands sein, und der ist die Zeit für 1 Bit. Ist natürlich aufwendiger und auch nicht 100%ig sicher. Georg
Die Baudrate beträgt 9600. In der Beschreibung steht zur Höhe der Baudrate nur die maximale Höhe über 230 kBit/s. Das AT Kommando sollte korrekt aufgebaut sein: AT+CPIN=0000\r
Thomas H. schrieb: > Die Baudrate beträgt 9600. In der Beschreibung steht zur Höhe der > Baudrate nur die maximale Höhe über 230 kBit/s. > > Das AT Kommando sollte korrekt aufgebaut sein: AT+CPIN=0000\r Na dann sollte das auf jeden Fall auch mit dem ATMega funktionieren. Das AT-Kommando kannst du auch einfach als AT\r senden. Also ohne Funktion. Nur für die Autobaud-Erkennung. Wenn die Kommunikation dann funktioniert, also das GSM-Modem die Baudrate erkannt hat, dann kannst du die PIN senden. Vorher gibt es ja keine Garantie, daß die Baudrate schon erkannt wurde.
z.B. beim LIN-Bus (der übrigens auf UART basiert) wird vom Master als erstes Byte immer ein SYNC geschickt, welches 0x55 beträgt, also 1010101. Das kann dann vom Slave sehr einfach ausgewertet werden, um seinen Clock entsprechend anzupassen. In der Praxis wird das genutzt, um in den Slaves auf die teuren Quarze verzichten zu können. Es reicht dann ein billiger RC-Oszillator.
Mal abgesehen vom Sync Byte kann man das Stopbit relativ leicht finden, wenn die Länge am standard 1,5 ist.
Wenn nur EIN Zeichen gesendet wird, also Pause-Zeichen-Pause, dann müsste es auch immer funktionieren. Unabhängig vom Zeichen selbst.
Thomas W. schrieb: > kann man das Stopbit relativ leicht finden, > wenn die Länge am standard 1,5 ist Abgesehen davon, dass 1,5 seit den Zeiten seliger Teletype und Lorenz-Fernschreiber kein üblicher Standard mehr ist, kann das auch deshalb nicht funktionieren, weil ja keineswegs wieder ein Startbit folgen muss - das Stopbit kann beliebig lang sein. Thomas W. schrieb: > Wenn nur EIN Zeichen gesendet wird, also Pause-Zeichen-Pause, dann > müsste es auch immer funktionieren Wenn man von so lästigen Details absieht wie 5,6,7,8,9 Bit und Parity Even, Odd oder keine... Georg
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.