Hallo, ich beschäftige mich schon einige Zeit mit meinem AVR-NET-IO-Board und einem Siemens C55 Handy, um damit SMS im AT-Format versenden zu können. Bei der Software habe ich den Code von Ulrich Radig von Beitrag "Re: SMS mit Siemens und Mega32" als Grundlage verwendet, der für Siemens ME45 und CX70 funktioniert. Mein C55 verwendet ja keinen Lumberg Stecker, sonder einen Slim Lumberg Stecker wie http://pinouts.ru/all/siemens_c55_pinout.shtml und somit habe ich mir das passende original Siemens Datenkabel DCA-500 besorgt und ein Schematic dazu im Internet gefunden (siehe Anhang). Leider ist jetzt mein Problem, dass ich keine funktionierte Kommunikation mit dem Handy zustande bekomme. Ich vermute mal es liegt an der Beschaltung des DCA-500 Datenkabels. Diese habe ich zur Zeit wie folgt: Pin 2 (RxD) -> R1in von Sub-D Stecker des AVR-NET-IO Pin 3 (TxD) -> T1out von Sub-D Stecker des AVR-NET-IO Pin 5 (GND) -> Ground Pin 6 (DSR) -> 5V Habe schon einiges im Forum gefunden, wie Beitrag "AT Commands für Handy Siemens C55" wo CTS und DCD zusätzlich auf Ground geklemmt wird. Funktionieren müsste es mit dem C55, weil einige hier im Forum haben schon eine funktionierende Version. Vielleicht könnte mir da jemand weiterhelfen und mir kurz die richtige Beschaltung erklären. Danke. Schönen Tag noch, Daniel PS: Kann man das Handy eigentlich über dieses Datenkabel auch laden?
Ein weiterer Unterschied zum Projekt von Ulrich Radig ist, das er einen MAX202ECWE verwendet und am AVR-NET-IO ein MAX232N vorhanden ist. Dies dürfte aber keinen Unterschied ausmachen...
Das Problem mit der Beschaltung konnte ich lösen, indem ich erfolgreich AT-Befehle vom RS232-Ausgang des PCs über mein Kabel an das Siemens C55 schicken konnte. Die richtige Beschaltung des Datenkabels ist Pin 2 (RxD) -> T1out von Sub-D Stecker des AVR-NET-IO Pin 3 (TxD) -> R1in von Sub-D Stecker des AVR-NET-IO Pin 5 (GND) -> Ground und das Datenkabel erhält die 5V Versorgung vom Handy Akku, somit braucht Pin 6 nicht beschaltet werden. Umkgekehrt, wenn ich vom AVR-NET-IO einen AT-Befehl an den PC sende, kommt dieser auch an, wobei ich keine ASCII Zeichen im Terminal sehe, sonder "kryptische" Symbole. Ich konnte mein Problem auch weiter eingrenzen, anscheinend erhalte ich keine Antwort von Handy, wenn ich z.B.
1 | printf("at\r\n"); |
sende. Eigentlich müsste ja "OK" vom Handy zurückgesendet werden. Das Problem ist also definitiv der Code der am AVR läuft. Was mir auch komisch erscheint, ist, dass der Aufbau wie folgt ist: ATmega32 -> MAX232 -> MAX232 (im Datenkabel) -> Siemens C55 Könnte das Problem vielleicht der MAX232 am AVR-NET-IO sein? Grüße, Daniel
Daniel B. schrieb: > Umkgekehrt, wenn ich vom AVR-NET-IO einen AT-Befehl an den PC sende, > kommt dieser auch an, wobei ich keine ASCII Zeichen im Terminal sehe, > sonder "kryptische" Symbole. Klingt nach der falschen Baudrate
STK500-Besitzer schrieb: > Klingt nach der falschen Baudrate Hi, danke für den Hinweis. Die Baudrate habe ich mit baud = 9600bps eingestellt. Den Wert für das UBRR-Register berechne ich laut Datenblatt mit
1 | UBRRL = (SYSCLK / (baud * 16L) - 1); |
wobei mein ATmega32 mit SYSCLK = 1MHz läuft. Habe alles gerade noch mal überprüft, scheint aber korrekt zu sein.
Daniel B. schrieb: > Die Baudrate habe ich mit baud = 9600bps eingestellt. Siemens? Vermutlich 19200 bps.
Heinz schrieb: > Daniel B. schrieb: >> Die Baudrate habe ich mit baud = 9600bps eingestellt. > > Siemens? Vermutlich 19200 bps. Bei der Baudrate von 9600 bps habe ich von: http://www.mikrocontroller.net/articles/Handy Vom PC direkt auf das Siemens C55 funktioniert es ja mit 9600 bps, werde die 19200 bps aber mal ausprobieren. STK500-Besitzer schrieb: > oder falsche Menge an Stoppbits... Für die Stoppbits habe ich mal die Default-Einstellung gelassen (1 Stoppbit).
Könnte es sein, das die 1 MHZ Clock des ATmega 32 das Problem ist. Weil laut Datenblatt ist Baudrate = fOSC / (16*(UBRR + 1)) und mit fOSC = 1 MHZ und UBRR = 6 ergibt sich 8928,5 bps und das ist doch sehr weit von 9600 bps entfernt.
Daniel B. schrieb: > Könnte es sein, das die 1 MHZ Clock des ATmega 32 das Problem ist. > > Weil laut Datenblatt ist > Baudrate = fOSC / (16*(UBRR + 1)) > und mit fOSC = 1 MHZ und UBRR = 6 ergibt sich 8928,5 bps und das ist > doch sehr weit von 9600 bps entfernt. Stimmt, das war das Problem, weil mit 4800 bps (UBRR = 12) funktioniert es. Da hat man laut Datenblatt nur einen Fehler von 0.2%.
Daniel B. schrieb: > Könnte es sein, das die 1 MHZ Clock des ATmega 32 das Problem ist. Ja. Wo kommen die 1 MHz her? RC-Oszillator?
Heinz schrieb: > Wo kommen die 1 MHz her? RC-Oszillator? Ja, verwende den internen RC-Oszillator. Die Schaltung soll ziemlich stromsparend sein.
Daniel B. schrieb: > Ja, verwende den internen RC-Oszillator. Die Schaltung soll ziemlich > stromsparend sein. Der sollte automatisch abgeschaltet werden, sobald man die UART benutzen will. Halt mal nen Fön auf den Controller...
Daniel B. schrieb: > Ja, verwende den internen RC-Oszillator. Die Schaltung soll ziemlich > stromsparend sein. Um eine lange Geschichte kurz zu machen: nimm einen Quarz!
STK500-Besitzer schrieb: > Der sollte automatisch abgeschaltet werden, sobald man die UART benutzen > will. > Halt mal nen Fön auf den Controller... Wenn er abgeschaltet wird, was wird dann als SYSCLK verwendet? Das habe ich dann wohl im Datenblatt überlesen... Meinst du mit dem Fön das der RC-Oszillator ziemlich temperaturempfindlich ist?
Daniel B. schrieb: > Wenn er abgeschaltet wird, was wird dann als SYSCLK verwendet? > Das habe ich dann wohl im Datenblatt überlesen... Nee, der wird leider nicht automatisch abgeschaltet, was dazu führt, dass hier häufig hausgemachte Probleme geschildert werden, weil jemand meint, dass das Ding dazu geeignet ist, eine stabile Frequenz zu liefern. Ist er aber nicht. Dann kommen die Leute, die den dann noch per Fuse-Bits trimmen. Den Aufwand kann man sich sparen, indem man einen Quarz benutzt... > > Meinst du mit dem Fön das der RC-Oszillator ziemlich > temperaturempfindlich ist? Jepp.
Ok, habe jetzt auf den 16 MHz Quartz umgestellt, der am AVR-NET-IO vorhanden ist. Der AT-Befehl kommt am PC korrekt an, aber wenn ich das Handy statt des PCs anschließe passiert leider wieder gar nichts :-(.
STK500-Besitzer schrieb: > musst du u.U. ein gekreuztes Kabel verwenden? (Null-Modem...) Wow, danke, dass war die Lösung. Im Gegensatz zum Anschluss an den PC muss ich beim Anschluss ans Handy Tx und Rx kreuzen. Wenn ich aber jetzt "at" sende, bekomme ich "at" + 2 unleserliche Charakter zurück. Wahrscheinlich sollen die beiden unleserlichen Zeichen "OK" heißen. Dass kann doch nicht schon wieder ein Problem mit der Baudrate sein?
Nochmals danke für die Hilfe, schlussendlich funktioniert jetzt der SMS-Sendevorgang :-). Das nächste Problem ist nun der Ladevorgang des Siemens C55. Am liebsten wäre es mir, wenn ich das Handy über das Datenkabel (DCA-500) laden könnte, aber bisher war das nicht von Erfolge gekrönt. Hat zufällig wer einen Rat, was die eleganteste Lösung wäre?
Hallo Daniel, Lies dir mal den Fred durch, da steht auch einiges über Siemens-Handys bzw. Problemen bei der Ladung. Denke das hilft dir wahrscheinlich weiter. http://www.blafusel.de/phpbb/viewtopic.php?f=12&t=73&sid=40c3bbdd596879aa9d99f0f5f044d8be Viele Grüße, Helmchen74
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.