Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Moduł GSM M590 od Neoway - krótki opis

grala1 26 Kwi 2020 15:59 1359 2
  • Postaram się w poniższym artykule opisać pokrótce moduł GSM NEOWAY M590.
    Moduł ten jest wyposażony w komunikacje UART, wspiera komendy AT, działa z częstotliwościami sieci GSM 900/1800 oraz GSM850/1900, obsługuje SMSy w formacie PDU oraz TXT.
    Moduł GSM M590 od Neoway - krótki opis

    Za pomocą modułu możemy wysyłać i odbierać SMSy, dzwonić na wybrane przez nas numery lub odbierać połączenia przychodzące ale UWAGA - moduł nie pozwala na rozmowy gdyż nie ma tutaj opcji nadawania czy odbierania dźwięku przy połączeniach.

    Zestaw dostajemy w formie kitu do samodzielnego polutowania. Zestaw składa się dosłownie z kilku elementów: płytka PCB, moduł GSM, gniazdo karty SIM, dwie czerwone diody LED, 3 rezystory, dioda 1N4007, kondensator, dwurzędowa listwa goldpin oraz kawałek PCB jako antena. Większość elementów to elementy SMD. Raczej nie będzie problemu przy lutowaniu tego kitu. Wymiary PCB po zlutowaniu to: 83x61x15mm. Płytka jak widać jest dość duża, spokojnie mogła by zajmować jedną czwartą obecnej powierzchni. Listwa goldpin nie wiadomo czemu ma 2x10 pinów skoro używane jest tylko 5 z nich. Nie wiadomo z jakiego powodu producent tego kitu dopuścił się takiego marnotrawstwa PCB i goldpinów. Oprócz zasilania na listwie mamy wyciągniętą z M590 komunikację czyli Rx, Tx oraz pin RING.
    Moduł GSM M590 od Neoway - krótki opis
    Moduł GSM M590 od Neoway - krótki opis

    Zestaw taki do samodzielnego montażu można zakupić np. na Aliexpress w cenie ok. $1.9 darmową wysyłką. Na Allegro, za podobny moduł lecz w wersji E i z inną płytka PCB trzeba zapłacić niespełna 17zł w opcji z darmową wysyłką. Myślę że płytka PCB nie ma tutaj żadnego znaczenia gdyż jak opisałem wyżej liczba elementów na niej jest znikoma. PCB to tylko adapter pomiędzy kartą SIM a modułem plus wyprowadzenie złącza zasilania i komunikacji.

    Nie znalazłem informacji na czym polega różnica pomiędzy M590 a M590E. W przypadku modułów GSM innego producenta – SIMCom, różnica między literkami na końcu, np. SIM900A oznacza moduł na inny rynek, w tym przypadku azjatycki gdzie moduł taki nie będzie pracował z europejskimi kartami SIM. Ja nie znalazłem odpowiedzi na pytanie co oznacza ta literka. Być może ktoś po przeczytaniu tego opisu podzieli się swoją wiedzą na temat różnicy w tych modułach.

    Moduł w opisywanym zestawie jest modułem używanym który pochodzi najprawdopodobniej z wylutu ze starych urządzeń.
    Poniżej opis listwy goldpin:
    2 – VCC
    4 – GND
    12 – RING
    14 – Tx
    16 – Rx

    Zasilanie M590 powinno mieścić się w przedziale 3.3-4.8VDC, rekomendowane przez producenta jest 3.9VDC. W naszym zestawie dioda D2 pełni podwójną rolę – zmniejsza napięcie zasilanie przez co możemy zasilać zestaw napięciem 5VDC oraz chroni go przed odwrotnym podłączeniem zasilania.
    Zazwyczaj prąd pobierany przez moduł to ok. 30mA ale trzeba wziąć pod uwagę że w momencie wysyłania/odbierania SMS, nawiązywania połączenia czy logowania do sieci operatora karty SIM prąd ten jest większy. Producent w dokumentacji podaje że prąd „operacyjny” to ok. 210mA, w sleep mode ok. 2.5mA. Wczytując się dalej w dokumentację dowiemy się że moduł może pobierać prąd w piku o wartości nawet 2A. Piki te mogą trwać ok. 1ms czego nie zauważymy na amperomierzu a w tym momencie napięcie może spaść poniżej 3.3V i napsuć nam krwi. Z tego powodu producent M590 zaleca stosowania na zasilaniu układu kondensatora o pojemności 1000uF z LOW ESR. W przypadku zasilania układu np. z pakietu Li-Pol pojemność kondensatora może być mniejsza.

    Komunikacja UART ma tutaj niższe poziomy napięć. Prędkość komunikacji dla fabrycznego ustawienia modułu to 115200bps. Jak już wspomniałem wcześniej moduły te pochodzą prawdopodobnie z odzysku więc może okazać się że przy „fabrycznej” prędkości nie nawiążemy komunikacji z naszym układem. Trzeba metodą prób i błędów znaleźć zapisana wcześniej prędkość. W przypadku mojego modułu była to prędkość 19200bps.
    W dokumentacji odnośnie komunikacji znajdziemy również informację że piny I/O mają poziom napięć 2.85V przez co zaleca się poniższą konfigurację linii Rx i Tx dla połączenia z układem pracującym przy logice 3.3V:
    Moduł GSM M590 od Neoway - krótki opis

    W przypadku logiki pracującej przy 5V producent rekomenduje poniższe połączenie:
    Moduł GSM M590 od Neoway - krótki opis

    Może nie powinienem tego pisać ale ja „rozmawiałem” ze swoim M590 nie stosują się do powyższego rysunku. Użyłem FTDI323 ustawionego na poziom napięć 3.3V. Moduł zniósł to bez problemów ale pamiętajcie że wasz mogą zachować się inaczej i może lepiej dmuchać na zimne i użyć tych 2 rezystorów i kondensatora.

    Wracając do pinu RING – czemu on służy? Z samej nazwy możemy się domyślić że jest to wyjście z modułu gdzie pojawi się sygnał w momencie nadejścia połączenia przychodzącego na numer karty będącej w gnieździe karty SIM. Normalnie pin ten jest podciągnięty do VCC. W momencie nadejścia połączenia na pinie tym pojawia się stan niski przez ok. 35ms, po czym kolejny stan niski pojawi się po ok. 5 sekundach. Wyprowadzenie to przy ustawieniach fabrycznych nie reaguje na przyjście wiadomości SMS. Możemy to zmienić poprzez odpowiednie skonfigurowanie komendy CNMI dla wiadomości SMS. Po dokonaniu zmiany przy nadejściu SMSa na wyjściu RING pojawi nam się pojedynczy stan niski który będzie trwał 25ms. Jeżeli dobrze rozumiem dokumentację w przypadku takiego ustawienia w momencie nadejścia połączenia przychodzącego, na wyjściu RING mamy cały czas stan wysoki czyli tracimy sygnalizację dla połączeń przychodzących.

    Wcześniej wspomniałem o dwóch czerwonych diodach LED. Opisane są one na PCB jako:
    - LED1 – zasilanie PCB
    - LED2 – zalogowanie się M590 do sieci – dioda miga z częstotliwością 1Hz. Dioda ta podpięta jest pomiędzy wyprowadzenie LED (pin 5, czasem też zwany LIGHT w tej samej dokumentacji) M590 a GND.

    Z racji tego że moduł posiada komunikację UART oraz obsługuje komendy AT możemy w dość prosty sposób sterować M590 za pomocą komputera lub jakiegoś mikroporocesora.

    Do komunikacji z naszym zestawem możemy użyć np. terminala HyperTermianal.
    Poniżej ustawiania dla portu COM:
    Moduł GSM M590 od Neoway - krótki opis

    W ustawieniach ASCII nic nie zmieniałem – można tutaj włączyć lokalne echo wpisywania znaków, wtedy widzimy co wpisujemy do terminala ale każdy wpisywany znak po zaznaczeniu tej funkcji będzie do nas powracał z M590 czyli przy znaczonej tej opcji pisząc np. AT na monitorze będziem widzieć AATT, przy odznaczonej opcji widzimy tylko znaki wracające z modułu czyli AT.
    Moduł GSM M590 od Neoway - krótki opis

    Po konfiguracji połączenia w programie i podaniu zasilania na układ na monitorze powinniśmy zobaczyć komunikat o treści „MODEM:STARTUP”, po ok. 1 sekundzie dioda D1 powinna się zaświecić, po kolejnych 3 sekundach powinna zacząć migać a po ok. 12 sekundach od podania zasilania powinniśmy dostać kolejny komunikat z modułu o treści „+PBREADY”. Komunikat ten oznacza zalogowanie się do sieci GSM.

    Teraz możemy zacząć wysyłać komendy AT do naszego układu.
    Poniżej opiszę kilka komend AT oraz odpowiedź modułu na nie.

    ATI
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    AT+CSQ
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    AT+CREG?
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    AT+CGSN
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    AT+CMGF?
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    AT+CMGF=1
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    AT+CSCS?
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    AT+CSCS=”GSM”
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    AT+CSCA?
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    AT+CMGS=”+48xxxxxxxxx”
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    AT+CMGR=x
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    ATD
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    ATA – odbierz połączenie głosowe

    AT+CHUP – odłóż słuchawkę

    ATH – rozłącz

    W przypadku gdy wykonujemy połączenie głosowe z numerem znajdującym się w module M590 w terminalu dostajemy komunikat o treści "RING" powtarzający się co 5 sekund aż do momentu gdy dzwoniący się rozłączy.

    Jeżeli chcielibyśmy znać numer z którego przychodzi połączenie to należy wysłać komendę AT+CLIP=1
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    W przypadku wykonania połączenia wychodzącego z M590 nie wiemy czy nasz odbiorca odebrał połączenie. Mamy tylko informację o rozłączeniu połączenia - np. NO CARRIER. Jeżeli chcemy wiedzieć że połączenie zostało odebrane to należało by wysłać komendę AT+COLP=1 wtedy po wpisaniu komendy ATD wraz z numerem telefonu i średnikiem na końcu odpowiedź modułu w formie OK pojawi się dopiero po odebraniu połączenia przez rozmówcę.

    Powiedziałbym że ATH oraz AT+CHUP są tożsame.

    Wcześniej napisałem o prędkości komunikacji - że w moim przypadku była ustawiona ona na 19200bps a jak można było zauważyć na screenach w ustawieniu portu COM ustawione jest 9600bps.
    Na tą chwilę predkość komunikacji w moim module to 9600 gdyż ustawiłem to za pomocą odpowiedniej komendy AT
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    W przypadku chęci wysłania wiadomości SMS za pomocą M590 w pierwszej kolejności należy ustawić odpowiedni rodzaj alfabetu GSM oraz zmienić format SMSów na tekstowy. W przeciwnym razie przy próbie nadania SMS zostaniemy poinformowani przez moduł że operacja ta jest niedozwolona. Można też oczywiście wysyłać wiadomości w trybie PDU - w sieci bez problemu możemy znaleźć kalkulatory/programy ko konwersji tryby tekstowego na tryb PDU i odwrotnie.

    Co do wpisywania komend w terminalu to wielkość znaków nie ma tutaj znaczenia - można mieszać wielkość znaków. Wpisaną komendę potwierdzamy ENTERem. Jest chyba tylko jeden wyjątek – przy wysyłaniu SMS gdzie wpisany tekst wiadomości zatwierdzamy kombinacją klawiszy CTRL + Z.

    Ustawienia dla alfabetu SMS oraz jego formatu nie są zapamiętywane po wyłączeniu zasilania. Po jego ponownym włączeniu lub resetu modułu należy je znów ustawić. Zmiana prędkości komunikacji jest wpisywana do pamięci i nie trzeba jej ponownie ustawiać po wyłączeniu zasilania.

    Moduł ten ma wiele niepochlebnych opinii w sieci. Zarzucane jest mu między innymi to że często się resetuje lub zawiesza. Powiem szczerze że również na początku miałem problemy z poprawną praca modułu. Z początku myślałem ze jest to spowodowane diodą D2 lecz podanie zasilania za nią nie rozwiązało problemu. Zmiana źródła zasilania też nie przyniosło skutku (zapomnijcie o zasilaniu modułu z gniazda USB np. w laptopie – zbyt mały prąd). Problemem okazał się kondensator który był w zestawie. Do nóżek M590 dolutowałem drugi kondensator 1000uF low ESR (widoczne modyfikacje na zdjęciach, widać również dodaną diodę LED która podpinana była dom wyjścia RING) który rozwiązał problem z resetowaniem się modułu. Jeżeli zatem macie powtarzające się komunikaty z modułu o treści „MODEM:STARTUP” to wasze źródło zasilania może nie wyrabiać prądowo lub trzeba wymienić/dołożyć kondensator na zasilaniu. Zazwyczaj ten komunikat pojawia się przy próbie logowania do sieci, wysyłania SMS lub przy wykonywaniu/odbieraniu połączenia głosowego gdzie mamy do czynienia ze zwiększonym poborem prądu i jego pikami.
    Pamiętajcie o wspólnej "masie" dla modułu M590 oraz przejściówki którą wykorzystujecie do komunikacji z komputerem (lub np. mikroprocesorem którego łączycie z M590).

    Podobno moduł ten działa też z GPRS – nie miałem okazji tego przetestować. Może ktoś już to przerabiał i podzieli się wiedzą na ten temat.

    W przypadku pacy z M590 proponuje Wam wysłanie komendy AT+CMEE=2 na początku "zabawy". Ułatwi ona pracę z modułem i może pozwolić zachować nerwy na wodzy. Co powoduje ta komenda? W przypadku gdy jej nie użyjemy czyli CMEE=0 a wpiszemy źle jakąś komendę lub w złej kolejności to otrzymamy komunikat z modułu o treści "ERROR". Raczej większość z nas wie co to oznacza ale gorzej już z wiedzą na temat z jakiej przyczyny jest ten błąd lub czemu moduł nie chce wykonać tej komendy. Zmiana CMEE na 2 powoduje rozszerzenie opisu błędu czyli dodanie dodatkowego komentarza, np. "operation not allowed" - operacja niedozwolona.

    Podsumowując można powiedzieć że po rozwiązaniu problemu z zasilaniem polegającym na kiepskim kondensatorze w torze zasilania, moduł sprawuje się dość dobrze i jest prosty w obsłudze. Dzięki takiemu modułowi możemy np. zbudować system powiadamiania SMS lub sterować jakimś urządzeniem za pomocą SMSów czy połączeń telefonicznym. Można pokusić się o zbudowanie urządzenia podobnego do pagera. Niestety telefonu na tej wersji modułu nie zbudujemy gdyż nie mamy tutaj przekazywanego dźwięku o czym wspomniałem wcześniej.

    W załączniku dokumentacja komend AT obsługiwanych przez M590.

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    grala1
    Specjalista grupy V.A.G.
    Offline 
    grala1 napisał 9174 postów o ocenie 2864, pomógł 1215 razy. Mieszka w mieście Kalisz. Jest z nami od 2006 roku.
  • #2
    Dawid90u
    Poziom 23  
    Hej,
    Ostatnio bawiłem się z tym modułem i dodam parę komentarzy z mojej strony.
    Rezystor R2 koło karty sim warto wymienić na 10k. Osobiście się z tym spotkałem jak i wyczytałem w internecie że na europejskich kartach sim moduł ma czasami problemy z rezystorem 4.7k który dodają do takiego zestawu.

    Można spotkać zestawy z anteną w formie drutu. Parametry połączenia na takiej są kiepskie, często rozłącza. Lepiej sprawuje się antena w formie płytki pcb jak tutaj lub normalna antena GSM. Na module jest złącze RF.

    Zasilanie - Dioda nie jest tu zbytnio dobrym rozwiązanie. Osobiście zrobiłem zworkę i zastosowałem przetwornicę DC-DC i dodatkowo przerobiłem sekcje zasilania na tą opisaną w dokumentacji modułu:

    Moduł GSM M590 od Neoway - krótki opis

    Po tych operacjach przestałem mieć problemy z siecią i ogólną stabilnością działania modułu.