Guten Abend, ich habe mir o.g. Modul gekauft. Nach einigen rumlesen, habe ich festgestellt dass die Version "A" wohl für den Asiatischen Markt ist. Nun das sollte kein Problem sein, im Netz findet man div. Anleitungen die Firmware zu flashen. ...und nun fängt der Stress meiner letzten Nächte an. Ich kann das Modul über einen Arduino UNO via Softserial und AT Befehlen ansprechen z.B. Firmwarestand auslesen. Um das Modul nun zu flashen muss ich es kurz direkt an den PC via TTL/USB Converter anschließen. Das ganze funktioniert aber nicht und ich weiss nicht mehr weiter. Das Modul reagiert einfach nicht auf AT Befehle wenn diese direkt vom PC kommen. Ich habe folgende ausprobiert: - Div. Serial-Tools probiert. - TTL Wandler über UNO (GND/Reset) und ein anderes Modul probiert. - div. TTL Pegel probiert 5v/3v - Das SIM900 mit einer anderen Stromquelle betrieben wegen der Stromaufnahme. - Kabel alle getauscht. Ich bin echt am verweifeln. Warum reagiert das Ding auf mein Arduino Code/Programm und nicht auf die AT-Befehle, die ich vom PC schicke. Danke, Timo
Timo schrieb: > Ich bin echt am verweifeln. Warum reagiert das Ding auf mein Arduino > Code/Programm und nicht auf die AT-Befehle, die ich vom PC schicke. Falsche Baudrate? Verkehrte Zeilenenden? Handshaking/flow control?
Weil es den Arduino-Legostein-Bastlern hier ständig passiert: Masse vom USB/TTL-Wandler auch mit SIM+ARDUINO verbunden? Mit verschiedenen, auch geringen Baudrates probiert? Oder wie es bei den Legostein-Bauern ja unerklärlicherweise üblich ist, als ERSTES gleich mit ABSURD-HOHEN Baudrates gearbeitet. Für das AUTO-BAUDRATE soll(ten) als erstes die im Datenblatt definierten Kontrollzeichen gesendet werden, das macht bisher sicher deine "LIB" und Du merkst das garnicht. Wenn Du aber manuell per PC arbeitest ist dies DEINE Aufgabe. Dir ist AUCH klar, dass das SIM900 zum Firmware-Flashen einen ZUSÄTZLICHEN TX/RX-Port hat? Ansonsten wie schon geschrieben Handshake/Baudrate/Zeilenende prüfen: "CR/LF" ist etwas anderes als nur "CR"
Ich kenne nur das SIM800L, was ich auf meiner AlarmSau verwendet habe, aber vielleicht ist das beim SIM900 (sollte der Vorläufer sein) ähnlich. Probier mal 9600 8N1 und nur "AT" senden, bis das Modul mit "OK" antwortet. Auch dem Modul nach dem Start/Reset so 10 Sekunden Zeit lassen, damit die Firmware läuft bevor Du mit dem Ding kommunizieren willst. Die 9600bps sind vollkommen ausreichend, hohe Datenraten machen nur Sinn, wenn Du mit dem Ding ins Internet willst und von dort wirklich größere Dateien holst. Außerdem ist das SIM800L nicht 5V-tolerant. In manchen Datenblättern und vor allem Tutorials im Internet finden sich Angaben, wonach das Modul direkt an die 5V des Arduino/ATMega drangeklatscht wird und meistens funktioniert das auch, es besteht aber ein Restrisiko, das Modul damit zu schrotten. Auf meiner AlarmSau (ATMega 1284P) habe ich deswegen die im Datenblatt empfohlenen Pegelwandler nachgebaut.
Moin, erst einmal vielen liebe Dank für die ersten Antworten. Zu den Fragen - Masse liegt vom Stromanschluss auf dem SIM900 und von dem Uno Board. - Der Softwareserial ist auf 9600 geschaltet und so habe ich den TTL Adapter bzw. Treiber auch konfiguriert. Ansonsten auf Standard gelassen. - Auf diesen AT-Befehl reagiert das BOARD aber nur über meinen Programmcode im Arduino: mySerial.println("AT+GMR"); Wie ist das mit dem 800er Chip, ist das wirklich der Nachfolger? Ich hatte extra den 900er gekauft. Der 800L hat auch GPS auf dem Board, oder? Ich bin echt schon am verzweifeln... Das SIM900 hat ja drei Serialanschlüsse, TTL 3, 5 und ich vermute einen 12V Pegel? Kann ich das Board nicht über alle flashen? Aber wie gesagt bislang komme ich nicht einmal dahin, dass es auf einen AT Befehl reagiert. Grüße, Timo
Timo schrieb: > - Der Softwareserial ist auf 9600 geschaltet und so habe > ich den TTL Adapter bzw. Treiber auch konfiguriert. Ansonsten > auf Standard gelassen. Und IST der Standard auch "8N1"? > mySerial.println("AT+GMR"); Sendest Du denn "zu Fuss per PC" dann auch das Carriage-Return? > ich vermute einen 12V Pegel? NEIN! Ganz normale 3,3V-Pegel! Ich habe etliche SIM900 verbaut, die Entwicklung lief unter HyperTerminal am PC, also genau wie Du es vorhast. Klappte einwandfrei, vom ersten Moment an.
Hi, ich habe es gerade noch einmal probiert. Ich habe vier verschiedene Terminal Programme probiert. Vom Arduino, Putty etc. Die Entwicklungsumgebung natürlich geschlossen! Angeschlossen ist das ganze wie über meinen Programmcode über den VT5 Anschluss. Wobei ich schon alle drei Anschlüsse probiert habe. 9600/8/P:keine/1/f:keine Ich habe schon mit \r\n den AT Befehl abgeschlossen in sämtlichen Kombinationen. Im Arduino Serial Monitor kann ich ja sogar entsprechende Einstellung vornehmen -> ohne Erfolg. Wahrscheinlich ist es nur eine Kleinigkeit aber ich finde Sie einfach nicht :-(( Grüße, Timo
Nicht alle SIM800 haben ein GPS onboard, die billigen kleinen Boards haben keines. Warum willst Du das Board eigentlich flashen? Geht das bei dem Ding überhaupt mit dem USART? Irgendwo beim SIM800L Datenblatt habe ich was gelesen, wonach das nur nach irgendwelchen speziellen Prozeduren geht und nicht einfach so über den USART. Kann beim SIM900 aber anders sein, weiß ich nicht. Das SIM800L unterstützt Autobauding, das stellt sich durch den "AT"-String auf die Baudrate des Senders sein. AT+GMR ist ja schon ein richtiges Kommando, das funktioniert beim SIM800L nicht (oder nicht zuverlässig) solange das Autobauding nicht abgeschlossen ist. Edit: Wenn Du mySerial.println("AT"); delay_ms(1000); oder wie immer die delay-Funktion genau heißt als Schleife ausführst, antwortet das SIM900 dann irgendwann mit "OK"?
:
Bearbeitet durch User
Ich habe nicht das 800er sondern das 900er siehe: https://www.amazon.de/gp/product/B07912732P/ref=oh_aui_detailpage_o02_s01?ie=UTF8&psc=1 Mich hat nur interessiert welches der neuere Chip ist? Grüße, Timo
Timo schrieb: > Ich habe schon mit \r\n den AT Befehl abgeschlossen Hast Du das als vier einzelne Zeichen so von Hand in Dein Terminalprogramm (welches?) eingegeben? Dann kann das so nicht funktionieren. "\r" ist, genauso wie "\n", die in C-artigen Programmiersprachen übliche Darstellung von Steuerzeichen, d.h. als Text nicht sichtbaren Zeichen. Das eine heißt "CR" (carriage return, von "Wagenrücklauf") und das andere "LF" (line feed, von "Zeilenvorschub"). Der Zeichencode ist 0x0d (für "\r") und 0x0a (für "\n"). In einem richtigen Terminalprogramm wie z.B. Teraterm kann man das mit der Tastenkombination Ctrl-M (für "\r") und Ctrl-J (für "\n") eingeben, man kann aber auch einfach die Returntaste verwenden, und im Terminalprogramm einstellen, welche Steuerzeichenkombination es dann zu senden hat.
Probier doch mal das was BEN B. schrieb. Schleife: NUR "AT"+CR und reichlich warten. Schliess doch den PC über usb/ttl-Wandler mal an den Arduino an, dann weisst Du wenigstens, ob PC-seitig alles klappt! Man muss den Fehler Schritt-für-Schritt eingrenzen! Was mir mal passierte wg. Brett-vor-dem-Kopp: RX / TX vertauscht... RX muss an TX und TX an RX!
Moin, ich glaube es vermitscht sich hier im Laufe der Antworten etwas. - Ich bentuze eine 900A - Über den Arduino kann ich das Modul normal ansprechen. - Über einen TTL Wandler und Terminal reagiert es nicht. Das Modul muss ein Firmware Flash bekommen weil sonst meine DE SIM nicht funktioniert (hier gibt es auch einen Artikel) Die RX/TX Tausche ich standmäßig jetzt einmal ;-) Vielen Lieben Danke für die Tipps. Timo
Was ich gerade in meinen Notizen zur damaligen Entwicklung fand und erinnerte: Unsere SIM900 waren bei der 3,3 Grenze recht zickig. Wir betreiben die immer an 5V mit einer dicken Diode in Reihe, durch den Spannungsabfall liegt Vcc dann im guten Bereich. "Dicke" Diode wegen der hohen Peek-Ströme. NACH der Diode und direkt (Abstand) am Modul ein 1000mFD LO-ESR Elko, der ESSENTIELL WICHTIG IST. LO-ESR ist ebenso ESSENTIELL. SIM-RX liegt über Widerstand am 5V-Host mit 3,9V Zenerdiode SIM-seitig an GND. SIM-TX geht direkt zum Host. Klappt seit Jahren auch mit 57KBaud einwandfrei bei >25 Modulen.
Aktuell verbinde ich das Modul wieder über den UNO als TTL konfiguriert: Anschluss wie folgt: PC -> USB Kabel -> Arduino UNO UNO Board Reset -> GND GND UNO -> GND SIM900 TX/RX PIN0/1 -> 5VT/5VR Gibt das UNO Board am Serial PIN0/1 nicht die 5V aus? Grüße
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.