Hi, vielleicht weis jemand was: Habe hier ein orginal Siemens TC35i-Terminalmodul. Dieses soll als Ersatz dienen, da mein 'SainSmart'TC35i beim Versuch einen Akku anzuschliessen abgeraucht ist ;-) Dieses China Teil hatte aber Problemlos am Arduino-Softwareserial-Port seine Dienste getan. RXD & TXD angeschlossen und gut war... Jetzt mit dem orginal Siemensteil bekomm ich nurnoch Datenmüll auf dem Serial-Monitor angezeigt. Weis jemand warum...?
"... Datenmüll ..." Das könnte eine falsche Baudrate oder ein Pegelproblem sein. Kannst du den Datenmüll aufzeichnen und posten?
z.B. statt 'RING' kommt 'k' bzw. in Hex '06B 01' An ein Pegelproblem habe ich auch schon gedacht, wüsste aber nicht wie ich das lösen könnte... ):
Das TC35 solltest du z. B mit HyperTerm testen. Einfach alle Baudraten ab 9600 o. s. durchgehen, bis du eine sinnvolle Antwort bekommst.
habe ich getan. Direkt an einer RS232 funktioniert der Kasten. Nur am Arduino nicht...
Was hast du an Messequipment zur Verfügung? Wie sieht dein Aufbau aus (Photo)? Ist das TC35 auf eine feste Baudrate gestellt oder "Auto Bauding"? Sind eventuell unterschiedliche Baudraten das Problem?
Hast du einen RS232 Adapter an dem Arduino oder hängt das Modul direkt am Arduino?
Messgeräte wären momentan da: - Digitalmulti. Aufbau ist eigentlich simple: 2 Leitungen von TC35-SubD9pol. Pin 2+3 (Laut Datenblatt wären das RXD & TXD) an die Arduinopins 2+3. Jetzt könnte man Argumentieren, das der Dataground fehlt, aber erstens geht es mit diesem auch nicht und zweitens habe ich das TC35 an einem USB2Serial-Adapter geprüft - da ging es auch nur mit den beiden Datenleitungen... Auf dem Arduino läuft die SoftwareSeriallibrary konfiguriert auf 2+3 - so hat es ja mit dem Chinading auch problemlos funktioniert. Und da eigentlich der selbe Modembaustein verwendet wird, sollte es eigentlich keine Probleme geben. Eigentlich....
Die Baudrate, richtig... Tja, das weis ich nicht genau. Beim Test am USB2RS232 Adapter war eine feste Baudrate eingestellt und lief. Auf der anderen Seite habe ich in irgendeiner SpTC35-Spezifikation was von 'Auto Bauding' 2400 - 14400 gelesen...
Thomas Lembke schrieb: > Hast du einen RS232 Adapter an dem Arduino oder hängt das Modul direkt > am Arduino? direkt
mike schrieb: > habe ich getan. Direkt an einer RS232 funktioniert der Kasten. Nur am > Arduino nicht... Kein Wunder, der Arduino hat keine RS232 sondern eine 5V Schnittstelle. Unterscheiden tun sich die beiden durch die Pegeldefinitionen und die invertierte Logik.
mike schrieb: > An ein Pegelproblem habe ich auch schon gedacht, wüsste aber nicht wie > ich das lösen könnte... ): Mit einem Pegelwandler, z.B. Max232 oder Nachfolger (für 5V Arduino) mike schrieb: > Aufbau ist eigentlich simple: 2 Leitungen von TC35-SubD9pol. Pin 2+3 > (Laut Datenblatt wären das RXD & TXD) an die Arduinopins 2+3. Das wird wahrscheinlich nicht reichen. Zumindest das TC35 brauchte lt. Handbuch auch noch ein Freigabesignal.
Wolfgang schrieb: > Das wird wahrscheinlich nicht reichen. Zumindest das TC35 brauchte lt. > Handbuch auch noch ein Freigabesignal. dieses Handbuch habe ich nicht gefunden?! Kannst du das evtl. hochladen oder wenigstens sagen welche Leitung das sein soll...
mike schrieb: > dieses Handbuch habe ich nicht gefunden?! Vom TC35 kenne ich dieses: http://www.flygt.de/1114471.pdf
Wolfgang schrieb: > Vom TC35 kenne ich dieses: > http://www.flygt.de/1114471.pdf das hab ich auch, aber da steht nichts von einem Freigabesignal...? Inzwischen habe ich meinen Aufbau etwas abgeändert. GSM-Modul beiseite. Statt dessen habe ich die Datanleitungen auf den USB2RS232-Adpter gepinnt und lasse ein 2.Terminalprogramm laufen. Naja, das Ergebnis ist eigentlich das selbe: An den Arduino sende ich via Terminal z.b. die Zeichenkette 'OK' am USB-Adapter kommt dann 'XZy=' an. Beide haben 9600Baud... Keine Ahnung was das hier soll. das ging mal Problemlos. Arduino kann eigentlich auch nicht defekt sein. Habe einen 2. - da isses genau so. Unter Linux isses genau so. Das Programm dazu geht gar nicht simpler:
1 | #include <Arduino.h> |
2 | #include <SoftwareSerial/SoftwareSerial.cpp> |
3 | char incoming_char=0; |
4 | SoftwareSerial cell(2,3); //Create a 'fake' serial port. Pin 2 is Rx pin, pin 3 is Tx pin. |
5 | |
6 | void setup(){ |
7 | Serial.begin(9600); |
8 | cell.begin(9600); |
9 | Serial.println("Starting serial Communication..."); |
10 | }
|
11 | |
12 | void loop(){ |
13 | if(cell.available() >0){ |
14 | incoming_char=cell.read(); |
15 | Serial.print(incoming_char); |
16 | }
|
17 | if(Serial.available() >0){ |
18 | incoming_char=Serial.read(); |
19 | cell.print(incoming_char); |
20 | }
|
21 | }
|
mike schrieb: > das hab ich auch, aber da steht nichts von einem Freigabesignal...? Dann guck mal auf S. 26/27 (Einschalten des Terminals) über Ignition Signal bzw. DTR. Und auf S. 24 stehen die erforderlichen Signalpegel.
Da gehts um das Einschalten des Modems. Das geht ja auch - LED blinkt erst schnell dann langsam - Modem ist also im Netz eingebucht.
so, ich denke jetzt weis ich woran es liegt: Es wird, wie weiter oben schon einmal vermutet, am Pegel liegen. Das Problem: Der Arduino gibt auf den emulierten serial Pins 0/5V f. LOW/HIGH aus. Und dieser Siemenskasten will nun irgendwie einen anderen Standart (ANSI/EIA/TIA-232-F-1997??) haben. Nun kann man das evtl. mit solch einem MAX232 wandeln.. Wäre das korrekt und wenn ja, ich hab da diverse Beipiele gefunden bin mir aber nicht sicher. Da gibt es ganz einfache Schaltungen: 5 Elkos dran - fertig.. Oder ist das die falsche Richtung, sprich RS232 zu 5V TTl...? Ich bräuchte ja 5V TTL zu RS232. Oh man...... Dank Euch
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.