Forum: Mikrocontroller und Digitale Elektronik seltsames Verhalten von Mobiltelefon an µC


von Oliver (Gast)


Lesenswert?

Hallo,

vor einiger Zeit wurde hier mal diskutiert, wie man Mobiltelefone 
mittels AT-Commands über einen µC steuern kann.
Ich habe diese Diskussion verfolgt und selber einige Versuche 
unternommen. Allerdings stehe ich nun vor einem ziemlich seltsamen 
Problem.

Ausgangssituation:

Ich verwende ein Siemens SL55. Angesteuert wird es über ein STK500 und 
ein Original Siemens RS232 Datenkabel. Beim µC handelt es sich um einen 
ATtiny 2313. Über ein 2*16 LCD Display werden empfangene Zeichen 
dargestellt.

Das Problem:

Ganz banal: Jedes vom µC gesendete AT-Command wird mit ERROR quittiert.
ALLERDINGS reagiert das Telefon auf die gesendeten Befehle. Der Befehl 
"AT^SMSO" beispielsweise sollte das Telefon ausschalten. Das Telefon 
antwortet mit ERROR, schaltet sich dann aber sofort aus.
Auch auf den Standardbefehl "AT" wird mit ERROR geantwortet.
Natürlich werden alle gesendeten Befehle ordnungsgemäß mit cr-lf 
abgeschlossen:

  uart_puts("AT^SMSO");
  uart_putc(0x0A);
  uart_putc(0x0D);

Über ein Terminalprogramm funktioniert die Kommunikation problemlos. Das 
Telefon antwortet stets mit "OK".


Vielleicht kennt jemand den Grund dieses eigenartigen Verhaltens.
Ich freue mich über jeden Lösungsansatz,

lg
Oliver

von (prx) A. K. (prx)


Lesenswert?

Oliver schrieb:

> Natürlich werden alle gesendeten Befehle ordnungsgemäß mit cr-lf
> abgeschlossen:
>
>   uart_puts("AT^SMSO");
>   uart_putc(0x0A);
>   uart_putc(0x0D);

CR-LF geht andersrum.

von Kali (Gast)


Lesenswert?

Leute, hört auf zu programmieren. Die ASCII-Tabelle ist weg. :-)

von Alex W. (Gast)


Lesenswert?

Sende doch einfach mal nur 0x0D ohne das 0x0A!

Also:
  uart_puts("AT^SMSO");
//  uart_putc(0x0A);
  uart_putc(0x0D);

von Jobst M. (jobstens-de)


Lesenswert?

Alex W. schrieb:
> Sende doch einfach mal nur 0x0D ohne das 0x0A!

Jopp. Bin gerade mit meinem S45 am gange ...

Alles Andere mag das nicht. Nur 0x0D


Gruß

Jobst

von Oliver (Gast)


Lesenswert?

Einen herzlichen Dank an alle!

Das Umdrehen von

uart_putc(0x0A);
uart_putc(0x0D);

war des Rätsels Lösung.

Als Dank spendiere ich eine Runde eiskaltes, jedoch leider nur 
virtuelles Bier.

Danke und lg

Oliver

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.