mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Modem-Verbindung zwischen PC und ATmega16


Autor: Daniel Kensy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Freunde,
ich hab folgendes Problem und weis jetzt einfach nicht weiter! Nun hoffe 
ich, dass mir jemand von euch weiterhelfen kann!

Und zwar hab ich mir ne kleine Schaltung mit dem ATmega16 gebastelt, der 
über die serielle Schnittstelle mit nem 56k Modem verbunden ist. Das hab 
ich dann an die Telefondose angeschloßen. Den Controller hab ich so 
programmiert, dass er sobald das Klingel-Signal (ASCII-Wort: "RING") 
über die serielle Schnittstelle übertragen wird, den Befehl "ATA" + <cr> 
an das Modem schickt. Das hat nämlich zur Folge, dass ein eingehender 
Anruf abgehoben wird.
Das funktioniert auch alles prima wenn ich über das Hyperterminal meines 
PCs die Telefonnummer anrufe, an der der Controller angeschloßen ist. 
Die Modems syncronisieren sich und dannach steht die Verbindung.

So weit so gut!

Jetzt hab ich mich aber entschloßen für meinen PC ein Einwahlprogramm 
mit Visual Basic 6.0 zu schreiben, dass sich auch mit dem Controller 
verbinden kann. Dafür schicke ich über die serielle Schnittstelle 
folgenden Befehl: "ATD xxxxx" + <cr>. Der Controller erkennt auch das 
jemand anruft und die beiden Modems versuchen sich zu syncronisieren 
(machen lustige Geräusche :-) ).
Bevor sie aber in den Daten-Modus wechseln, trennt das Modem meines 
Controllers sie Verbindung und mein Terminal-Programm empfängt "No 
Carrier"!
Ich denke das liegt bestimmt daran, dass ich im Gegensatz zu dem 
Hyper-Terminal dem Modem bestimmte Initialisierungs-Befehle nicht 
gesendet habe. Kann mir bei dem Problem nicht jemand helfen??

Einstellungen:

uC --> Modem :
Baud,weitere Einst.: 19200 ,N ,8 , 1

PC --> Modem :
Baud,weitere Einst.: 19200 ,N ,8 , 1


Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du vielleicht die Möglichkeit den Datenstrom von PC->Modem 
abzuhören; da würde man sehen was Hyperterm macht.

Autor: Daniel Kensy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Michael,
vielen Dank für deine Antwort!
Genau das hab ich gerade gemacht! Und zwar indem ich die Modem-Protokol 
Datei analysiert hab!
Da war dann folgender Initialisierungs-Befehl drin:
AT &F E1 V1 &A3 &D2 &C1 S0=0

Diesen hab ich in mein kleines Terminal-Programm eingebunden und seit 
her kommt ne Verbindung zu stande! Hurra!

Dumm ist jetzt nur noch, dass mein Controller die Dateien die ich im 
schicke richtig versteht aber wenn ich mir was von ihm schicken lasse, 
sind das nur willkürliche Zeichen. Ich gehe mal schwer davon aus, dass 
irgend eine Baudrate nicht richtig eingestellt ist.
Aber warum versteht dann mein Controller, dass was ich schicke??

Was leider auch nicht funktioniert ist, dass ich mit "+++" wieder in den 
Befehlsmodus zurück komme!

Gruß

Daniel

Autor: Daniel Kensy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kleine Ergänzung:
habe auch noch folgenden Initialisierungs-Befehl eingefügt:

ATS7=60S19=0L1M1\N3%C0&H1N1X4

Was der macht weis ich nicht, aber jetzt funktionierts :-))

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.