mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fehler bei serieller Übertragung


Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich versuche gerade ein Handy seriell mit AT-Befehlen zu füttern. Es
soll einfach nur ne Nummer wählen (ATD08150815;). Meistens tut das Ding
überhaupt nichts und (höchst selten) wählt es dann ne falsche Nummer
wie (0888150815). Baudrate von 19200 stimmt und laut Datenblatt müßte
es auch nur eine Abweichung um 0,2% geben, was unproblematisch sein
soll. Außerdem schaltet sich das Handy immer wieder selber ab. Wo kann
hier der Fehler liegen ? Ich bin ratlos :-(

Autor: Frankl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon mal hier gesucht ?

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab schon Stunden damit verbracht ! Aber ich wüßte nicht wo da ein
Hinweis auf die Lösung meines Problems stünde !

Autor: Semme (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welches Handy steuerst den du wie an (Hardware)?

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Siemens C35i. Ich verbinde RX --|1k|-- TX und TX --|1k|-- RX und
dann noch zwei Z-Dioden mit 2,7V. Und natürlich GND. Die Schaltung hab
ich hier im Forum gefunden.

Autor: Christian (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hier ist die schaltung...

Autor: Dirk Wiebel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Christian,

vielleicht voellig falsch, aber: bist Du sicher, dass die AT-Befehle
korrekt sind und dass sie auch richtig interpretiert werden? Vorher
initialisiert? Freizeichenprobleme (probier mal ATX3DT)?

Gruss,
Dirk

Autor: Stefan Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Geht der Schaltplan von Christian auch mit dem SL45i? Funzen da auch
die AT befehle?

Danke

Autor: Semme (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also an der oben angegebnen Schaltung kann es nicht liegen, denn die
funktioniert bei mir einwandfei.
Ich hoffe, du sendest nach jedem Befehl hexadezimal A und D, sonst kann
es nicht hinhauen.

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich schicke das hier raus: (ATD08150815081;) --> Line Feed --> Carriage
Return

ldi serbyte, 'A'
rcall serout
ldi serbyte, 'T'
rcall serout
ldi serbyte, 'D'
rcall serout
ldi serbyte, '0'
rcall serout
ldi serbyte, '8'
rcall serout
ldi serbyte, '1'
rcall serout
ldi serbyte, '5'
rcall serout
ldi serbyte, '0'
rcall serout
ldi serbyte, '8'
rcall serout
ldi serbyte, '1'
rcall serout
ldi serbyte, '5'
rcall serout
ldi serbyte, '0'
rcall serout
ldi serbyte, '8'
rcall serout
ldi serbyte, '1'
rcall serout
ldi serbyte, 59
rcall serout
ldi serbyte, 10
rjmp serout
ldi serbyte, 13
rjmp serout

Wie kann ich denn überprüfen ob das Handy überhaupt antwortet. Z.B.
wenn ich AT rausschicke, müsste ja AT wieder ankommen. Aber wie soll
ich das auswerten mit nem AVR? Ich hab ja kein LCD und keine Verbindung
zum PC.

Autor: Semme (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei mir funktioniert es auf diese Art und Weise einwandfrei!

Allerdings lasse ich folgendes weg:
"ldi serbyte, 59"
"rcall serout"

Was bringt "59" eigentlich?

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
59(dec) ist dieses Zeichen --> ;
Hast recht, brauche ich eigentlich nicht. Bedeutet nur das eine
Sprachverbindung aufgebaut werden soll.

Autor: Andreas Jäger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zitat

Wie kann ich denn überprüfen ob das Handy überhaupt antwortet. Z.B.
wenn ich AT rausschicke, müsste ja AT wieder ankommen. Aber wie soll
ich das auswerten mit nem AVR? Ich hab ja kein LCD und keine
Verbindung
zum PC.

/Zitat

Wenn Du "AT" sendest müsste eigentlich "OK" zurückkommen!?!

Den korrekten Empfang kannst Du doch über eine LED signalisieren.

MfG
Andreas Jäger

Autor: Semme (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Christian,

funktioniert deine Handy - Ansteuerung jetzt eigentlich?
Wenn ja, wo lag den der Fehler?

Gruß,
Semme

Autor: Meiserl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn es noch nicht funktioniert könntest du zwischen jeden Zeichen eine
kleine Wartezeit verstreichen lassen.
Das habe ich z.b. schon mal mit einer Kopplung µC <---> SPS gehabt.

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dumme Frage: Warum werden die letzten beiden Zeichen mit "rjmp serout"
gesendet?

ldi serbyte, 59
rcall serout
ldi serbyte, 10
rjmp serout
ldi serbyte, 13
rjmp serout

Müßte das nicht auch "rcall" sein? Wohin wird sonst zurückgesprungen?
Oder ist es nur ein Dreckfuhler?

Beste Grüße

Sven

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.