Hallo ihr! Hat jemand Ahnung vom MC35i Terminal von Siemens. Die Kommuniktation zwischen Hyperterminal und Modem klappt. Jedoch wenn ich das Modem über mein µC ansprechen will, klappt es nicht, auf jeden Fall bekomme ich keine Antwort vom Modem. Ich bin mir nicht ganz Sicher was alles rüber geschickt werden muss. erst der AT-Befehl at , dann 0x0D (Enter) , muss das String-Ende-Zeichen dazwischen mit rüber oder gelöscht werden? Hat jemand vielleicht eine deutsche Siemens Anleitung für das MC35i mit AT-Befehlen? Danke....
Thomas wrote: > Hallo ihr! > Hat jemand Ahnung vom MC35i Terminal von Siemens. > Die Kommuniktation zwischen Hyperterminal und Modem klappt. > Jedoch wenn ich das Modem über mein µC ansprechen will, klappt es nicht, > auf jeden Fall bekomme ich keine Antwort vom Modem. Hast du einen Pegelwandler am Start? Auch kann man hier Softwaremässig viel falsch machen... > Ich bin mir nicht ganz Sicher was alles rüber geschickt werden muss. > > erst der AT-Befehl at , dann 0x0D (Enter) , muss das String-Ende-Zeichen > dazwischen mit rüber oder gelöscht werden? Probiers mal mit "0x0a" oder beides nacheinander 0x0d, 0x0a. Ich nehme an, mit "String-Ende-Zeichen" meinst du die 0-Terminierung. Nein, dieses Zeichen muss nicht gesendet werden. Allerdings verstehe ich nicht, was du jetzt mit "löschen" meinst. > Hat jemand vielleicht eine deutsche Siemens Anleitung für das MC35i mit > AT-Befehlen? Google: "MC35i AT" Da gibts ne Referenz. Allerdings auf Englisch.
Ich weis nicht mehr weiter. Kommunikation zwischen Hyperterminal und Modem klappt Kummunikation zwischen µC und Hyperterminal klappt ebenfalls nur bei der Kommunikation zwischen Modem und µC bekomme ich keine Antwort vom Modem. Habe alle möglichen Kombinationen durchgespielt mit 0x0D, mit 0x0D und 0x0A, ohne beiden aber einfach keine Reaktion... Englische Doku hab ich.
Schliess doch erstmal den uc an den PC an, starte Hyperterminal und schau, ob der uc überhaupt sendet.
Das funktioniert ja, kann ja auch antworten über Hyperterminal. gesendet werden muss also, "at0x0D" und at ohne 0 Terminierung
Ja, sorry, hab eine Zeile von dir überlesen :(... Hast du auch nur "0x0a" probiert? Also eines von beiden (0x0a,0x0d) braucht das Modem auf jeden Fall! Jedenfalls glaube ich, daß man ohne Quelltexte dir so nicht weiter zu helfen ist..
Ermmm moment... Wenn wir von GCC sprechen, müsste dein String "ATZ\x0A" oder "ATZ\x0D" heissen.
was heißt GCC? was bedeute Z\ ? So sind mein String aus: unsigned char string[8]= "AT"; und über die Interrupt Routine sende ich ihn weg: ISR(USART_UDRE_vect) { unsigned char buffer; //Varibale für einzelne Stringzeichen buffer = *(glob_USART_string++); //Stringzeichen in buffer, danach Adresse erhöhen if (buffer !='\0') //solange kein String-Ende weiter auslesen { UDR=buffer; //Zeichen (8Bit) ins UDR Register zum versenden } else { buffer=0x0D; UDR=buffer; glob_USART_gesendet=0; //fals String-Ende, senden wieder zulassen UCSRB= UCSRB &~(1<<UDRIE); //Interrupt sperren für UDR Register ist fertig } }
Thomas wrote: > was heißt GCC? Ich nehme an, du arbeitest mit WINAVR, oder? WinAVR ist eine sog. Toolchain; eine Sammlung bzw eine "Verkettung" berschiedener Programme. GCC heist der Kompiler, der im dieser Toolchain WinAVR enthalten ist. > was bedeute Z\ ? "ATZ" ist das Hayes-Kommando, um dein Modem in einen definierten Zustand zurück zu holen. Es wird häufig, aber nicht immer, mit einem "OK" vom Modem quittiert. "\x0d" ist eine Schreibweise, um das Steuerzeichen 0x0d gleich in den String mit einzupacken. Wenn ich also schreibe unsigned char string[]="ATZ\x0d"; dann enthält "string" insgesamt 5 Zeichen: A,T,Z,das Steuerzeichen 0x0d, und die 0-Terminierung. > ISR(USART_UDRE_vect) > { [...] > } Dein Quelltext scheint hier ok zu sein. Du wartest im Hauptprogrammteil vermutlich darauf, daß "glob_USART_gesendet" auf 0 gesetzt wird. Hierbei gibts einen Fehler, den man sehr häufig macht. Wie ist "glob_USART_gesendet" denn bitte definiert?
Danke schonmal, bist ne super Hilfe! An meinen Code kann es eigentlich nciht liegen, ich stecke ab und zu mal wieder den Hyperterminal an im zu sehen was der µC macht, und der schickt fein den String und wenn ich dann Antworte (über Hyperterminal) sehe ich das auch im Programm "glob_USART_gesendet" ist nur ne vari damit der während ich auf die ISR warte kein misst macht, und den String zweimal versendet. Hattest du schonmal das MC35i in Verwendung?
Bitte beantworte mal meine Frage: wie ist "glob_USART_gesendet" definiert? Das Problem ist nämlich, wenn diese variable nicht "volatile" definiert ist, wartet ein "while (glob_USART_gesendet!=0) ;" im Hauptprogramm endlos..... Jedenfalls habe ich speziell mit einem MC35i noch nicht gearbeitet, kann mir aber nicht vorstellen, daß es sich wesentlich anders verhält, wie irgend ein anderes Modem.
Hi, ist die Flusskontrolle/Hardwarehandshake an oder aus? (RTS CTS) Gruß Axelr.
Flusskontrolle wäre auch mein nächster Gedanke. Kein CTS/RTS, kein XON/XOFF. Ausserdem versuchsweise mal die Pins RXD/TXD vertauschen.
Ich nutze die angehängte "Schaltung" (3 Stecker, 2 Dioden 1N4148) zum Mittracen von RS232 Verbindungen. Funktioniert prima, am PC kannst Du mit Hyperterminal o.ä. die gesendeten Daten anschauen. Vielleicht hilft Dir das weiter.
Frank K. wrote:
> Funktioniert prima,
staun
Das sind Tipps wofür ich dieses Forum liebe :)
Danke, ich denke, sowas kann man immer gut gebrauchen.
Damit kannst Du aber nicht die Kommunikation zwischen zwei Geräten mithören - hier redet ein µC mit einem Modem.
Klappt immernoch nicht. Muss mir mal die Schaltung zum Mittracen aufbauen, brauch aber erst Bauteile. Habe nochmal eine Frage zum Nullmodemkabel reingestellt. Vielleicht kannst du mir die beantworten. Danke...
Hallo Thomas, ich habe soetwas einmal mit einem C35 gemacht. Das müßte vom Code das selbe sein. Ist aber asm. Wenn Du willst kann ich es Dir als Vorlage geben. Ansonsten achte auf 19200 Baut, das Siemens nimmt das sehr genau. Als Pegelwandler habe ich nur je 1x 100ohm in die RX/TX und am RX vom C35 eine 3,3V Z-Diode nach Masse verwendet. Gruß Willi
Also, lag erstmal daran das RX und TX auf dem Eintwicklungsboard getauscht sind. Bekomme jetzt antwort vom Modem. Sehr komisch ist nur, dass wenn ich das Echo nicht ausschalte nur at zurückbekomme und wenn echo aus ist, nur die numerische Antworten 0 (ok) 4 (error). Ohne atv0 (numerische Antwort) sehe ich noch nicht mal das okay. Er kann mir komischer Weise kein Text anzeigen, wie es der Hyperterminal macht. Bekomme bei at+cgmi als Anwort: <cr> <lf> <cr> , bloß meine Anwort als Text fehlt dazwischen. Bei anderen Befehlen das selbe. Jemand ne Idee?
Das geht prima mit portmon, besser, als Kabel löten:) im Anhang ein Screenshot Das RX-TX vertauscht sind, passiert wohl allen.
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.