Отладочная плата на базе SIM900D
Здравствуйте!
- Первое это простота монтажа. В этом вы убедитесь позже. - Второе это общение через UART. (Это значит МК + SIM900D = нормальная связь) - Третье это питание модуля от 3 до 4.8 вольт. Хош AVR, хош ARM. По вкусу.
Выглядит сей модуль так.
По поводу монтажа. Как видите модуль заточен на поверхностный монтаж. Размеры контактных площадок достаточно большие даже для ЛУТа. Ниже картинка моего устройства.
Как видите ничего сложного. Теперь давайте поговорим о схеме подключения этого чуда. Глядим мануал. И видим распиновку.
Да, много всего, но все использовать не будем. Первое что нам потребуется это обвязать все выводы «GND». Если глянуть на правый верхний угол, то можно заметить три отдельных вывода. Два «GND» и «ANT». Эти выводы расположены таким образом не просто так. Глянем в документацию на картинку подключения антенны.
59 и 61 контакты должны находиться как можно ближе к выводу антенны. Дополнительные схемы выделенные пунктиром, нужны для подключение антенн с кабелем. Поэтому я впаял SMA разъем как можно ближе к выводам 59, 60, 61 и не стал заморачиваться со схемой согласования, при этом с антенной на 3-х метровом кабеле и в месте очень плохого приема, выжал из модуля 13 балов из 31. Разъем видно на картинке выше. Точнее ноги от него)) Сам разъем с другой стороны. При этом контакты 59 и 61 как бы обнимают антенну. Ну как-то так. Далее давайте поговорим о SIM-карте. Для ее установки я использовал вот такой разъем (SIM ICA-501-006-01-F7)
Но это еще не все. Если глянуть в монуал на схему включения SIM-карты, то там можно увидеть некую микросхемку под названием SMF05C . Эта микросхема содержит защитные диоды аж 5 штуков. Нужна для зашиты контактов SIM-карты. Конечно можно ее и не ставить, но тогда будьте внимательны и не трогайте контакты пальцами!!! Я как грешный человек за себя не ручаюсь, поэтому микруху припоял. А вот и сама схема.
Она конечно приведена для 8-и контактной SIM-карты, но для 6-ти будет тоже самое. Есть правда две засады с этой микросхемой. Первая это то что ее хрен где сыщешь. А вторая то что размер ее… Я когда получил заказ и достав положил ее на стол… Короче на втором рисунке сверху она впаяна между SIM-картой и батарейкой. Для сравнения резисторы 0805. Ну а справа транзистор в корпусе SOT-23. Так ну вроде с SIM-картой разобрались, поехали дальше. А дальше светотехника. Вообще говоря это на любителя. Так как все эти сигналы можно завести прямо в МК и он там сам пускай разбирается. Я все их вывел из чувства к прекрасному. Так что решайте сами.
- Первое это сигнал включен модуль или нет (STATUS) лог 1 - Второе это сигнал наличия регистрации сети (NETLIGHT) лог 1/0 (мигает) Если мигает с одинаковой частотой, значит не зарегистрировался в сети Если длинный промежуток, значит есть конект к сети. - Третье это сигнал звонка/sms (RING) лог 0 Горит если есть входящий звонок и моргнет при получении sms-сообщения.Первые два сигнала нужно подключать через NPN транзистор в ключевом режиме.
А третий сигнал (RING) нужно подключать через PNP транзистор. Еще один не мало важный сигнал, это кнопка включения и выключения модуля. (куда же без нее). Вот что нам предлагает мануал.
То есть подали лог 1 на базу транзистора на 1 секунду и модуль включился.
Теперь давайте поговорим о питании. Да, я бы ща от хорошей тарелочки борьща не отказался бы, а вы? Ну ладно, едем дальше. Питается модуль напругой от 3 до 4.8 вольтов. Вроде все просто, да не так. В момент звонка, передачи sms, поиска сети модуль может потребовать аж до 2А. Во как. Так что любители LM7805 и КРЕНок могут огорчиться. К счастью в мануале присутствуют две схемы на микросхемах MIC29302 (я так в продаже ее и не нашел) и LM2596 (эту купить можно). Но я лениииивый и собирать питалово с таким большим количеством обвязки просто не захотел. Я пошукал в интернете и нашел. Есть такой хороший стабилизатор для процессоров типа «Пень», «AMD» на 3.3в и до 7.5А. Во, думаю то что надо и ARM запитать можно и модуль. Вот схема этого чуда.
А вот как это выглядит в собранном виде.
Радиатор поставил со страху, в принципе микросхема не греется даже во время звонка. И последнее на что следует обратить внимание, это на батарейку. Она нужна для поддержания жизни часов реального времени. Самое важное что оставлять этот вывод в воздухе нельзя. Лично я сошелся на подключении батарейки чего и вам желаю. Можно конечно две АА влепить)) но как-то крупновато, а вот в форме таблетки 2032 на 3v то что надо. Благо они стоят не дорого и отсеки паять можно прям на плату. По моему это самое простое решение. Решать вам. Ну вроде и все. Вот как это все безобразие выглядит вместе и в работающем состоянии.
В следующей статье я расскажу как ломал этот модуль но уже программно через терминал при помощи АТ команд.
Выкладываю схемы в PCAD-2006
Архив с файлами модуля GSM.
Продолжение цикла статей о GSM модуле.
Отладочная плата на базе SIM900D
хотелось бы подробней о АТ командах, UARTу и непосредственно работы с этим в CodeVision
С АТ командами разбираюсь. Не хочу выкладывать половину работы, так как есть некоторые вопросы. А с UARTтом и CVAVR там все просто. Как только разберусь с АТ командами сразу выложу и какие команды и как из CVAVR их подать.
Все это красиво . А вот если сигнализация работала хотя бы при минус 30-и градусах и зарядилась скрытыми солнечными батареями особенно зимой , то желающих иметь такой аппарат было бы очень много .
GSM модуль жрет до 2А при регистрации в сети или звонке или связи по GPRS. Для таких ресурсов требуется хороший аккумулятор, а при -30 АКБ долго не проживет. Даже в метеостанциях на уличных датчиках рекомендуют использовать простые батарейки.
Если еще актуально и интересно…помотри на EAT для SIM900. В нем внутри ARM и есть SDK в котором можно загружать приложения в SIM900 из которых можно много всего делать…например посылать те-же AT команды…+клавиатура + SPI дисплей… + 2 АЦП :) Нескучного вечера:)
А све-таки для него очень красиво делать для него питание на L5973D. Да про 2А написана в даташите…но практически это очень кратковременные импульсы. У меня он прекрасно работает например с Arduino Mega которая сама питается от USB порта (у которога ток 0.5 А)
В этом-то и загвоздка. Я тоже по началу питал от 7805, все работало, а потом бац… И при подключении к сети все гаснет, а потом в рестарта идёт. Видимо сторожевая собака по припадке питания рестартует. А с L7953D будет красиво, но где её взять и скопа она будет стоить 🙂 Поэтому я перешёл на IRU1075
Прошу прощения за ошибки, это чертов ГУДРОЙД горбыли лепит за меня. Думает он умнее. Не буду править, пусть Гуглу стыдно будет за их работу.
У меня при регистрации в сети атмега в перезагруз уходит. Хотя стоит импульсный dcdc. Конденсаторов на 200мкф. А бывает, работает стабильно. Замучался уже.
Схему в студию. Со слов довольно сложновато понять проблему.
[url=http://ybex.com/d/tk7kgiefpklpeujb1zb l4lo5mrkf7ayvci04ouq3.html] [img=http://ybex.com/t/tk7kgiefpklpeujb1zb l4lo5mrkf7ayvci04ouq3.png][/img][/url]
http://ybex.com/d/tk7kgiefpklpeujb1zbl4lo5 mrkf7ayvci04ouq3.html МК запитан от 2.8 (пробовал даже 3.7) Вольт, чтобы не городить преобразователь уровня.
По ссылке не открывается картинка. Может перейдем на форум?
Алексей здравствуйте! у вас есть готовые платы с сим900, можно ли купить?
В каком смысле готовые? Сам модуль уже собран и остается под конкретный девайс изготовить плату с требуемыми выходами и входами. Та что в данной статье это лишь демо плата для отладки программ. Для конкретного девайса требуются размеры, расположение разъемов, выходов на наушники и микрофон. Где будет антенный разъем. Дайте более подробную информацию о том что Вам нужно.
Я так понимаю это прототип той платки которую я жду не дождусь. Только в коммерческом варианте её поженили с блоком питания и облагородили аудио выходами. Что есть большой гуд.
Собственно так и есть. Я просто сразу убил несколько зайцев. Решил извечную проблему с питанием и согласованием уровней на UART. И для шика добавил аудио вход и выход. Фактически готовый сотовый телефон.
Хотел бы внести рацуху на будущее. по сути данная плата законченный узел. И её ПРАКТИЧЕСКИ можно использовать в готовом изделии. однако есть одно НО. При мезонном навесе её по любому лучше ставить сверху (разъем антены, доступ к симкарте) поэтому вполне целесообразно параллельно всем штырькам для «периферии» оставлять отверстия для таких же штырьков с возможностью впайки оных направлением «вниз». Т.е. захотел я данный девайс насадить на плату микроконтроллера, развёл под твой, запаял ответные разъемы в него и состыковал. Ещё и с
Сожрало полмессаги, но мысль надеюсь понятна-)
Подскажите почему модуль греется и неловит сеть?
Здесь есть несколько причин. Первая, превышено питание. Второе, не попал ли плюс на общий. Нужно внимательно посмотреть ножки питания. Третье, не касается ли модулю брюхом питающих линий. На брюхе есть несколько технологических контактов которые должны быть изолированны от каких либо проводников. Четвертое, не замкнут ли вывод антенны с общим выводом. А если быть точнее, то необходимо смотреть плату. Сбросьте мне плату на почту и я посмотрю, может там что-то не так.
Платы у меня заводские , МастерКит BM8039 и на обеих одна и та же проблема..вставляешь симку модуль начинает грется и нет сети.
Довольно сложно сказать. Схема заводская, надо по плате полазить. Из документации видно что на плате нет рекомендуемых защитных диодов для SIM-карты. Сама карта и разъем по пинам совпадают? 300 модуль старый и по моему он работает только с симками 5 вольтовыми, а сейчас они все на 3в. Но я могу и ошибаться. Надо смотреть саму плату, так сложно что-то сказать. Если симптом на обеих один и тот же, то я бы какпал в сторону разъема и вольтажа симок. Еще раз, современные симки на 3-х вольтовые.
Стоит sim900D…диодов нет.Когда вставляю карту появляется питание на модуле и он начинает греться,но на симку напр. с 9 ноги не идёт..
изначально работали нормально..потом что то коратнуло…не могу понять что..
Можно как то проверить модуль не выпаивая?
А что именно коротнуло? Если питание на симку не идет, то я боюсь сдохла линия для симки. А симка сколько ног? 6 или 8? Для проверки можно не вставляя симки пообщаться с модулем по шине UART 3, 4 ноги. Если откажется принимать АТ команды, то я думаю можно его хоронить.
что коротнуло точно незнаю..ног 8 ..а как пообщаться то?
А на разъеме тоже 8? Берем микросхему FT232RL, собираем переходник USB<->TTL, припаеваемся к UART модуля, запускаем терминал, например Putty, пишем AT и давим ентер. Если вернет ОК, значт еще не все потеряно. Если тишина… На помойку. А да, какие светодиоды а плате? как определяется наличие регистрации в сети?
На разъёме тоже 8..на плате два светодиода зелёный и красный,наличие сети определяется по морганию зелёного раз в три секунды…можно как то вставить фото платы?
Проще перейти на форум.
Если не вставлять симку значит нужно подать питание на модуль?
Я не могу гадать на кофейной гуще. Мне нужна либо схема, либо плата. И причем тут питание модуля и сим карта? Там скорее всего еще с каким-то микроконтроллером пересекается. Он и подает питание. В общем нужна схема. А так это как диагноз по телефону ставить.
где на форуме можно выложить схему?
Питание на модуль приходит только когда вставляешь симку
У меня при подаче напряжения на модуль, на 12 ноге присутствует положительный потенциал, на 5 ноге так же положительный (при условии, что данные ноги висят в воздухе). Подскажите пожалуйста, ведь на 5 ноге вроде должен быть ноль? Если не так, пожалуйста поправьте меня.
12 ножка это включения модуля. На ней при подаче питания висит 1. Для включения модуля нужно прижать на пару секунд 12-тую ножку к общему проводу, то есть подать 0. При подаче питания на модуль 5 ножка должна быть подтянута к общему проводу двумя резисторами (это видно из схемы включения транзистора в ключевом режиме) и на ней должен быть 0, так как базу нужно подтянуть к нулю для полного закрытия транзистора. После прижатия 12 ноги к нулю, на 5 ножке должна появится 1, а через некоторое время меандр с указанием статуса наличия и подключения к сети.
www.avrki.ru
У нас продаются 3 типа модулей. Все они имеют 4 диапазона 850/900/1800/1900МГц, умеют передавать/принимать голосовые вызовы, работать с смс, делать ussd запросы и работать с сетью через GPRS, с поддержкой ftp, http или tcp/udp.
1. Основной, рекомендуемый к использованию Sim900. Небольшой (24х24мм), паябельный корпус, единственный поддерживающий протокол I2C.
2. Второй модуль — это Sim900B. Размер 40х33мм, крепление к плате через 60 контактный разъем с весьма мелким шагом. Предназначен для замены модулей sim300. В общем самый неудачный вариант для домашнего применения.
3. И последний модуль — Sim900D. Тоже небольшой (33х33мм), хорошо подходящий для пайки на плату, единственный имеющий цепи контроля и заряда для литий-ионных аккумуляторов. Предназначен для замены модулей sim340DZ, с которым совместим по выводам. Было мнение, что это переходная модель, которая будет сниматься с производства. Но производитель заявил, что это не совсем так. Точнее совсем не так и прекращать выпуск они не планируют.
В основном я буду писать про sim900D, т.к. у меня есть именно он и разница между разными модулями незначительная.
Питание
Для модулей необходимо питание от 3.2 до 4.8В. Номинальное значение 4.0В. Питание заводится на выводы VBAT. Ток потребления сильно зависит от текущего режима работы и может колебаться от 20-30мА до 500мА. При этом также возможны кратковременные скачки до 2-3А, особенно в процессе поиска сети или при приеме/передачи данных. Так что для питания необходимо использовать подходящие блоки питания и не экономить на электролитах. Можно использовать рекомендуемую производителем схему на MIC29302WT.
Так же им необходима дополнительная поддержка для часов реального времени, вывод VRTC. Для нее можно поставить батарейку, ионистор или просто конденсатор с емкостью не меньше 4.7мкФ.
Слева подключение ионистора/конденсатора, справа батарейки.
Важно! Оставлять висеть этот вывод в воздухе нельзя.
Для включения производитель рекомендует следующую схему:
Длительность импульса должна быть не меньше 1с.
Сим-карта
Сим-карта подключается к соответствующим выводам модуля по схеме из даташита. Лучше всего использовать специальные холдеры для монтажа на плату, благо стоят они недорого (~30р). Также что бы модуль понял, что к нему подключили карту нужно посадить на землю вывод sim-present. У модуля sim900D этот вывод совмещен с выводом KBR0. Использовать или нет защитные диоды личное дело каждого, но лучше перестраховаться.
Важно! Все модули работают только с сим-картами на 1.8 или 3В. Одна из ошибок, почему мой модуль по началу не ловил сеть, как раз была в том, что я вставлял свою старую карточку на 5В.
COM порт
В модулях реализован полный набор интерфейсных выводов для подключения по usart. В зависимости от настроек, управление потоком может быть аппаратное с использованием RTS,CTS,DTR,DCD и RI. Так же можно использовать режим без управления, когда используются только RXD и TXD. Программное управление (XON/XOFF) использовать не рекомендуется из-за наличия ошибок в его реализации. Неиспользуемые выводы нужно оставить висеть в воздухе, все необходимые подтяжки уже есть внутри.
Выход RI работает независимо от выбранного режима. В дежурном режиме он находится в «1». При поступлении звонка или наборе номера выход переходит в «0» и остается в нем до поднятия трубки абонентом/модулем или отбоя. При поступлении смс на нем появляется импульс «0» с длительностью 120мс.
Модуль может работать на скоростях от 1200 до 115200. При включении устанавливается режим авто-настройки скорости от 1200 до 57600, 8 бит данных, без четности и 1 стоп битом. Для синхронизации необходимо выждать 2-3с после включения и послать команду «AT» (обязательно большими буквами).
Если скорости одинаковые, то модуль при включении выдаст:
00 49 49 49 49 FF FF FF FF (в шестнадцатеричном режиме)
RDY
+CFUN: 1
Если на карте нет пин кода:
+CPIN: READY
Если пин код установлен
+CPIN: SIM PIN
Для продолжения работы нужно ввести пин: AT+CPIN=pin
Затем выдается:
Call Ready
Модуль готов к работе, хотя сеть может быть еще не найдена.
Важно №1 Основная проблема с использованием заключается в том что максимальное напряжение на них может быть 3.0В и если управляющий контроллер имеет питание больше 3.0В, то необходимо использовать согласующие цепи. Подключать напрямую или ставить только последовательно резистор крайне нежелательно. Есть вероятность спалить вывод или грохнуть прошивку. Я делал обычный резистивный делитель.
Важно №2 Сначала я использовал Terminal V1.9 от Br@y++. С ним почему то все работало э-эм, в общем неправильно. Ответы от модуля приходили не все, команды возвращались просто эхом. Почему не знаю, но помогло использование вместо него putty. Кто сидит под ХР могут использовать встроенную терминалку.
Аудио
Во всех модулях есть как минимум 1 вход микрофона и 1 выход на динамик. В зависимости от модели так же может присутствовать линейный вход и выход звонка. Мне все эти богатства особо не нужны, поэтому приведу только схемы подключения из даташита.
Подключение микрофона:
Подключение динамика:
Дополнительные входы/выходы
Сначала выходы. У модулей два информационных выхода — STATUS, который загорается после включения модуля и NETLIGHT, который мигает в зависимости от состояния сети.
Возможные режимы (Горит/Не горит):
Антенна
Тут все просто. Есть рекомендованная схема согласования, есть значение нужного сопротивления в 50 ом и есть мнение, что при длине проводника от ножки до разъема антенны меньше 2см никаких особых мер по согласованию не требуется. Я выбрал последний вариант:) Но на всякий случай схема согласования:
Результат
И вот что у меня получилось в итоге:
На данный момент модуль умеет звонить, принимать и отправлять смс, читать и писать в сим-карту, делать ussd запросы, читать и писать в файл на ftp сервере.
В архиве схема, плата и компоненты холдера для сим-карты и sim900D. Ссылка на народе для diptrace 2.1
Прошивка
Вот и обещанный бонус — последняя на данный момент прошивка для Sim900, версия B07. Также в архиве лежит B06, сама программа, pdf с инструкцией по прошивке и изменениями. Скачать с народа. Размер 3.86 МБ
Схема для прошивки модуля:
На плюс подключается, если для включения питания используется рекомендованная схема с транзистором
Если для связи с компом используется одна из разновидностей max232, то скорость лучше выбрать 115200. Я шил с такими параметрами:
Для прошивки — выбираем файл, меняем скорость и номер порта, замыкаем кнопку наглухо и жмем старт. В нижнем окне лога будет информация о ходе процесса.
Статья получилось какой-то слишком общей. Зато во второй части воды будет мало, зато будут основные команды управления модулем. На данный момент черновик уже весит в блокноте 12кБ.
we.easyelectronics.ru
SIM900D по сути является законченным устройством, который способен задействовать большинство услуг сотовой связи: совершать и принимать звонки, слать и получать SMS и MMS, использовать GPRS и заходить на FTP. Плюс такие плюшки как встроенный контроллер заряда Li-Ion батарей, часы реального времени, выход ШИМ интерфейс для подключения дисплея и аналогово-цифровой преобразователь (АЦП).
Для начала работы модуля нужно минимум внешних элементов и питание, но обо всем по порядку.
ПИТАНИЕ
Модуль необходимо запитывать постоянноым напряжением в диапазоне 3,2-4,5 вольта. Плюс питания подводится к выводам 38-39 (VBAT). Земля подводится ко всем выводам GND. Потребление в режиме ожидания составляет всего 1мА, но следует учитывать что во время регистрации сети или при плохом сигнале модуль задирает мощность и потребление кратковременно может подниматься до 2 А. Источник питания должен быть готов к этому и электролиты на пару тысяч микрофарад здесь лишними не будут. В апноте на модуль приведена рекомендуемая схема питания на стабилизаторе MIC29302WT:
В случае автономной работы рекомендуется использовать Li-Ion аккумуляторы, которые модуль может сам и подзаряжать. Для этого имеется встроенный контроллер заряда. Чтобы модуль мог контроллировать процесс заряда, имеется вход TEMP_BAT (27 вывод). К этому выводу подключается третий вывод аккумулятора (это вывод встроенного в аккумулятор термистра) и в случае перегрева акка, зарядка будет прекращена.
Источник питания для заряда аккумулятора подключается к выводу VCHG (28 вывод). Напряжение источника может находиться в диапазоне 5-6 Вольт с возможностью тянуть ток до 750 мА. Заряд начинается автоматически при подаче напряжения на вывод VCHG, поэтому в управляющей программе следует организовать опрос состояния батареи и при необходимости подавать напряжение заряда, например, через транзисторный ключ.
ПОДКЛЮЧЕНИЕ SIM-КАРТЫ
Следующим основным элементом является сим карта. Это ключ ко входу в сеть опсоса 🙂 Для работы с модулем необходимы сим карты с напряжением питания 3 или 1,8 вольт (старые пяти вольтовые симки работать не будут). Общая схема подключения ниже.
Подключается она к выводам SIM_x (выводы 6-9). Для того чтобы на выводе SIM_VDD появилось питающее напряжение необходимо прижать вывод KBR0 (вывод 10) к земле. Для защиты линий от статики рекомендуют использовать специальные TVS диоды типа SMF05С. Но их фиг где найдешь, поэтому можно оставить без них, главное поменьше трогать руками эти выводы. А при запайке, если нет паяльной станции, паять отключенным паяльником.
АНТЕННА
Тут вроде все просто, она подключается к выводу 33 (ANT). Желательно использовать специальную антенну GSM диапазона, от ее качества будет зависеть потребляемая мощность передатчика, и как итог – время автономной работы модуля. У меня на отрезок дорожки на плате длиной 7 мм уровень сигнала был 4 из 31, тоесть ловится но очень слабо. Но это при условии что репитер GSM находился на соседнем здании.
Правая часть схемы (обведенная пунктиром) служит для согласования импенданса антенны, если она подключается не напрямую к модулю, а через длинный провод. Номиналы здесь подбираются практически и по специальным приборам, поэтому эту часть схемы можно упустить.
ЧАСЫ РЕАЛЬНОГО ВРЕМЕНИ
В модуле имеется собственный RTC, способный вести время даже при отсутствии основного питания. Для этого к выводу VRTC (вывод 15) должен быть подключен источник резервного питания, например 3-х вольтовая батарейка CR2032 или ионистр. В случае подключения незаряжаемого источника (как простая батарейка) необходимо использовать диод Шоттки, для ограничения обратного тока. Ниже приведены две схемы, слева подключение ионистра; справа – батарейки.
ИНДИКАЦИЯ
Для индикации собственного состояния в процессе работы, у модуля есть несколько выводов для подключения светодиодов. Первый из них вывод NETLIGHT (вывод 41). На этом выводе при работающем модуле появляется меандр, с частотой зависящей от состояния подключения к сотовой сети: во время поиска и регистрации высокий уровень на этом выводе появляется с периодом 800мс, после регистрации сети – с периодом 3 сек. Подключать светодиод к этому выводу можно только через транзисторный ключ:
Для индикации работы модуля есть еще один вывод – STATUS (5 вывод). На нем появляется высокий уровень когда модуль находится в рабочем режиме. Светодиод к этой ноге подключается также как и к выводу NETLIGHT (через NPN транзистор).
Вывод RING (вывод 11) служит для индикации входящих звонков и текстовых сообщений. Этот вывод удобно использовать с внешним прерыванием контроллера, для оперативного реагирования на события. В отличии от двух предыдущих на выводе RING активным уровнем явлется низкий, поэтому если сюда цеплять светодиод, то в качестве ключа нужно использовать PNP транзистор:
ЗАПУСК МОДУЛЯ
Модуль запускается при отрицательном импульсе длинной не менее 1 сек. на ноге PWRKEY (вывод 12). Для подачи импульса рекомендуется использовать следующую схему:
Для открытия транзистора можно использовать кнопку или импульс с микроконтроллера. Если снова подать импульс на эту ногу, то модуль выключится.
АУДИО
У модуля SIM900D имеется по два входа для микрофона и выхода на динамик. Для подключения используются выводы с 18 по 26. Схема согласования ниже.
Подключение микрофона:
Подключение динамика:
Опять же желательно использовать защиту линий от статического электричества.
ШИМ и АЦП и остальные порты I/O
Помимо основных функций, модуль умеет по команде генерировать ШИМ сигнал в диапазоне 200-5000 Гц с разрешением 10 бит. Выход для ШИМ находится на ноге PWM (47 вывод). К нему можно подключить буззер и запрограммировать на проигрывание монофонической мелодии.
Еще одной полезной фишкой модуля является встроенный 10-битный АЦП, способный измерять напряжения до 2,8 В с частотой выборок 200кГц. Вход для преобразователя находится на выводе 29 – ADC0.
Остальные выводы представляют меньший интерес. Например, выводы 13,14,16 являются линией для подключения дисплея по SPI интерфейсу, но стандартная прошивка модуля не позволяет использовать эту функцию. Перепрошивка модуля выполняется через специальную программу, которую можно скачать с офф сайта производителя. Для прошивки модуля используются выводы DBG_RXD (1) и DBG_TXD (2).
И теперь самое главное и интересное – УПРАВЛЕНИЕ. Управление модулем происходит через стандартный UART, посредством AT-команд. Здесь я их описывать не буду, это тема отдельной статьи, скажу лишь что модуль может работать на скоростях от 1200 до 115200 бод. При включении устанавливается режим авто-настройки скорости от 1200 до 57600, 8 бит данных, без четности и 1 стоп битом. Для синхронизации необходимо выждать несколько секунд после включения и послать команду «AT». В ответ модуль отправит «ОК». В дальнейшем можно запрограммировать общение модуля на фиксированной частоте. Для подключения к микроконтроллеру или компьютеру используются выводы RXD (3) и TXD (4). Важным моментом является то, что на этих линиях может быть напряжение не более 3В и если используется контроллер с большим напряжением питания, необходимо использовать согласующие цепи.
Даташит на SIM900D (описание хардверной части)
На этом пока все, немного позже выложу описание платы для этой железки, которая получилась у меня и приведу основные рабочие команды.
shemopedia.ru
Для управления устройством по SMS я купил на Aliexpress GSM модем SIM900A mini v3.4.1.
Документация: SIM900_AT Command Manual_V1.03 SIM900_download procedure_V0.20 SIM900_Hardware Design_V2.00
Оказалось, что этот модем не предназначен для работы в России. Пришлось повозиться. В конце концов мне удалось его перепрошить, так что он заработал.
Процесс перепрошивки описан здесь: http://alex-exe.ru/radio/wireless/gsm-sim900-firmwar-all-in-one/ и здесь http://arduino.ru/forum/apparatnye-voprosy/gsm-sim900a-delaem-iz-dvukh-diapazonov-chetyre.
Я использовал эту прошивку 1137B02SIM900M64_ST_ENHANCE и эту программу для ее загрузки SIM900 Series download Tools Develop 1.9. Подключение для загрузки прошивки:
К сожалению на плате не было возможности легко подключиться к пинам PWRKEY и DEBUG. Они просто не были выведены. К тому же у меня почему-то нужно было пин PWRKEY не на землю сажать, а подавать на него 1. Плату паять не хотелось, поэтому я выкрутился следующим образом: положил под плату магнит от жесткого диска и пины от кабелей прилипли к нужным разъемам. На фотографиях ниже показано, как я это сделал.
oldstream.ru
При решении проблемы с охраной гаража или дачи приходится бороться с двумя проблемами: на чём сделать такую систему, чтобы это было надёжно и вторая проблема ..жаба. Которая вечно душит купить что-то готовое дорогое. Хочется сделать хорошо и недорого. С появлением на рынке СНГ недорогих и надёжных GSM-модулей SIM900(R) жизнь самодельщика сильно облегчилась. У дилеров SIMCOM можно эти модули приобрести за 11-12 долларов, что по карману большинству даже начинающих любителей. Как показывает практика, модули этой фирмы успешно работают даже в наших нелёгких климатических условиях и хорошо себя зарекомендовали. Поэтому на чём делать систему вспомогательной охраны решился быстро в пользу модулей SIM900(R). Получилось минималистическое устройство из модуля, дешёвого микроконтроллера и стабилизатора напряжения. Ничего лишнего. Выглядит это примерно так:
Сперва я сделал автодозвон по мотивам версии этого устройства на модуле SIM300D практически немного подкорректировав программу для лучшей работы с модулем SIM900(R) и вышла вот такая схема:
Но позже появилось желание улучшить устройство, добавив более информативный звук (в первом варианте звук получается с помощью звуков, генерируемых GSM-модулем SIM900(R), изменена схема питания контроллера, добавлен кварц (что позволило повысить стабильность работы при отрицательных температурах). В результате небольших правок получилась вот такая схема:
Файлы плат обеих версий автодозвона, прошивок для микроконтроллеров PIC12F629 и PIC16F684, а также инструкцию по программированию и использованию устройства можно скачать в разделе каталог файлов.
В конструкции можно применять GSM модули SIM900 или SIM900R. Модули SIM900A без переделки на территории стран СНГ работать не будут. Модули SIM900D полностью совместимы программно с SIM900, но имеют другие габариты и распиновку. Поэтому если захотите применить их, то плату надо будет изрядно менять.
Стабилизатор для питания контроллера можно использовать любой совместимый, с напряжением стабилизации от 2,8 до 3в. Например LP2981.
Если при повторении этой конструкции у Вас возникли какие-то вопросы или идеи по улучшению её, напишите мне в онлайн форме свои соображения по этому поводу.
Если Вы авторизуетесь на сайте в качестве пользователя, Вы будете получать уведомления о новых материалах на сайте.
smartelectronix.biz
Важной составляющей автоматизации любого объекта является система мониторинга и контроля. Если управлять объектом на небольших расстояниях (до нескольких сот метров) не вызывает больших проблем — можно использовать индивидуальные маломощные приемо-передатчики. То с мониторингом удаленных объектов такой прием не прокатит, организовать собственный радиоканал, скажем на 100 км, так просто не выйдет. Но тут есть один выход — можно использовать развернутые повсеместно сети сотовых операторов. Для этого есть даже специализированные GSM-модули, прикидывающиеся в сети опсоса простым мобильником. Один из таких GSM-модулей SIM900D попал ко мне в руки (за что спасибо товарищу RD3AVJ), о нем и пойдет речь.
SIM900D по сути является законченным устройством, который способен задействовать большинство услуг сотовой связи: совершать и принимать звонки, слать и получать SMS и MMS, использовать GPRS и заходить на FTP. Плюс такие плюшки как встроенный контроллер заряда Li-Ion батарей, часы реального времени, выход ШИМ интерфейс для подключения дисплея и аналогово-цифровой преобразователь (АЦП).
Для начала работы модуля нужно минимум внешних элементов и питание, но обо всем по порядку.
ПИТАНИЕ
Модуль необходимо запитывать постоянноым напряжением в диапазоне 3,2-4,5 вольта. Плюс питания подводится к выводам 38-39 (VBAT). Земля подводится ко всем выводам GND.
Потребление в режиме ожидания составляет всего 1мА, но следует учитывать что во время регистрации сети или при плохом сигнале модуль задирает мощность и потребление кратковременно может подниматься до 2 А. Источник питания должен быть готов к этому и электролиты на пару тысяч микрофарад здесь лишними не будут.
В апноте на модуль приведена рекомендуемая схема питания на стабилизаторе MIC29302WT:
В случае автономной работы рекомендуется использовать Li-Ion аккумуляторы, которые модуль может сам и подзаряжать. Для этого имеется встроенный контроллер заряда. Чтобы модуль мог контроллировать процесс заряда, имеется вход TEMP_BAT (27 вывод). К этому выводу подключается третий вывод аккумулятора (это вывод встроенного в аккумулятор термистра) и в случае перегрева акка, зарядка будет прекращена.
Источник питания для заряда аккумулятора подключается к выводу VCHG (28 вывод). Напряжение источника может находиться в диапазоне 5-6 Вольт с возможностью тянуть ток до 750 мА.
Заряд начинается автоматически при подаче напряжения на вывод VCHG, поэтому в управляющей программе следует организовать опрос состояния батареи и при необходимости подавать напряжение заряда, например, через транзисторный ключ.
ПОДКЛЮЧЕНИЕ SIM-КАРТЫ
Следующим основным элементом является сим карта. Это ключ ко входу в сеть опсоса 🙂 Для работы с модулем необходимы сим карты с напряжением питания 3 или 1,8 вольт (старые пяти вольтовые симки работать не будут). Общая схема подключения ниже.
Подключается она к выводам SIM_x (выводы 6-9). Для того чтобы на выводе SIM_VDD появилось питающее напряжение необходимо прижать вывод KBR0 (вывод 10) к земле.
Для защиты линий от статики рекомендуют использовать специальные TVS диоды типа SMF05С. Но их фиг где найдешь, поэтому можно оставить без них, главное поменьше трогать руками эти выводы. А при запайке, если нет паяльной станции, паять отключенным паяльником.
АНТЕННА
Тут вроде все просто, она подключается к выводу 33 (ANT). Желательно использовать специальную антенну GSM диапазона, от ее качества будет зависеть потребляемая мощность передатчика, и как итог — время автономной работы модуля. У меня на отрезок дорожки на плате длиной 7 мм уровень сигнала был 4 из 31, тоесть ловится но очень слабо. Но это при условии что репитер GSM находился на соседнем здании.
Правая часть схемы (обведенная пунктиром) служит для согласования импенданса антенны, если она подключается не напрямую к модулю, а через длинный провод. Номиналы здесь подбираются практически и по специальным приборам, поэтому эту часть схемы можно упустить.
ЧАСЫ РЕАЛЬНОГО ВРЕМЕНИ
В модуле имеется собственный RTC, способный вести время даже при отсутствии основного питания. Для этого к выводу VRTC (вывод 15) должен быть подключен источник резервного питания, например 3-х вольтовая батарейка CR2032 или ионистр. В случае подключения незаряжаемого источника (как простая батарейка) необходимо использовать диод Шоттки, для ограничения обратного тока. Ниже приведены две схемы, слева подключение ионистра; справа — батарейки.
ИНДИКАЦИЯ
Для индикации собственного состояния в процессе работы, у модуля есть несколько выводов для подключения светодиодов. Первый из них вывод NETLIGHT (вывод 41). На этом выводе при работающем модуле появляется меандр, с частотой зависящей от состояния подключения к сотовой сети: во время поиска и регистрации высокий уровень на этом выводе появляется с периодом 800мс, после регистрации сети — с периодом 3 сек. Подключать светодиод к этому выводу можно только через транзисторный ключ:
Для индикации работы модуля есть еще один вывод — STATUS (5 вывод). На нем появляется высокий уровень когда модуль находится в рабочем режиме. Светодиод к этой ноге подключается также как и к выводу NETLIGHT (через NPN транзистор).
Вывод RING (вывод 11) служит для индикации входящих звонков и текстовых сообщений. Этот вывод удобно использовать с внешним прерыванием контроллера, для оперативного реагирования на события. В отличии от двух предыдущих на выводе RING активным уровнем явлется низкий, поэтому если сюда цеплять светодиод, то в качестве ключа нужно использовать PNP транзистор:
ЗАПУСК МОДУЛЯ
Модуль запускается при отрицательном импульсе длинной не менее 1 сек. на ноге PWRKEY (вывод 12). Для подачи импульса рекомендуется использовать следующую схему:
Для открытия транзистора можно использовать кнопку или импульс с микроконтроллера. Если снова подать импульс на эту ногу, то модуль выключится.
АУДИО
У модуля SIM900D имеется по два входа для микрофона и выхода на динамик. Для подключения используются выводы с 18 по 26. Схема согласования ниже.
Подключение микрофона:
Подключение динамика:
Опять же желательно использовать защиту линий от статического электричества.
ШИМ и АЦП и остальные порты I/O
Помимо основных функций, модуль умеет по команде генерировать ШИМ сигнал в диапазоне 200-5000 Гц с разрешением 10 бит. Выход для ШИМ находится на ноге PWM (47 вывод). К нему можно подключить буззер и запрограммировать на проигрывание монофонической мелодии.
Еще одной полезной фишкой модуля является встроенный 10-битный АЦП, способный измерять напряжения до 2,8 В с частотой выборок 200кГц. Вход для преобразователя находится на выводе 29 — ADC0.
Остальные выводы представляют меньший интерес. Например, выводы 13,14,16 являются линией для подключения дисплея по SPI интерфейсу, но стандартная прошивка модуля не позволяет использовать эту функцию.
Перепрошивка модуля выполняется через специальную программу, которую можно скачать с офф сайта производителя. Для прошивки модуля используются выводы DBG_RXD (1) и DBG_TXD (2).
И теперь самое главное и интересное — УПРАВЛЕНИЕ. Управление модулем происходит через стандартный UART, посредством AT-команд. Здесь я их описывать не буду, это тема отдельной статьи, скажу лишь что модуль может работать на скоростях от 1200 до 115200 бод. При включении устанавливается режим авто-настройки скорости от 1200 до 57600, 8 бит данных, без четности и 1 стоп битом. Для синхронизации необходимо выждать несколько секунд после включения и послать команду «AT». В ответ модуль отправит «ОК». В дальнейшем можно запрограммировать общение модуля на фиксированной частоте.
Для подключения к микроконтроллеру или компьютеру используются выводы RXD (3) и TXD (4). Важным моментом является то, что на этих линиях может быть напряжение не более 3В и если используется контроллер с большим напряжением питания, необходимо использовать согласующие цепи. На этом пока все, немного позже выложу описание платы для этой железки, которая получилась у меня и приведу основные рабочие команды.
avrproject.ru
AT Команды.
С внешним миром модуль общается посредством AT команд. Пользователи модемов должны их помнить:) Все команды делятся на базовые, большинство из которых появились еще во времена U.S. Robotics, так называемые S-команды, родом оттуда же и расширенных, добавленных в стандартах GSM07.05-07.07. Практически все команды работают в 3 режимах — тестовом, чтения и записи.
В тестовом режиме возвращается OK, если команда поддерживается или возможные значения данных в параметре команды. Тестовый режим определяется окончанием команды в виде ‘=?’
В режиме чтения возвращаются текущие значения параметра, отличается от тестового наличием в конце просто символа ‘?’
И в режиме записи после ‘=’ идут новые значения параметров.
Количество параметров при чтении и записи не обязательно должно совпадать.
Как пример:
AT+CFUN=? тестовый режим, вернет +CFUN: (0,1,4),(0-1), что значит у нее 2 параметра. Первый может принимать значение 0,1 или 4, а второй может быть в интервале 0-1.
AT+CFUN? режим чтения, у меня возвращает +CFUN: 1, все хорошо.
AT+CFUN=4,0 запись, приемо/передатчик выключается без перезагрузки модуля.
Все команды могут вводиться как строчными, так и прописными буквами.
Включение.
При включении модуль должен выдать 00 49 49 49 49 FF FF FF FF в шестнадцатеричном режиме, у меня выдает обычно только последние один-два FF. Ну да ладно, смысловой нагрузки в них нет.
RDY
+CFUN: 1
Где
Управление портом.
Вначале работы необходимо задать режимы работы com порта. Для этого есть несколько основных команд:
AT+IPR=9600 — скорость порта.
Можно выбрать: 0, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
0 — автовыбор. Стоит по умолчанию и для правильной работы первый посылаемый символ должен быть прописной буквой ‘A’.
AT+IFC=0,0 — режим управления потоком в обе стороны.
0, Без контроля.
1, Программный режим (XON/XOFF). Имеются проблемы в использовании, лучше не использовать
2, Аппаратный. Управление через CTS, DTR и т.д.
AT+ICF=3,3 — устанавливает режим передачи.
Первое число — биты данных/четность/стоп биты
Информационные команды.
Тут собраны разнообразные команды, выдающие информацию о самом модуле и его текущем состоянии.
Команды информации о модуле.
AT+GMM — идентификатор модуля.
Вернет: SIMCOM_SIM900D, или какой именно у Вас модуль. Можно убедиться, что не обманули и не подсунули другой, более дорогой модуль.
AT+GOI — более короткий идентификатор модуля.
У меня SIM900D
AT+GMR — версия прошивки. Может пригодится при желании использовать новые фишки.
Мой порадовал меня строкой: Revision:1137B06SIM900D64_ST
После прошивки строка поменялась на: Revision:1137B07SIM900M64_ST
AT+GSV — команда 3-in-1.
Вернет и производителя модуля и его модель и версию прошивки:
SIMCOM_Ltd
SIMCOM_SIM900
Revision:1137B07SIM900M64_ST
AT+GSN — вернет IMEI модуля. Между прочим весьма полезная информация. Можно использовать для идентификации модуля в удаленной программе.
Команды получающие текущее состояние.
AT+CSQ — информация о качестве сигнала.
Вернет два числа +CSQ: 21,0
21, — уровень сигнала. Может быть в диапазоне 0..31 или 99. Чем больше тем лучше, но 99 значит его отсутствие. После прошивки значение почему то изменилось до 27.
0, — так называемый RXQUAL. Изменяется от 0 до 7, чем число меньше тем лучше.
AT+CREG=1 — разрешить выдачу сообщения о смене регистрации в сети.
Может принимать значения 0..2, где
Сервисные команды.
На самом деле эти команды управляют эхом, полнотой информации об ошибке и подобные.
ATE0 режим эха
Команды набора номера.
Все они пришли еще от модемов и ничего нового в них нет.
ATD1234567; — позвонить по номеру
ATD>1; — позвонить по 1 номеру из сим карты
ATDL — позвонить по последнему набранному номеру
В ответ можем получить:
BUSY
NO DIALTONE
NO CARRIER
NA ANSWER
CONNECT
AT+CLIP=1 — архи полезный параметр. Включает режим CLI (Calling Line Identification) или то, что по русски зовется АОН. После его включения при входящем вызове выдает не просто сообщение RING, а еще добавляет строку типа
+CLIP: «+7XXXXXXXXXX»,145,»»,,»»,0 или
+CLIP: «+7XXXXXXXXXX»,145,»»,,«main»,0
Где
СМС.
По умолчанию все сообщения сохраняются на сим карту. При поступлении сообщения придет сообщение:
+CMTI: «SM»,1
1, — номер полученного сообщения.
Настройки режимов приема смс.
AT+CSCA — номер сервис центра отправки сообщений. Берется автоматом из сим карты, но вдруг понадобится. Можно читать и писать. Вот что мне выдал для билайна:
+CSCA: «+79037011111»,145
AT+CMGF — формат сообщений, 0-1.
Теперь как влияет установки значения командой AT+CMGF.
Для CMGF=0
Сообщение с интернет-портала мегафон:
+CMGR: 0,»»,35
07919762020012F10414D0F7FBDDD52E9FC3E6B71B0000114010107565610DD4F29C0E6A97E7F3F0B9EC02
Сообщение с интернет-портала билайн:
+CMGL: 2,1,»»,34
07919730071111F10414D04937BD2C7797E9D3E6140000114010713564610CD4F29C0E6A97E7F3F0B90C
Сообщение с моего основного телефона:
+CMGL: 1,0,«4D31B76E»,31
07919730071111F1040B919760472105F50000114010811095610DD4F29C0E6A97E7F3F0B9EC02
И те же сообщения для CMGF=1
+CMGR: «REC UNREAD»,«www.megafon»,»»,«11/04/01,01:57:56+16»
Test message.
+CMGL: 2,«REC UNREAD»,«InternetSMS»,»»,«11/04/01,17:53:46+16»
Test message
+CMGL: 1,«REC UNREAD»,»+7XXXXXXXXXX»,«Main»,«11/04/01,18:01:59+16»
Test message.
В общем, если не хочется заняться героическим преодолеванием трудностей, то используем CMGF=1 и забываем о существовании русских символом.
USSD запросы.
Для проверки баланса и разных настроек обычно используются ussd запросы. Очень часто запросы начинающиеся со ‘*’ возвращают ответ в юникоде, на родном языке. К счастью, многие телефоны не понимают этой кодировки и для них были введены запросы начинающиеся с ‘#’. Они возвращают ответ в стандартном ascii.
Сделать запрос можно 2 способами.
Первый, используя специальную команду:
AT+CUSD=1,»#102#»
1, — режим обработки ответа
Телефонная книга.
Данные на карте хранятся подобно массивам, с индексами начинающимися с 1. В принципе данные могут храниться не только на сим-карте, но и в других местах, например в памяти телефона. Но в данном случае эти знания нам не особо актуальны:)
AT+CPBS=«SM» — выбрать как основную память сим-карту. Данный режим стоит по умолчанию.
AT+CPBS? — сообщит тип памяти, количество имеющихся записей и их максимальное количество. Например:
+CPBS: «SM»,3,250 значит, что на сим-карте есть 3 записи из 250 возможных.
Чтение данных.
AT+CPBR=1 — считывает запись с индексом 1.
AT+CPBR=2,5 — считать записи со 2-о по 5-ю.
AT+CPBF=«что ищем» — поиск информации. У меня работало очень нестабильно. Мог найти запись, а мог и нет. Отчего это зависит не очень понятно. На версии B07 поиск стал гораздо стабильней.
AT+CPBF — выдача всех записей на карте.
В любом случае информация идет в виде:
+CPBF: (или +CPBR) 2,»+7ХХХХХХХХХХ»,145,«Home», где
2, — номер (индекс) записи.
+7ХХХХХХХХХХ», — номер.
145, — формат имени.
Используя эти команды вполне можно организовать несложное управление обогревателем на даче или то же не менее простую охранную сигнализацию для нее же. Для более сложных задач лучше использовать сетевые возможности модуля.
Сеть.
Модуль содержит два блока — APPTCP, через который идет работа с TCP/UDP и блока SAPBR, работающий с FTP/HTTP. В принципе общение с ними весьма простое, для примера приведу общение по ftp. Общение по http будет в другой статье, с уже с готовым устройством и реальной задачей.
GPRS.
Настройка и установка GPRS соединения:
AT+SAPBR=3,1,«CONTYPE»,«GPRS»
AT+SAPBR=3,1,«APN»,«internet.beeline.ru»
AT+SAPBR=3,1,«USER»,«beeline»
AT+SAPBR=3,1,«PWD»,«beeline»
AT+SAPBR=1,1 — установка GPRS связи
AT+SAPBR=2,1 — полученный IP адрес
+SAPBR: 1,1,«10.229.9.115»
AT+SAPBR=4,1 — текущие настройки соединения
AT+SAPBR=0,1 — разорвать GPRS соединение
FTP.
Параметры ftp соединения
AT+FTPSERV=«ftp.site.ru» — адрес ftp сервера
AT+FTPUN=«login» — логин
AT+FTPPW=«password» — пароль
AT+FTPPUTPATH=»/» — путь
AT+FTPPUTNAME=«test.txt» — имя файла
AT+FTPMODE=1 — режим работы ftp
Для чтения все практически аналогично, только PUT меняется на GET. Так AT+FTPPUTPATH становится AT+FTPGETPATH.
AT+FTPGET=1 — открытие ftp соединения.
+FTPGET:1,1 — данные для чтения доступны.
AT+FTPGET=2,10 — чтение 10 байт данных. Если данных меньше, то вернется сколько есть.
+FTPGET:2,10 — сколько данных будет для считывания.
Повторное чтение, если указатель стоит на конце файла вернет +FTPGET:2,0.
AT+FTPGET:2,0 — закрытие ftp соединения.
Я не привел и половины имеющихся команд, например команд управления чувствительностью микрофона, генерации сигналов dtmf или измерения напряжения на AC0. Я ими не пользовался, а в тупую переводить даташит не хочется. Так же многие команды дублируются аналогичными. Все они есть в мануалах.
we.easyelectronics.ru