Arduino Serial Monitor SIM800L AT+ ERROR

Gast #6673099
Hallo zusammen,
ich hatte gestern ein äußerst kurioses Problem, auf das ich mir keinen 
Reim machen kann.
Und zwar habe ich hier ein SIM800L Modul (die Spannungsversorgung ist 
unproblematisch) und einen Arduino Nano.
Um das Sim Modul für mein Projekt zu konfigurieren, habe ich den Nano 
zunächst mal als Serial Passthrough mit SoftwareSerial programmiert.
(siehe: 
https://www.arduino.cc/en/Tutorial/LibraryExamples/SoftwareSerialExample)
Für die Eingabe habe ich den Serial Monitor von der Arduino IDE 
verwendet.
Hier mal Beispielhaft die Ausgabe:
1
->AT
2
OK
3
->AT+IPR?
4
+IPR=115200
5
->ATI
6
SIM800 14.16
7

8
OK
9
->AT+IPR=9600;&W
Nach dem ich die Baudrate dann für das Sim Modul und den Arduino auf 
9600 gesetzt habe sah die Ausgabe wie folgt aus:
1
->AT
2
OK
3
->ATE1
4
OK
5
->AT+IPR?
6
AT+
7
ERROR
8
->ATI
9
ATI
10
SIM800 14.16
11

12
OK
13
->AT&F
14
AT&
15
ERROR

Sämtliche Befehle mit + oder & konnten nicht korrekt übertragen werden. 
Von AT+TEST123 wurde AT+123 zurückgegeben und natürlich ERROR.
Als ich dann mal spaßeshalber die Schnittstelle von Arduino auf Putty 
gewechselt habe, funktionierte alles problemlos...
1
->AT
2
OK
3
->AT+IPR?
4
+IPR=9600

Hat von euch einer eine Ahnung, woran das liegt?
Gast
donvido schrieb:
> Hat von euch einer eine Ahnung, woran das liegt?

Da wird wohl die Softserial-Implementierung nicht mehr
schnell genug hinterherkommen.

Softserial nutzt keine UART-Hardware, daher muss die
Arduino-Software viel mühselig selbst machen was sonst
die UART Hardware erledigt.
Gast
Beo Bachta schrieb:
> Da wird wohl die Softserial-Implementierung nicht mehr
> schnell genug hinterherkommen.

Bei 9600 Baud?
Bei 115200 Baud gabs jedenfalls keine Probleme mit SoftSerial...

donvido schrieb:
> Schnittstelle von Arduino auf Putty
> gewechselt

Das war am Ende alles, was ich geändert habe, damit es funktioniert. Die 
Softserial-Implementierung hat sich da keineswegs geändert.
Gast
Stefan ⛄ F. schrieb:
> Was meinst du mit "Arduino"?

Ja so ist das. Immer Wischi-Waschi Aussagen. Während man
sich bei "Arduino" noch die serielle Schnittstelle zusammen-
reimen könnte, geht das bei Putty nicht mehr. Putty hat
nämlich keine serielle Schnittstelle sondern nur eine API
zum Betriebssystem (das ist nicht an dich gerichtet, Stefan).
Gast
Vielleicht sendet der Monitor von Arduino die Zeichen schneller 
hintereinander, als Putty (oder umgekehrt).

Beim Hammer Terminal kann man das Delay einstellen.
Gast
Ich habe mal das SIM800 Modul gegen einen FTDI getauscht.
Mit
mySerial.begin(9600);
werden vom Arduino Serial Monitor immer nur maximal 4 Zeichen übetragen 
entweder bei 2 Zeichen mit '\r\n'und bei mehr als 2 Zeichen nur noch mit 
'\n' (z.B. 'AT+\n').

Mit
mySerial.begin(15200);
werden ganz entspannt Zeichenfolgen von der Größe des Buffers 
übertragen.
v1.6.13 -> gleiches Problem
v1.0.5-r2 -> gleiches Problem
mit HTerm senden -> gleiches Problem

Sobald ich mehr als 4 Zeichen auf einmal sende, kommen nur noch die 
ersten 3 und das letzte Zeichen an.

Der serielle Monitor von Putty sendet aber schon beim schreiben.
Gast
A. Z. schrieb:
> mit HTerm senden -> gleiches Problem

Ohne oder mit welchem Delay? Probiere aus, ob das Delay eine Rolle 
spielt, dann bist du danach etwas schlauer.

Soweit mir bekannt ist, senden Hammer Terminal und Arduino zeilenweise, 
wenn du die Enter Taste drückst.

Putty sendet hingegen jede Taste einzeln.
Ich glaub, ich hab die Ursache gefunden:
size_t SoftwareSerial::write(uint8_t b)
deaktiviert für jedes zu sendende Byte die Interrupts, um sicher das 
Timing einzuhalten.

Wenn nun C_in >> C_out, (C=Datenrate) dann verschluckt der UART eben ein 
paar Bytes.

Wenn ich aber
1
Serial.begin(19200);
setze, dann kommt alles an.
Gast
Beo Bachta schrieb:
> Putty hat
> nämlich keine serielle Schnittstelle sondern nur eine API
> zum Betriebssystem (das ist nicht an dich gerichtet, Stefan).

Putty hat genau so wenig eine serielle Schnittstelle wie die Arduino 
IDE, Du Dampfredner.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 5 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.