GSM-Modul basierend auf dem Chip GOOUUU TECG IOT-GA6

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Hier wird das GSM-Modul GOOUUU TECG IOT-GA6 beschrieben.
    Allgemeines:
    Hier soll ein in verschiedenen Ausführungen erhältliches GSM-Modul beschrieben werden welches unter anderem zum empfangen und versenden von SMS aber auch für Gespräche und die Datenübertragung eingesetzt werden kann.

    Das zugrundeliegende Modul ist um schmales Geld bei den üblichen Versendern erhältlich (Suchbegriff: mini A6 Modul).
    Das besondere an diesen Modulen ist dessen Stromversorgung. Üblicherweise kann dar GSM-Chip mit max. 4.2V betrieben werden, das beschrieben Modul besitzt aber einen Spannungsregler wodurch man diese Module dann auch mit 5V betreiben kann. Es gibt aber auch Module ohne Spannungsregler aber mit einer Zenerdiode in Reihe der Stromversorgung. Auf diese Unterschiede sollte jedenfalls unbedingt bei der Anschaffung geachtet werden. Weiters haben es die Modulentwickler etwas zu gut gemeint. Zum einen wurde nicht der Lautsprecher sondern die Kopfhöreranschlüsse herausgeführt was Telefonie-Anwendungen zumindest erschwert (eigentlich würden die REC-Anschlüsse benötigt die sich am Chip neben den Ohrhöreranschlüssen befinden) und zum anderen wurde der PWR-Anschluß mittels PullUp-Widerstand fest belegt was ein softwaremäßiges abschalten des Moduls unmöglich macht da das Modul zwei Sekunden nach dem Abschalten wieder aktiviert wird.Für den reinen Betrieb als SMS-Gerät sind diese Designfehler aber nicht störend.
    Das Modul selbst wird über eine serielle Schnittstelle mit verschiedenen AT-Befehlen gesteuert und gibt auch entsprechende Statusinformationen über diese Schnittstelle zurück.

    Das Modul kann sich grundsätzlich automatisch auf jede Übertragungsgeschwindigkeit anpassen.
    Im Grundzustand werden nach dem aktivieren der Stromversorgung die seriellen Parameter 115200,8N1 erwartet.
    Das Modul kann aber auf andere Parameter ab Start konfiguriert werden z.B. auf 9600,8N1 (siehe der Befehl AT+IPR)

    AT-Befehle:
    Jeder Befehl wird mit CR bzw. CHR(13) abgeschlossen, auch CRLF bzw. CHR(13)+Chr(10) kann verwendet werden.
    Jeder Befehl liefert ein entsprechendes Ergebnis oder eine Fehlermeldung zurück.

    Befehle zur Modulkonfiguration :
    AT
    Rückgabe: OK wenn das Gerät bereit ist Befehle zu empfangen
    Dieser Befehl kann auch zum synchronisieren der Datenübertragungsgeschwindigkeit verwendet werden indem man diesen Befehl solange wiederholt bis das Modul "OK" zurückgibt.

    AT+IPR
    Setzt die standardmäßige Datenübertragungsgeschwindigkeit auf eine andere als die eingestellte.
    Mögliche Parameter sind: 0,2400,4800,9600,14400,19200,28800,33600,38400,57600,115200,230400,460800, 921600,1843200
    Beispiel: AT+IPR=9600
    Rückgabe: OK

    AT+CPOF
    Schaltet das Modul aus (versetzt dieses in den Power-Down-Mode)
    Die Modulbauer meinten es aber besonders gut und haben auf der Platine einen Widerstand gegen +UB gelegt durch welchen das Modul wieder automatisch aufgeweckt wird.
    Dies führt übrigens auch den Moduleingang PWR ad absurdum weil das Modul ohnehin automatisch gestartet wird.
    Als einzig sinnvoll würde so ein Neustart des Moduls ohne mechanischen Schalter möglich sein.
    Rückgabe: +CPOF: MS OFF OK
    OK

    AT&F
    Setzt im Modul alle Parameter zurück auf dessen Fabrikseinstellungswerten.
    Rückgabe: OK

    ATV<typ>
    Durch diesen Befehl kann das Resultat eines Ergebnisses bestimmt werden.
    Es bestimmt, ob Ergebniscodes in numerischer Form oder in alphabetischer (oder "ausführlicher") Form übertragen werden.
    Der Textteil der Informationsantworten ist von dieser Einstellung nicht betroffen.
    <typ>=0 = Rückgabe von Ergebnissen als Code
    <typ>=1 = Rückgabe von Ergebnissen als Text
    # = Text
    0 = "OK"
    1 = "CONNECT"
    2 = "RING/CRING"
    3 = "NO CARRIER"
    4 = "ERROR"
    5 = "NO DIALTONE"
    6 = "BUSY"
    7 = "NO ANSWER"
    8 = "NOT SUPPORT"
    9 = "INVALID COMMAND LINE"

    AT&W
    Dieser Befehl speichert die aktuell eingestellten Parameter in einem benutzerdefinierten Profil im nichtflüchtigen Speicher.
    Das benutzerdefinierte Profil wird nach dem Einschalten automatisch wiederhergestellt.
    Mit dem Befehl ATZ kann das Benutzerprofil wiederhergestellt werden, und mit AT&F auf die Werkseinstellungen zurückgesetzt werden.
    Bis zum ersten Einsatz von AT&W arbeitet ATZ als AT&F.
    Folgende Parameter werden so im Benutzerprofil gespeichert:
    ATQ result code present control
    ATV Format of response and result code
    ATE UART echo control
    ATS0 Auto answer
    ATS3 Specify Carriage return character
    ATS4 Specify Linefeed character
    ATS5 Command line editing character
    AT+CMEE Format of errcode
    AT+CMER Indicator reporting way
    AT+VTD Duration of the DTMF tone
    AT+COPS Operator format Network register mode
    AT+CPOL Preferred operator format
    AT+CPBS Phonebook storage
    AT^STA Alphabet
    AT+CCWA Parameter <n>
    AT+CUSD Parameter <n>
    AT+CLIP Parameter <n>
    AT+CLIR Parameter <n>
    AT+COLP Parameter <n>
    AT+CSSN Parameter <n> Parameter<m>
    AT^MONI Parameter <n>
    AT^NONPP Parameter <n>
    AT^CBCM Indicator controller
    AT+VGR Receiver gain
    AT+VGT Transmit gain
    AT+CMUT Mute control in a voice call
    AT+CGAUTO Parameter <n>
    AT+IPR Parameter <rate>
    Rückgabe: OK


    AT+CFUN?
    Fragt die Telefonfunktionalität ab
    Rückgabe: +CFUN: (list of supported <fun>s), (list of supported <rst>s)
    OK

    <fun>:
    0 minimum functionality
    1 full functionality
    2 disable phone transmit RF circuits only
    3 disable phone receive RF circuits only
    4 disable phone both transmit and receive RF circuits
    5...127 reserved for manufacturers as intermediate states between full and minimum functionality

    <rst>:
    0 do not reset the MT before setting it to <fun> power level
    1 reset the MT before setting it to <fun> power level

    AT+CPAS
    Dieser Befehl gibt den Aktivitätsstatus <pas> des MT zurück. Es kann verwendet werden, um das MT abzufragen, bevor eine Aktion vom Telefon angefordert wird.
    Rückgabe: +CPAS:0
    OK

    <pas>:
    0 ready (MT allows commands from TA/TE)
    1 unavailable (MT does not allow commands from TA/TE)
    2 unknown (MT is not guaranteed to respond to instructions)
    3 ringing (MT is ready for commands from TA/TE, but the ringer is active)
    4 call in progress (MT is ready for commands from TA/TE, but a call is in progress)
    5 asleep (MT is unable to process commands from TA/TE because it is in a low functionality state) also all other values below 128 are reserved by the present document.

    AT+CREG?
    Gibt den Registrierungsstatus des Moduls im GSM-Netz zurück.
    Rückgabe: +CREG:<reg>,<stat>
    Bei +CREG: 1,1 ist das Modul sende- und empfangsbereit

    <reg>:
    0 disable network registration unsolicited result code
    1 enable network registration unsolicited result code +CREG: <stat>
    2 enable network registration and location information unsolicited result code +CREG: <stat>[,<lac>,<ci>]

    <stat>:
    0 not registered, MT is not currently searching a new operator to register to
    1 registered, home network
    2 not registered, but MT is currently searching a new operator to register to
    3 registration denied
    4 unknown
    5 registered, roaming

    AT+CCLK
    Setzt oder fragt die RTC des Moduls ab.
    RTC abfragen:

    AT-CCLK?
    Rückgabe: CCLK: "19/01/20,12:03:12+1" (Format ist YY/MM/DD,HH:MM:SS+Offset)
    OK

    RTC setzen:
    AT+CCLK="19/01/20,12:02:30+1" (Format ist YY/MM/DD,HH:MM:SS+Offset)
    Rückgabe: OK

    Befehle für die Telefonie:
    ATD<number>;
    Ruft eine Telefonnummer an
    <number> ist eine bis zu 20 Zeichen lange Zeichenkette welche aus den Zeichen 1,2,3,4,5,6,7,8,9,0,*,#,+,A,B,C, usw. besteht.
    Der Befehl wird mit einem Semikolon (und CR) abgeschlossen.
    Es sind verschiedene Rückmeldungen abhängig vom Zustand der Verbindung möglich.
    Rückgabemöglichkeiten:
    OK
    NO ANSWER
    NO CARRIER
    NO DAILTONE
    BUSY
    CONNECT

    ATH
    Trennt eine zuvor aufgebaute Verbindung wieder
    Rückgabe: OK

    ATA
    Nimmt einen Anruf an.
    Dieser Anruf wird mit der Systemmeldung signalisiert:
    RING
    +CLIP: "02085563192",129,,,,0
    Rückgabemöglichkeiten:
    CONNECT
    ERROR
    NO CARRIER
    OK


    Befehle für SMS:

    Das Modul kann maximal 20 Nachrichten verarbeiten (Index 1 bis 20).
    Wenn dieser Speicher voll ist, meldet das Modul beim einlangen von weiteren SMS :
    +CIEV: "SMSFULL",<err>
    <err>:
    0: memory locations are available
    1: memory full
    2: One SMS has been received in the SC but the SMS storage where this SMS is to be stored is full
    Allfällige Nachrichten gehen nicht verloren sondern werden nach freiwerden von Speicher am nächsten verfügbaren Speicherplatz abgelegt.

    SMS senden:
    Zum senden von SMS sind mehrere aufeinanderfolgende Schritte durchzuführen die im folgenden erklärt werden.
    AT+CMGF=1
    Rückgabe: OK
    AT+CMGS=<number>
    Rückgabe: > (diese Rückgabe ist auf jeden Fall abzuwarten!)
    <SMS-TEXT><ctrl-Z>
    Hinweis: Der Text darf aus max. 160 Zeichen bestehen und ist mit CHR(26) abzuschließen, weiters ist zu beachten, dass SMS-Text aus 7-Bit-Code besteht und Sonderzeichen besonders behandelt werden müssen!
    Rückgabe: +CMGS: 1
    OK

    SMS empfangen:
    Das Modul meldet mit einer Systemmeldung den Empfang einer SMS: +CMTI: "SM",4
    Das Beispiel bedeutet, dass eine SMS im Speicher "SM" mit der Indexnummer "4" abgelegt wurde.
    Diese Nachricht kann mit dem Befehl AT+CMGR=4 gelesen werden. Das Modul gibt dabei folgende Struktur zurück:
    +CMGR: "REC UNREAD","+xxxxxxxxxx",,"2019/01/11,11:12:13+01"
    Dies ist eine Testnachricht
    OK

    SMS lesen:
    AT+CMGR=<ind>
    <ind> ist der Index unter welchem die SMS im lokalen Speicher abgelegt ist.
    Das Modul gibt dabei folgende Struktur zurück:
    +CMGR: "REC UNREAD","+xxxxxxxxxx",,"2019/01/11,11:12:13+01"
    Dies ist eine Testnachricht
    OK

    SMS löschen:
    AT+CMGD=<ind>
    Löscht die mit <ind> bezeichnete SMS aus dem Speicher und gibt diesen Speicherplatz frei.

    SMS auflisten:
    AT+CMGL=<typ>
    Listet alle SMS des abgefragten Typs auf.
    <typ>:
    "REC UNREAD" received unread message (i.e. new message)
    "REC READ" received read message
    "STO UNSENT" stored unsent message (only applicable to SMs)
    "STO SENT" stored sent message (only applicable to SMs)
    "ALL" all messages (only applicable to +CMGL command)

    Ein Datensatz sieht wie im folgenden Beispiel dargestellt wird, aus:
    +CMGL: 4,"REC READ","absendernummer",,"2019/01/14,15:36:16+01"<CRLF>
    Dies ist eine Testnachricht
    +CMGL: <index>, <typ>, <absender>,,<datum,zeit+offset><CRLF>
    Nachrichtentext

    HINWEIS: Aufgrund der Größe eines derartigen Datensatzes sollte darauf geachtet werden dass so bis zu 20 derartige Datensätze gesendet werden.
    Diese Menge muss der Empfänger auch verarbeiten können und wird das nur bei ausreichend großen Buffer tun! Normale Microcontroller werden dies nicht tun können!


    Allfällige Fehlermeldungen haben folgende Bedeutung:
    +CMS ERROR:<err>
    <err>:
    #Bedeutungkommt vor bei
    301SMS service of ME reserved+CSMS (with +CMS: ERROR 301)
    302Operation not allowedAll SMS commands (+CMSS, +CMGL, +CPMS, +CSMP...
    303Operation not supportedAll SMS commands
    304Invalid PDU mode parameter+CMGS, +CMGW
    305Invalid text mode parameter+CMGS, +CMGW, +CMSS
    310SIM not insertedAll SMS commands
    311SIM PIN requiredAll SMS commands
    312PH-SIM PIN requiredAll SMS commands
    313SIM failureAll SMS commands
    316SIM PUK requiredAll SMS commands
    317SIM PIN2 requiredAll SMS commands
    318SIM PUK2 requiredAll SMS commands
    321Invalid memory index+CMGR, +CMSS, +CMGD
    322SIM or ME memory full+CMGW
    330SC address unknown+CSCA?, +CMSS, +CMGS
    340no +CNMA acknowledgement expected+CNMA

    402 times viewed