OK1HDU (Hamradio, electronics, travelling, photography, ok7u...)
599.cz - Homepage 599.cz - Homepage Memorial OK1WC SOTA - Vrcholy v éteru Optimalizováno pro web... Než něco pošlete dál, přečtěte si ... hoax.cz
     Dnes: 09. 04. 2020    fotogalerie na 599.cz spaceweather.com Bouřky v Česku v novém okně Bouřky v Evropě v novém okně Ionogram Průhonice v novém okně Contest calendar WA7BNM v novém okně RSS summary of the last 7 articles    
O   Hlavní menu
Hlavní stránka

Zajímavé odkazy

Download

Zasílání novinek

O   Seznam rubrik
mínus technika, bastleni
mínus provoz, závody
mínus Od krystalky k SSB
mínus ostatní


time.is in new window


f e e d b a c k

O   Počasí v Holicích
JO70XC


O   VOACAP KV Online

O   VOACAP pro CB
Šíření na CB

PHPRS fórum


<a1>technika, bastleni</a1>

Zpět První pokusy s GSM modulem SIM800L

Vydáno dne 23. 02. 2020 (423 přečtení)

SIM800L Asi před rokem jsem si ze zvědavosti koupil modul SIM800L. Jedná se v podstatě o kompletní GSM/DCS telefon. Stačí zastrčit SIM kartu, připojit napájení, reproduktor, elektretový mikrofon, anténu a sériový terminál a můžeme telefonovat, posílat SMS, nebo GPRS data. Ve většině čínských e-shopů se prodává modul na plošném spoji, kde je kromě vlastního GSM/DCS čipu ještě pár dalších součástek.
Až teď jsem se dostal k tomu, abych modul vyzkoušel.


Aby nedošlo k nedorozumění, budu v textu používat pro vlastní součástku SIM800L výraz "čip" a pro DPS s připájenou součástkou, konektory, držákem SIM, atd výraz "modul".

Vlastní čip SIM800L je součástka rozměru asi 16x18mm s 82 ploškami na spodní straně pro pájení technologií BGA. Plošky nejsou nějak extra malé, ale pro domácí bastlení to úplně vhodné není. Asi proto vzniklo několik různých modulů, kdy je tato součástka již připájena na malém plošném spoji. Bývají tam blokovací kondenzátory na napájecím přívodu, nějaká indikační LED, konektor na anténu (obvykle IPX UFL, výjimečně SMA) a některé důležité signály jsou vyvedeny na hřebínkový konektor (pin heads). Tím se manipulace se součástkou značně zjednoduší. Bohužel se ale nelze nijak připojit k ploškám čipu, které nejsou vyvedeny a tím máme nepřístupné některé (možná zajímavé) funkce.
Například jsem zjistil, že čip SIM800L obsahuje FM rádio, snadno ovladatelné AT příkazy. Bohužel ale modul nemá na DPS vyvedenu plošku od antény tohoto rádia, takže z reproduktoru jde jenom šum. Docela škoda.
Čip také umožňuje připojení maticové klávesnice 25, nebo dokonce až 50 kláves. Také by se to mohlo docela hodit, ale plošky čipu jsou na modulu nepřístupné.

Hlavní výhodou a důvodem obliby čipu (modulu) SIM800L je, že ho můžeme kompletně ovládat AT příkazy přes sériovou linku UART.

pdf soubor s popisem hardware
pdf soubor s AT příkazy
pdf soubor s AT příkazy pro FM radio

     
SIM800L_chip
SIM800L_module
SIM800L_module
SIM800L čip SIM800L modul
vrchní strana
SIM800L modul
spodní strana
     

Já jsem koupil modul, který je v současnosti asi nejběžnější. Viz fotografie.

    Ten má vyvedeno:
  • Napájení
  • GND (minus napájení)
  • Anténa na IPX UFL konektor a také na pin
  • Slot na SIM kartu velikosti micro
  • Vstup RESET (aktivní Low)
  • UART TX
  • UART RX
  • Reproduktor +
  • Reproduktor -
  • Mikrofon +
  • Mikrofon -
  • Vstup DTR
  • Výstup RING

     
SIM800L_test_schema
SIM800L_module_pinout
USB to UART CP210x
Zapojení při testování Popis vývodů modulu USB-UART převodník
CP210x
     

  • Napájecí napětí může být v rozsahu 3,4V-4,4V. I když průměrná spotřeba proudu při vysílání (co nám ukáže multimetr) je maximálně pár stovek mA, mohou být proudové špičky při jednotlivých burstech až ke 2A. Vnitřní odpor zdroje by měl být co nejnižší, blokovaný kondenzátory s nízkým ESR. Impedance přívodu od baterie maximálně 150mΩ, aby při burstech nebyl pokles napětí větší než 350mV. Pokud se po zapnutí napájení nedaří přihlásit do GSM sítě a LED stále bliká cca 1x za sekundu, je nejspíš problém s měkkým napájecím napětím.

  • Před prvními pokusy je dobré na SIM kartě zrušit zadávání PIN (v nějakém telefonu). PIN se sice dá zadat pomocí AT příkazu sériovým terminálem (zrovna tak PUK a další ochrany), ale pro začátek je dobré mít jistotu, že nám přihlášení neblokuje karta.

  • S mým modulem jsem dostal také dvě GSM antény. Jedna je ocelová vinutá pružina 5x20mm (asi pozlacená), která se může připájet přímo do dírky na DPS modulu. Druhá je vyleptaná na malém DPS asi 35x5mm s připájeným kouskem tenkého koaxiálního kablíku s UFL konektorem.

  • Na výstup SPK+ a SPK- (SPKP a SPKN)může být připojen reproduktor 8Ω. Předpokládám, že jde o symetrický výstup SPK2N/P z čipu. AT příkazem (viz níže) můžeme nastavit hlasitost. Existuje na čipu ještě symetrický výstup SPK1N/P který může budit sluchátka 32Ω, ale ten není na DPS modulu vyveden.

  • Na vstupy Mic+ a Mic- (MICP a MICN) připojíme elektretový mikrofon. Pochopitelně se správnou polaritou. Napájecí napětí, pracovní odpor a oddělovací kondenzátor jsou již na čipu. AT příkazem (viz níže) můžeme nastavit zesílení mikrofonního zesilovače.

  • Výstup RING signalizuje příchozí hovor nízkou úrovní napětí. (Kromě toho slyšíme z reproduktoru nastavenou vyzváněcí melodii.)
  • V klidu má RING hodnotu High (asi 2,8V).
  • Při příchodu hlasového, nebo datového volání se překlopí do Low (0V).
  • Zpátky na High se překlopí, jakmile je hovor spojen, nebo je zavěšeno.
  • Při příchodu SMS se překlopí do Low na 120ms.
  • Pokud je hovor iniciován z modulu SIM800L zůstává RING stále na High (2,8V)
  • Vstup DTR se může hodit pro "probuzení" čipu ze sleep stavu (viz AT příkazy níže). Normálně je na něm úroveň High (log 1). Uzemněním (log 0) na dobu minimálně 50ms čip probudíme.

  • Vstup RESET je rovněž aktivní ve stavu Low (log 0). Uzemněním RESET na dobu minimálně 105ms zapneme čip po vypnutí AT příkazem AT+CPOWD=1.

  • Pro první pokusy jsem na komunikaci použil USB-UART převodník Silicon Labs CP210x. Převodník má TTL výstup. Čip (modul) SIM800L je navržen pro 3V UART. Přímé propojení nefungovalo. Vyzkoušel jsem jednoduché přizpůsobení s odporovým děličem jedním směrem. Asi to není úplně ideální ale funguje to.
    Jako terminálový program jsem použil nejdříve můj oblíbený Termite, ale při posílání SMS mi nastal problém s posláním netisknutelného znaku ASCII 26. Tak jsem použil PuTTY, potom jsem vyzkoušel i Hercules a nakonec se mi nejlepší zdál starý, dobrý Hyperteminál (zkopírovaný z Win-XP).
      Nastavení sériové komunikace:
    • 8 data-bitů,
    • 1 stop-bit,
    • bez parity

  • Po zapnutí napájení k modulu počkat alespoň 3 sekundy, potom pomocí příkazu AT <Enter> nastavit automaticky komunikační rychlost. Modul se přizpůsobí rychlosti našeho terminálu. V manuálu píší, že v rozsahu 1200 bps - 57600 bps. Mě se to ale bez problémů spojilo i při rychlosti 115200 bps, vyšší jsem nezkoušel.
    Pokud příkaz proběhne úspěšně, přijde na terminál odpověď OK.

    Asi po deseti sekundách po zapnutí se modul pokusí přihlásit do sítě operátora podle SIM karty. LED přestane na chvíli blikat a po registraci do sítě blikne krátce vždy asi po 3 sekundách.




    AT příkazy jsem zatím vyzkoušel jen ty nejzajímavější. Info pro toho, do si zatím nekliknul na odkaz na ten .pdf soubor: Ten dokument má 380 stran, a není to žádný zábavný román. Tak než se tím prohrabu, bude mi to ještě chvíli trvat.

  • AT příkazy nejsou "Case-sensitive". Můžeme je tedy psát malými i velkými písmeny, nebo to i kombinovat.
  • Po úspěšném provedení příkazu přijde odřádkování (CR+LF) a text OK.
  • Pokud přidou i nějaké hodnoty, řádek většinou začíná +.
  • Otazník hned za AT příkazem obvykle vrátí aktuální nastavenou hodnotu.
    Například:
    AT+CLVL? vrátí odpověď: +CLVL: 45 (hlasitost reproduktoru je na hodnotě 45)
  • Otazník za rovnítkem ukáže možný rozsah zadávaných hodnot.
    Například:
    AT+CLVL=? vrátí odpověď: +CLVL: (0-100) (možný rozsah hodnot je 0-100)
  • Normálně za rovnítko zadáváme požadovanou hodnotu.
    Například:
    AT+CLVL=64 vrátí: OK (hodnota byla akceptována)
    AT+CLVL=110 vrátí: ERROR (hodnota byla mimo rozsah)

    
    

    Vybrané AT příkazy:

    AT Test komunikace. Čip (modul) automaticky přizpůsobí svou rychlost (bps) rychlosti našeho terminálu. AT+IPR Nastavení pevné rychlosti UART (bps). Možnosti 1200...460800. 0 = Auto. ATI Identifikace produktu (čipu) a číslo verze. AT&V Vypíše nastavené parametry (je jich hodně) AT+GSN Vypíše IMEI (výrobní číslo) PIN a registrace v síti: AT+CPIN? Zjistí potřebu zadání PIN. (odpovědi: READY, SIM_PIN, SIM_PUK, atd...) AT+CPIN=XXXX Zadání PIN. Ale asi je lepší mít zadáváni PIN vypnuté - nastavit v jiném telefonu. AT+CREG? Test registrace v síti operátora: +CREG: 0,1 domácí síť +CREG: 0,5 roaming Kvalita signálu a parametry sítě: AT+CSQ Test kvality signálu: +CSQ: xx,y xx = rssi, y = ber rssi 0: -115dBm nebo horší rssi 1: -111dBm rssi 2-30: -110...-54dBm (krok po 2 dBm) rssi 31: -52dBm nebo lepší rssi 99: neznámá nebo neměřitelná hodnota ber: 0...7 RXQAL podle GSM specifikace (%) ber: 99: neznámá nebo neměřitelná hodnota AT+CENG=3 Zapnutí technického software (umožňuje zjistit mnoho parametrů sítě). Nutno prostudovat pdf manuál s AT příkazy. Vše je tam podrobně popsáno. Zobrazení operátora: AT+COPS=? Vypíše sítě které slyší, na prvním místě toho na koho je přihlášen. +COPS:(2,"EUROTEL PRAHA","ET-CZ","23002"), (1,"OSKAR","OSKAR","23003"), (1,"T-Mobile CZ","TMO CZ","23001"),, (0-4),(0-2) AT+COPS? Zobrazí operátora na kterého je přihlášen +COPS: 0,0 "EUROTEL PRAHA" Nastavení času a časové zóny: AT+CLTS=1 Local Time Stamp. (Formát časové značky) AT+CLTS? Dotaz na formát časové značky. AT+CLTS=? Dotaz na možné hodnoty formátu časové značky. AT+CCLK="20/02/20,16:45:00+04" Nastavení Data, Času a Časové zóny Formát data, času,... RR/MM/DD,hh:mm:ss+zz zz = časová zóna ve čtvrthodinách, u nás +04 nebo +08(LČ) Načtení času: AT+CCLK? Musí být nejprve nastaveno, viz předchozí AT příkaz Zjištění naší pozice: AT+CIPGSMLOC=1,1 U mě nefunguje (kód 601 - Network Error) SMS textové zprávy: AT+CMGF=1 Přepnutí do textového formátu. AT+CSCS="GSM" Nastavení "Znakové sady" (GSM, UCS2, IRA, HEX, PCCP, PCDN, 8859-1) UCS2 odmítá poslat SMS, ostatní neumí české znaky korektně. Nejjednodušší nechat defaultně "GSM" a posílat jen ASCII znaky. Režim SMS: AT+CNMI=0,0 Přijaté SMS zůstávají v paměti, na UART je musím ručně stáhnout. Další parametry, viz. pdf datasheet. AT+CNMI=3 Okamžitě po přijetí SMS dá anonci na UART +CMTI: "SM",2 Příklad anonce při přijetí SMS Přečtení SMS (stažení na UART): AT+CMGL List (zobrazení SMS), lze zadat další parametry, viz pdf datasheet. AT+CMGR=1 Read (přečtení SMS), nutno zadat číslo SMS v paměti OK Pokud není žádná SMS v paměti, nebo: Informace o přijaté SMS +CMGR: "REC UNREAD","+420602123456","","20/02/20,10:05:11+04" TOTO JE TEXT SMS. Text přijaté SMS OK Vymazání SMS z paměti: AT+CMGD=1,4 Delete (vymazání). (parametr 1,4 vymaže vše, i nepřečtené) OK Další parametry, viz pdf datasheet. Poslání SMS: AT+CMGS="602123456" Zahájí posílání SMS na číslo (nutno být v textovém formátu, viz. AT+CMGF=1) > TOTO JE TEXT SMS <Enter> Text můžeme Enterem odřádkovat, ale neodešle se. > <CTRL+Z><Enter> CTRL+Z vloží netisknutelný znak pro konec SMS (ASCII 26, ne každý terminál to umí) +CMGS: 7 Potvrzení po odeslání. Číslo, kolikátá SMS byla poslána. Hlasové volání: AT+CLIP=1 Při vyzvánění se v terminálu zobrazuje kdo volá. (parametr 0 vypne zobrazení) Zobrazí se číslo, formát (161 - národní, 145 - mezinárodní), jméno (pokud je v seznamu) AT+CPAS Zobrazí stav čipu (modulu): 0-připraven, 2-neznámý, 3-vyzvánění, 4-hovor +CPAS: 0 ATD +420602123456; Volání-vytočení čísla. Pro hlasový hovor je nutný středník na konci. Jinak by šlo o data. ATD 00420602123456; Mezinárodní číslo lze zadat i s nulami na začátku. ATD 602123456; Národní formát bez předvolby ATD +420602123456 I; Přidáním "I" na konec (před středník) se volanému nezobrazí naše číslo. ATH Zavěšení. Zrušení hovoru. ATDL Opakování volání na poslední vytočené číslo. ATA Přijmout příchozí hovor. ATS0=číslo Počet zazvonění, po kterých automaticky zvedne. Defaultně 0=vypnuto. Spuštění USSD kódu, neboli "Nestrukturovaná doplňková servisní data" USSD kód se používá k různým nastavením přesměrování hovorů, SMS, nastavení hlasové schránky a podobné služby. Asi nejvyužívanější služba je zjištění zbývajícího kreditu na SIM kartě. Je to obvykle nějaký číselný kód orámovaný * a #. AT+CUSD=X,"služba" služba = např: *123*# (u každého operátora jiné, musí být v uvozovkách) X=0 nezobrazit výsledek, X=1 zobrazit výsledek přiklad odpověďi: OK +CUSD: 0, "Soucasny kredit je 120.00 Kc, z toho bonusovy kredit je 120.00 Kc. Platnost bonusoveho kreditu: 1.8.2020 19:04. ", 15 Další nastavení: AT+CLVL? Ukáže nastavení hlasitosti hovoru z reproduktoru (0-100). AT+CLVL=xxx Nastaví hlasitost hovoru z reproduktoru. AT+CRSL? Ukáže nastavení hlasitosti vyzvánění(0-100). AT+CRSL=xxx Nastaví hlasitost vyzvánění. AT+CMIC? Zjistí nastavení zisku mikrofonního zesilovače. (jsou 4 kanály: Main, Auxiliary, Main-hands free, Auxiliary-hands free) AT+CMIC=X,Y Nastavení zisku mic zesilovače. X=kanál (0-3), Y=zisk (0-15 po 1,5dB, tedy 0-22,5dB) Kanál vyvedený na DPS modulu je 0. AT+CALS? Ukáže nastavený vyzváněcí tón (0-19). AT+CALS=X,Y X=vyzváněcí tón (0-19), Y=start/stop vyzvánění (0-1) Druhý parametr 1 spustí vyzvánění i bez příchozího hovoru (Můžeme poslouchat při nastavování). AT+CSCLK? Sleep mode - ukáže stav (0-2). AT+CSCLK=X X = 0...2, 0 - není sleep mode, 1 - podle stavu pinu DTR, 2 - sleep mode natvrdo V módu 1 probudí uzemnění pinu DTR na alespoň 50ms. V módu 2 probudí příchozí hovor, nebo UART (zpoždění 100ms). AT+CBC Stav baterie a nabíjení (změří napájecí napětí na milivolty). odpověď: +CBC: X,YY,ZZZZ X = 0..2(0-nenabíjí, 1-nabíjí, 2-nabito), YY = procenta baterie, ZZZZ = napětí[mV] AT+IPR=115200 Nastaví pevnou rychlost sériové komunikace. 0(nula) je automatické přizpůsobení terminálu. Možnosti jsou: 0,1200,2400,4800,9600,19200,38400,57600,115200,230400,460800 AT+CPOWD=X Vypne modul. Znova zapnout uzemněním RST alespoň na 105 ms. Pokud X = 1, zahlásí NORMAL POWER DOWN a odhlásí se ze sítě. Pokud X = 0 vypne se hned. AT+CFUN=X Vypíná některé funkce. X = 1 Normální funkce. X = 0 Vypne TRX a SIM kartu. X = 4 Režim Letadlo (mírnější než X=0). FM rádio: Bohužel na modulu DPS není vývod pro anténu FM rádia. Jinak ale se zdá, že AT příkazy fungují, ale bez antény jde z reproduktoru pouze šum. AT+FMOPEN? Ukáže stav FM rádia SIM800L AT+FMOPEN=0 Zapne FM rádio a připojí výstup na reproduktor. (parametr 1 připojí AUX výstup) AT+FMSCAN Proskenuje FM pásmo 87,5...108,0 MHz AT+FMFREQ=? Ukáže rozsah nastavení kmitočtu (875...1080) AT+FMFREQ? Ukáže právě naladěný kmitočet AT+FMFREQ=XXX Nastavení kmitočtu (3 nebo 4 číslice) AT+FMSIGNAL=XXX Ukáže sílu signálu na daném kmitočtu (hodnoty 0...112, nevím, co znamenají) AT+FMVOLUME=? Rozsah nastavení hlasitosti (0...6) AT+FMVOLUME? Ukáže nastavenou hlasitost AT+FMVOLUME=X Nastavení hlasitosti (0...6) AT+FMCLOSE Vypnutí FM rádia v SIM800L




  •      
    Hyperterminal
    Testing SIM800L
    SIM800L on the board
    Hyperterminál Testování na
    zkušební desce
    ...
         

    Tak to by bylo zatím asi vše. Pokud narazím na něco zajímavého, co by se mohlo hodit, doplním to do tohoto článku. Pokud by toho bylo víc, založil bych asi nový článek.

    Jarda, ok1hdu


       | Celý článek |      e-mailtisk clánku
     

    Zpět (klikni)

    O   Novinky
    05.07.2019:
    Update fotoalba
    Do fotoalba jsem přidal pár fotografií ze:
    Slovinska (červen 2019).

    05.12.2018:
    Update fotoalba
    Do fotoalba jsem přidal pár fotografií ze:
    Slovinska (jaro 2018)
    a ze:
    Suchého Vrchu (zima 2005/2006).

    24.11.2017:
    Update na webu DXFC
    Dneska jsem updatoval info na webu DXFC

    24.11.2017:
    Update fotoalba
    Do fotoalba jsem přidal fotky z letošní dovolené v Tureckém Oludeniz.

    20.11.2017:
    RSGB IOTA contest 2017
    Výsledky IOTA contestu 2017 v CW QRP kategorii.

    O   kalendář
    <<  Duben  >>
    PoÚtStČtSoNe
      1 2 3 4 5
    6 7 8 9 10 11 12
    13 14 15 16 17 18 19
    20 21 22 23 24 25 26
    27 28 29 30    

    O   Radary ČHMU

    Tento web site byl vytvořen prostřednictvím phpRS - redakčního systému napsaného v PHP jazyce.
    Na této stránce použité názvy programových produktů, firem apod. mohou být ochrannými známkami
    nebo registrovanými ochrannými známkami příslušných vlastníků.