Spickzettel für SIM800L
auf die Bestückungsseite gesehen
R M M S S
I D I I P P
N T C C K K
G R P N P N
+-----------------+
| o o o o o o |
| |
| |
| |
| |
| |
| |
| o o o o o o |
+-----------------+
N V R R T G
E C S X X N
T C T D D D
Stromversorgung
Eine stabile Stromversorgung ist wichtig, wird die Mindestspannung kurz
unterschritten startet es Modul neu.
- <3,4V "UNDER-VOLTAGE POWER DOWN"
- ≤3,5V "UNDER-VOLTAGE WARNING"
- ≥4,3V "OVER-VOLTAGE WARNING"
- >4,4V "OVER-VOLTAGE POWER DOWN"
4,1V werden empfohlen mit 2A während dem Senden, mit 100µF Low-ESR (Tantal) +
1µF abgeblockt.
Die IOs des SIM800 scheinen mit 2,8V zu arbeiten (VDD_EXT=2,8V), die
TTL-Pegel dürfen bis 3,0V haben. Dazu werden Pegelanpassungen vorgeschlagen:
- Spannungsteiler 3V3->2V8 1k/5k6 bzw. Reihenwiderstand 1k
- Dioden mit Pullup (2V8-seitig) bzw. Pulldown (3V3-seitig)
- bei 5V-Logik werden Level-Translator empfohlen
Die Pegel der UART sind
- VIL < 0,7V
- VIH = 2,1..3,1V
- VOL < 0,4V
- VOH > 2,4V (typ. 2,8V)
Wird ein ATtiny85 mit Vcc = 4,1V bei 10MHz betrieben, ergeben sich daran
diese Pegel:
- VIL < 0,3V*Vcc = 1,23V
- VIH > 0,6*Vcc = 2,46V
- VOL < 0,6V
- VOH > 4,3V
Notfalls könnte man den ATtiny85 zwar aus dem VDD_EXT des SIM800 versorgen
(2,8V 50mA), der aber knapp an der Grenze liegt (2,7V). Weiterhin hat das
Core-Board keinen herausgeführten VDD_EXT-Anschluss. Deshalb wird ein
Spannungsteiler am RX des SIM800 eingesetzt, der 4,1V auf 3,1V herabsetzt
(3k/1k), oder 4,1V->2,8V mit 1k/2k2
Für 3,3V-TTL wird ein Spannungsteiler 1k/5k6 empfohlen: 2,8V.
Für 3,0V-TTL wird ein Spannungsteiler 1k/14k empfohlen: 2,8V.
Weiterhin wird auch die Temperatur überwacht:
- >+85°C "+CMTE:2" und Power-Down
- >+80°C "+CMTE:1"
- <-30°C "+CMTE:-1"
- >-40°C "+CMTE:-2" und Power-Down
Start mit Auto-Baud
Nach dem Start wartet das Modul auf ein 'AT' (groß/klein egal), um die
Baudrate zu bestimmen (Auto-baud). Dieses wird bei Bereitschaft mit "OK"
quittiert.
Es soll angeblich beim Start ein Hex-String mit 115200bps gesendet werden
(für das PC tool).
Auto-bauding wird mit AT+IPR=0 aktiviert, wird durch AT&W dauerhaft
gespeichert.
Es wird empfohlen 3 bis 5 Sekunden vor dem Senden des Sync-ATs zu warten.
Start mit fixer Baud-Rate
Bei Bereitschaft wird ein "RDY" gesendet.
Bauraten zwischen 1200 und 460800bps werden mit AT+IPR=[baudrate] gesetzt,
z.B. AT+IPR=115200, wird durch AT&W dauerhaft gespeichert.
Flowcontrol
Es kann mit "AT+IFC=1,1" XON/OFF-Flowcontrol aktiviert werden. Nach dem XOFF
(0x13) sendet SIM800 keine Bytes mehr und speichert alles im Puffer, der bei XON
(0x11) gesendet wird. Läuft dieser Puffer über, verweigert der SIM800 nach dem
XON die Kommunikation. Gelöst werden kann der Zustand, indem AT+IFC=0,0 und XON
gesendet wird.
Ist XON/XOFF-Flowcontrol aktiv, so ist die Verbindung zum SIM800 Halb-Duplex:
z.B. werden Zeichen verschluckt oder falsch empfangen, wenn gleichzeitig
empfangen werden muss.
Power saving
Sleep Mode (Slow Clock)
In Bereitschaft beträgt die Energieaufnahme ca. 84mW (7mA@12V), pulsiert.
Bei aktivem Sleep Mode reduziert sich die Energieaufnahme auf ca. 13,2mW
(1,1mA@12V), pulsiert aber.
- AT+CSCLK=0 - kein Sleep Mode (disable slow clock)
- AT+CSCLK=1 - mit DTR=H wird der Sleep Mode erlaubt, mit DTR=L verboten
bzw. verlassen (nach 50ms bereit). Nur DTR oder On Air unterbricht.
- AT+CSCLK=2 - automatische Aktivierung des Sleep Mode und Aufwachen, wenn
kein Interrupt (On Air, GPIO, Serial)
Ohne Interrupts wird nach ca. 5,5 Sekunden der Sleep Mode aktiviert.
Wird der Sleep Mode durch die UART unterbrochen, so wird das erste/aufweckende
übertragene Zeichen verworfen.
Wird durch AT&W dauerhaft gespeichert.
*: In der "Serial Port Application Note" steht im Abschnitt "6.4 DTR", dass
ca. 50ms nach DTR=0 die Schnittstelle bereit ist. Gemessen habe ich knapp 70ms
zwischen DTR=0 und einem XON.
Ist gleichzeitig Flowcontrol aktiviert, wird durch Senden von XOFF der Sleep
mitgeteilt. Während des Sleep wird in ebenfalls XON/XOFFs gesendet, aufgrund des
in "SIM800 Series_Embedded AT_Sleep_Application_Note_V1.01" im Abschnitt "2.3
Current Consumption in Sleep Mode" beschriebenen periodischen Aufweckens, zum
Beispiel zum Blinken der LED, selbst wenn deren An-Zeit '0' ist. Während CFUN==0
und 4 ist dies (bei +CNETLIGHT=0) alle ca. 3,8s, bei CFUN==1 recht häufig.
Wird der Sleep durch ein Zeichen beendet, so wird zwar ca. 5,2ms später
XON-XOFF-XON im Abstand von 0,259ms gesendet, ist aber nicht bereit.
Functionality Level
- AT+CFUN=0 - Minimum: RF- und SIM-Card-Funktion abgeschaltet, d.h. nach
dem Reaktivieren muss die SIM-PIN eingegeben werden
- AT+CFUN=1 - Normal
- AT+CFUN=4 - Flight Mode: RF abgeschaltet
Direkte Übergange zwischen 0 und 4 sind nicht möglich.
Das Umschalten kann bis zu 10s dauern.
Bis auf CFUN=0 wird der Wert gespeichert und bei einem Neustart verwendet.
D.h. CFUN=0 ist schonend zum Flash.
Beim Umschalten von CSCLK=2 auf CSCLK=0 beginnt die LED wieder zu
blinken, wenn sie vorher abgeschaltet war. Ein erneutes Ausführen von AT+CNETLIGHT=0
bewirkt nichts, es muss zunächst AT+CNETLIGHT=1 und danach AT+CNETLIGHT=0
gesendet werden, oder AT+CNETLIGHT=1;+CNETLIGHT=0
Funktioniert nicht: Mit AT+CFUN=x,1 kann nach dem Setzen ein Reset ausgelöst werden.
Mit AT+CFUN=0 und AT+CSCLK=2 wird die Energieaufnahme auf ca. 3,6mW (0,3mA@12V)
reduziert, während die UART bereit bleibt.
Mit AT+CFUN=4 und AT+CSCLK=2 wird die Energieaufnahme auf ca. 3,8mW (0,32mA@12V)
reduziert, während die UART bereit bleibt.
AT+CFUN=0, AT+CNETLIGHT=0, AT+CSCLK=0 : 12,4mA @ 4,1V
AT+CFUN=4, AT+CNETLIGHT=0, AT+CSCLK=0 : 12,4mA @ 4,1V
AT+CFUN=4, AT+CNETLIGHT=0, AT+CSCLK=2 : 0,62mA @ 4,1V
AT+CFUN=0, AT+CNETLIGHT=0, AT+CSCLK=2 : 0,58mA @ 4,1V
Power Down
- AT+CPOWD=0 - sofort abschalten
- AT+CPOWD=1 - normal abschalten
Nach gut 30 Sekunden startet der SIM800 neu.
|
+CSCLK |
+CFUN |
I12V |
ready |
0 |
1 |
7,5mA |
flight mode |
0 |
4 |
7,0mA |
min. func |
0 |
0 |
7,0mA |
UART off |
1/2, DTR=1 |
1 |
1,5mA |
|
1, DTR=1 |
4 |
1,27mA |
|
1, DTR=1 |
0 |
1,24mA |
ID
- I SIM800 R14.18
- +GMI SIMCOM_Ltd
- +GMM SIMCOM_SIM800L
- +GMR Revision:1418B02SIM800L24
Es gibt mehrere Berichte, dass die Firmware des SIM800C auf dem SIM800L
laufen soll, da beide gleich wären. Aber auch einen, bei dem das Modem danach
nicht mehr ging.
GPRS
- Verbindungsabfrage ob mit GPRS verbunden: AT+CGATT?, ansonsten mit
AT+CGATT=1 einbuchen
- AT+SAPBR=3,1,"CONTYPE", "GPRS"
- AT+SAPBR=3,1,"APN","internet.eplus.de"
- AT+SAPBR=3,1,"USER","eplus"
- AT+SAPBR=3,1,"PWD","gprs"
- AT+SAPBR=1,1 - connect
- AT+SAPBR=3,1,"CONTYPE", "GPRS";+SAPBR=3,1,"APN","internet.eplus.de";+SAPBR=3,1,"USER","eplus";+SAPBR=3,1,"PWD","gprs"
- AT+CSTT=<apn>,<user name>,<password> - The write command and execution
command of this command is valid only at the state of IP INITIAL. After this
command is executed, the state will be changed to IP START
AT+CSTT="internet.eplus.de","eplus","gprs"
- AT+CIICR - Bring Up Wireless Connection with GPRS or CSD
- at+cdnscfg?
- AT+CIFSR Get Local IP Address
- AT+CIPSTATUS Query Current Connection Status
- AT+CDNSGIP="web.de"
- AT+CIPSHUT => STATE: IP INITIAL
AT+SAPBR (no save)
cmd_type |
cid
Bearer profile identifier
1,2,3 |
<ConParamTag>
Bearer parameter |
<ConParamValue>
Bearer paramer value |
|
0 - Close bearer |
<cid> |
|
|
|
1 - Open bearer |
<cid> |
|
|
|
2 - Query bearer |
<cid>,<Status>,<IP_Addr>
0 Bearer is connecting
1 Bearer is connected
2 Bearer is closing
3 Bearer is closed |
|
3 - Set bearer parameters |
<cid> |
"CONTYPE" Type of Internet connection |
"CSD" Circuit-switched data call
"GPRS" GPRS connection |
|
"RATE" CSD connection rate |
0 2400
1 4800
2 9600
3 14400 |
|
"APN" Access point name string: maximum 64 characters
"USER" User name string: maximum 32 characters
"PWD" Password string: maximum 32 characters
"PHONENUM" Phone number for CSD call |
|
|
4 - Get bearer parameters |
<cid> |
=> <ConParamTag> |
=> <ConParamValue> |
|
Debug / unsolicited codes
- AT+CGEREP=1 Control Unsolicited GPRS Event Reporting
- AT+CGREG=2 Network Registration Status
- AT+EXUNSOL="SQ",1 automatische Meldungen zur Signalstärke
- AT+SAPBR=4,1
Unterstütze Befehle AT+CLIST=?
SSL |
EMAIL |
|
EMAILSSL |
EMAILCID |
|
HTTPSSL |
EMAILTO |
|
FTPSSL |
SMTPSRV |
|
FTPSSLDCONN |
SMTPAUTH |
|
CIPSSL |
SMTPCS |
|
SSLCIPH |
SMTPFROM |
|
SSLOPT |
SMTPRCPT |
|
SSLSETCERT |
SMTPSUB |
|
|
SMTPBODY |
|
SMTPFILE |
|
SMTPSEND |
|
SMTPFT |
|
POP3SRV |
|
POP3IN |
|
POP3NUM |
|
POP3LIST |
|
POP3UIDL |
|
POP3CMD |
|
POP3READ |
|
POP3RSET |
|
POP3DEL |
|
POP3OUT |
E-Mail
- für SSL ist die aktuelle Uhrzeit nötig! (AT+CLTS=1)
- AT+EMAILSSL=1 - Set EMAIL to Use SSL Function (0=not encrypted, 1=encryption
port, 2=normal port)
- AT+SSLSETCERT=<file>[,<password>] - Import SSL Client Certificate
File
- AT+SSLOPT=<opt>,<enable> - SSL Option (0,0=need server cert., 0,1=no
server cert., 1,1=need client auth., 1,0=no client auth.)
- AT+SSLSETROOT=<filename>,<filesize> - Import SSL Root Certificate File
- AT+EMAILCID=1 - Set Email Bearer Profile Identifier
- AT+EMAILTO=30 - Set Timeout Value of SMTP/POP3 Server Response [s]
- AT+SMTPSRV="mail.arcor.de",587 - Set SMTP Server Address and Port
- AT+SMTPAUTH=1,"@xyz.de","geheim" - Set User Name
and Password for SMTP Authentication (1=auth)
- AT+SMTPFROM="@xyz.de","SIM800L" - Set Sender Address and Name
- AT+SMTPSRV="smtp.strato.de",465;+SMTPAUTH=1,"@xyz.de","geheim";+SMTPFROM="@xyz.de","SIM800L"
- AT+SMTPSRV="smtp.1und1.de",465;+SMTPAUTH=1,"@xyz.de","geheim";+SMTPFROM="@xyz.de","SIM800L"
- AT+SMTPRCPT=0,0,"@xyz.de" - Set the Email Recipient(TO/CC/BCC)
Address and Name (0=TO, 1=CC, 2=BCC; index)
- AT+SMTPSUB="Test von GPRS" - Set the Email Subject
- AT+SMTPBODY=11 Hallo Welt! - Set the Email Body (Byteanzahl, max. 4096)
- AT+SMTPRCPT=0,0,"@xyz.de";+SMTPSUB="Test von GPRS";+SMTPBODY=11
- AT+SMTPSRV?;+SMTPAUTH?;+SMTPFROM?;+SMTPRCPT?;+SMTPSUB?;+SMTPBODY?
- AT+SMTPSEND - Send the Email
- optional
- AT+SMTPCS="ASCII" - Set the Email Charset (wenn anders als ASCII,
z.B. "UTF-8", dann Hex-Codes in Betreff und Body)
- AT+SMTPFILE=1,"test.txt",0 (1=TXT-File, 0=7bit ASCII) - der
Dateiname hat nichts mit dem SIM800-Dateisystem zu tun, nach dem AT+SMTPSEND
wird nach Länge und Daten gefragt
- AT+SMTPFT=11 - es werden 11 Zeichen eingegeben, nachdem AT+SMTPSEND
ein +SMTPFT: 1,1360 zurückgegeben hat
- AT+SMTPFT=0 - Ende des Anhangs
strato
- mit SSL=0: +SMTPSEND: 64 : Timeout of SMTP server response
- mit SSL=1: +SMTPSEND: 71 : wenn Zeit nicht stimmt, oder SSLOPT=0,0 (ohne
installiertes Zertifikat?)
- mit SSL=2: +SMTPSEND: 72
- Error-Codes siehe SSL-App_Note
Zertifikat einrichten
Das Server-Zertifikat und damit das Wurzelzertifikat bekommt man über "openssl
s_client -connect imap.arcor.de:993"
Verfahren:
- AT+FSCREATE=C:\User\T-TeleSecClass2.CRT
- AT+FSWRITE=C:\User\T-TeleSecClass2.CRT,0,1390,30
- AT+FSWRITE=C:\User\T-TeleSecClass2.CER,0,967,30
- [Zertifikatszeichen senden]
- AT+FSFLSIZE=C:\User\T-TeleSecClass2.CRT
- AT+SSLSETROOT="C:\User\T-TeleSecClass2.CRT",1390
- AT+SSLSETROOT="C:\User\T-TeleSecClass2.CER",967
- AT+SSLSETCERT
Location
- AT+CIPGSMLOC=1,1 - View the longitude, latitude and time => +CIPGSMLOC:
0,0.000000,0.000000,2021/11/09,16:57:13
- AT+CIPGSMLOC=2,1 - View time
- AT+CLBSCFG=0,1
- AT+CLBSCFG=0,2
- AT+CLBSCFG=0,3
- AT+CLBSCFG=1,3,"lbs-simcom.com:3002"
- AT+CLBS=1,1
SMS
- AT+CMGF=1 - Text-Modus
- AT+CMGL="ALL"
- mehrteilige SMS: AT+CCONCINDEX
- AT+CMGS="+4912345678", dann SMS-Text abgeschlossen von 0x1A
USSD
- AT+CUSD=1 - Anzeige aktivieren
- AT+CUSD=1,"*140#" - Anfrage senden
+CUSD: 0, "Ihr Tarif:
o2 SIM Plus Flex.
Ihre nächste Rechnung kommt in 19 Tagen. Ihr aktueller Verbrauch liegt bei 0 Min
, 0 SMS einem Datenvolumen von 1 MB
", 15
PIN
Ist die Karte gesperrt "abgewiesen", dann folgt auf CFUN=1 ein +CPIN: NOT
INSERTED.
Anhand von Call Ready und SMS Ready kann nicht auf die erfolgreiche
Einbuchung ins Netz geschlossen werden (Notrufe wären möglich).
Die SIM-PIN-Abfage kann abgeschaltet werden: AT+CLCK="SC",0,"<PIN>"
Die verfügbare PIN-Versuche können abgefragt werden: AT+SPIC
RTC
- Uhrzeit-Info vpm Provider wird ausgegeben AT+CLTS=1 nach PIN-Eingabe
16:07:37 09.11.2021 und AT+CCLK zugewiesen:
- *PSUTTZ: 2021,11,9,15,7,37,"+4",0
- DST: 0
- +CIEV: 10,"26203","o2-de","o2-de", 0, 0
- +CTZV: +4,0
- *PSUTTZ: 2021,11,9,15,7,40,"+4",0
- DST: 0
- Uhrzeit AT+CCLK?
- VRTC = 1,2 .. 3,0V bei 3µA => T=C*ΔU/I=600.000*C, 1000µF=>10min
Filesystem
Dateinamen werden ohne Anführungszeichen übertragen
- AT+FSMEM => +FSMEM: C:180224bytes - Freier Speicherplatz auf 'C:'
- AT+FSDRIVE=0
- AT+FSLS=C:\ => User\ - Verzeichnis auflisten
- AT+FSMKDIR=User\test
- AT+FSRMDIR=User\test
- AT+FSCREATE=C:\User\test.txt
- AT+FSWRITE=C:\User\test.txt,0,6,10 - <filename>,<mode>,<filesize>,<inputtime>
- AT+FSFLSIZE=C:\User\test.txt
- AT+FSDEL=C:\User\test.txt
Sonstiges
- LED-Blink-Geschwindigkeit für "nicht registriert", "registriert" und
"PPP-Kommunikation" AT+SLEDS
- LED aktiv oder abgeschaltet: AT+CNETLIGHT=0 oder 1
- AT+CSGS Netlight Indication of GPRS Status
- AT+CNETSCAN=1 und AT+CNETSCAN ergibt Liste der Stationen mit Kennung =>
http://www.opencellid.org
- AT+CBC - Spannung und Ladezustand +CBC: 0,90,4125
- AT+CADC? => +CADC: 1,2501 - Analogeingang an Pin 50 abfragen
- die I/O-Pegel liegen bei 2,8V
- ein DigiStump-ATtiny85-Board hat an PB3 und PB4 einen
22Ohm-Reihenwiderstand mit 3,6V-Z-Diode, PB3 hat zusätzlich einen
1,8k-PullUp:
Erstellt 09.11.2021, zuletzt geändert
05.09.2023 00:15:26,
Besuche. © Christian Enders