|
![]()
Vydáno dne 23. 02. 2020 (3718 přečtení) |
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
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
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
Novinky |
19.08.2020: Update na webu DXFC Dneska jsem updatoval info na webu DXFC.
05.07.2019: Update fotoalba Do fotoalba jsem přidal pár fotografií ze:
Slovinska (červen 2019) Fotoalbum prozatím zrušeno. 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). Fotogalerie je prozatím zrušena. |
kalendář |
|
Radary ČHMU |
|
Zaparkováno na: |
![]() |
TSL certifikát: |
![]() |
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ů.