Gsm модуль sim900a

1. Прошивка

Волею доль, у мене в руках опинився модуль GSM900A. Прочитавши перший-ліпший форум про пожвавлення цієї штуки, з'ясувалося, що буква A в назві означає приналежність модуля до азіатського регіону. А отже, працювати з нашими операторами він не стане. зневіра 🙁

Благо, в наступних постах на тому ж форумі містилася заспокійлива інформація :) Виявилося, що не все так погано, і щоб модуль заробив в нашому регіоні, його потрібно просто перепрошити. Цей процес добре описаний в блозі нашого соратника Alex-EXE: прошивка «all in one» sim900
Спробую зробити те ж саме, але ще більш детально, і з урахуванням особливостей мого модуля.

Якщо у вас правильний модуль і прошивка не потрібно, можна відразу стрибати на розділ №2.

Отже, для початку підготуємо всі необхідні інструменти. По-перше, безпосередньо для прошивки потрібно додаток SIM900 Series download Tools Develop, яке можна легко знайти в інтернеті (хоча б тут).

По-друге, стане в нагоді і сам файл прошивки 1137B02SIM900M64_ST_ENHANCE, який теж легко видобувається (я брав тут).

Нарешті, по-третє, нам потрібен буде хороший термінал для експериментів з модулем. Зазвичай я використовую TeraTerm, але в цей раз його можливостей не вистачило (або я не розібрався). Довелося встановити монстра з геніальним назвою Terminal.

Підключення до USB-UART мосту

Тепер підключаємо лінії RX і TX до мосту. В якості останнього я використовував CP2102. У моєму випадку, всупереч логіці, RX і TX моста з'єднувалися з RX і TX GSM-модуля симетрично (а не навхрест, як прийнято).

Також слід живити модуль від стабільного і потужного джерела, так як піковий струм на модулі може досягати 2А (нібито). Підійдуть 4 акумулятора типорозміру AA. Повна схема включення виглядає так:

У даній моделі немає кнопки скидання, так що для прошивки нам буде потрібно на пару секунд кинути контакт RST на землю. Для цього ми поки залишимо його висіти в повітрі.

Попереднє налаштування модуля

Перед тим, як приступити до прошивці, ми з'єднаємося з модулем, і змінимо йому швидкість UART. Для цього запустимо термінал Terminal, виберемо правильний порт, і встановимо швидкість обміну - 9600. Після цього тиснемо «Connect».

Все спілкування з модулем відбувається за допомогою AT-команд.

Gsm модуль sim900a

Перше що ми скажемо модулю буде найпримітивніша AT-команда: «AT». Це такий своєрідний ping, на який модуль повинен відповісти словом «OK».

Якщо все пройшло успішно, і модуль дійсно відповів нам «OK», відправляємо команду настройки швидкості:

В кінці команди повинен стояти службовий символ повернення каретки - CR. В ASCII таблиці він має код 13 (або 0x0D в шістнадцятковій системі). Символ підставить автоматично, якщо ви поставите галочку «+ CR» навпроти рядка введення в нашому терміналі. В інших терміналах теж є подібні налаштування.

У відповідь на введену команду знову отримаємо - «OK».

Ця установка знадобиться нам для прискорення процедури прошивки. В іншому випадку, як зазначив у своєму блозі Alex-EXE, прошивка займе близько години.

Після того, як всі дроти встромлені в потрібні місця, і модуль підготовлений до прошивці, запускаємо додаток SIM900 Series download Tools Develop. Налаштування програми складається всього з декількох пунктів:

  • в поле Target вказуємо цільової чіп. Чомусь у мене не вийшло залити прошивку на SIM900A, так що я вибрав «SIM900»;
  • вибираємо правильний порт в поле Port;
  • Baud Rate ставимо в 115200;
  • нарешті, вказуємо файл прошивки в поле Core File (файл з розширенням cla).

З налаштуванням все.

Тепер виконуємо строго і послідовно шість важливих кроків.

  • Підключаємо до модуля харчування (наші 4 акумулятора). Повинна спалахнути червона лампа харчування, а лампа статусу повинна мерехтіти.
  • Підключаємо USB-UART до комп'ютера.
  • Замикаємо провід RST на землю (пам'ятаємо, що весь цей час він бовтався в повітрі).
  • Натискаємо в програмі кнопку Start Download.
  • Вважаємо в розумі до трьох, і відриваємо RST від землі.

Чекаємо 6 хвилин до завершення прошивки.

Що ми маємо після прошивки

По-перше, модуль тепер вміє працювати з нашими операторами. По-друге, ми поставили розширену прошивку, серед особливостей якої, наприклад, отримання координат модуля по стільникових вишок, робота з електронною поштою і доступ до додаткових 2.5 Мб пам'яті.

2. Експерименти з GSM модулем

Спробуємо тепер виконати різні корисні операції з модулем. Для початку, введемо ПІН-код (якщо він є):

Відповідь модуля буде таким:

Після цього отримаємо від модуля трохи інформації.

Тепер наберемо який-небудь номер. Робиться це за допомогою команди:

Крапка з комою в кінці команди дуже важлива, на забудьте про неї!

Якщо під час UART сеансу на пристрій хтось подзвонить, повернеться повідомлення:

Відповісти на дзвінок (взяти трубку) можна командою:

Завершує виклик команда:

Спочатку включимо текстовий режим повідомлень:

і встановимо кодування:

А наприкінці команди необхідно додати відразу два службових символу: CR і LF. У Terminal це можна зробити галочкою CR = CR + LF, або вручну додавши в кінці рядка: AT + CMGS = "+ 79123456789" 0D0A

Після введення цієї команди, у відповідь буде отримано символ «>», що означає початок перегляду сторінок Інтернету. Пишемо який-небудь текст:

В кінці повідомлення нам потрібно буде передати один з двох спеціальних символів. Щоб відправити повідомлення введемо символ з ASCII таблиці з номером 26. Щоб скасувати відправку - символ з номером 27.

У використовуваному нами терміналі для відправки символу за кодом можна використовувати одне з двох виразів: в шістнадцятковому форматі: $ 1A, і в десятковому: # 026

Якщо під час сеансу на пристрій надійде SMS, повернеться повідомлення формату:

Щоб прочитати текст цього повідомлення, введемо:

У відповідь отримаємо:

Загалом, все просто. Цього нам цілком достатньо для реалізації задуманого. Для більш глибокого вивчення можливостей GFM900 рекомендую почитати ще одну статтю Alex-EXE: at-команди gsm модему sim900

3. Взаємодія з мікроконтролерами

Взагалі, щоб управляти зовнішніми пристроями зовсім не обов'язково з'єднувати модуль GSM900 з іншим мікро контролером. У цей модуль можна зашити свою програму, яка буде робити все що завгодно з вільними GPIO висновками. Однак, в більшості готових плат GPIO не розлучені, тому для створення прототипу задуманого пристрою скористаємося найпростішої Arduino Uno / Nano.

Спілкуватися Arduino і GSM900 будуть все по тому ж UART інтерфейсу. Для цього з'єднаємо ці два пристрої за наступною схемою: