Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SIM800C не отвечает на команды
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
stepper88
Добрый день!
Возникла такая проблема - достаточно давно не делали никаких устройств с GSM/GPRS-модулями, а тут понадобилось снова. Решили взять SIM800C, как дешевый и экономичный. В статьях писали о приемственности с более ранними SIM900, так что, решили использовать старую обвзязку, проверенную еще во времена Quectel M10 (тем более, что было указано напряжение питания модуля примерно такое же)
Собрали схему. Написал программу инициализации:
Код
GPIOA->ODR                |=0x0802;                                    //Power on for GSM and set POWERKEY
os_dly_wait(500);
GPIOA->ODR                &=~0x1000;                                //Reset RTS
GPIOB->ODR                &=~0x0080;                                //Reset DTR
GPIOA->ODR                &=~(1<<11);                                //Reset POWERKEY
os_dly_wait(1000);
GPIOA->ODR                |=(1<<11);                                //Set POWERKEY
while (GPIOB->IDR    &0x20);
send_string_buff3("AT\r");

Реализуется такой алгоритм:
1. Включаем питание модема и устанавливаем на входе PowerKey логическую единицу
2. Ждем 500 мс
3. Сбрасываем PowerKey, DTR и RTS в нуль
4. Ждем 1с
5. Устанавливаем PowerKey в единицу
6. Ждем установку логической единицы на линии Status (на схеме стоит буферный инвертор на транзисторе, поэтому ждем, когда на нужном входе будет нуль)
7. Отправляем команду "AT"
Модем устанавливает на выходе Status логическую единицу, но не откликается на команду AT - от модуля не поступает никаких сигналов и UART не принимает никаких байтов - даже мусора.
Пробовал различные скорости - более-менее стандартные 115200 и 9600, так 19200 - до кучи - ответа нет.
Может ли это быть связано с тем, что на модуль подаются сигналы без делителей - 3,3В? Может быть, UART модуля пожгли?
Манипуляции с RTS и DTR, доставшиеся в наследство со времен SIM300 убирал, но разницы не было.
Для управления используется микроконтроллер STM32F151C6
Модем: SIM800C S2-10688-Z1L1J
Заранее спасибо за ответы.
jcxz
Цитата(stepper88 @ Apr 25 2018, 11:13) *
Заранее спасибо за ответы.

Вы бы его к компу подключили через USB-UART-переходник и посмотрели сами что происходит.
Естественно уровни нужно согласовывать.
CADiLO
>>>Может ли это быть связано с тем, что на модуль подаются сигналы без делителей - 3,3В?

А если не гадать, а прочесть даташит на модуль где сказано что максимальный уровень логической единицы 3.0 вольта.

И ключик на поверкее стоит?

DTR и RTS нафига трогать?
stepper88
Добрый день!
Прошу прощения за такое долго молчание - переделали плату со схемой сопряжения из даташита. В том числе - вместо преобразователя уровня (а был именно он) на PowerKey посадили транзистор. Модем завелся, отвечает на команды, но возникла такая проблема - последнее время не всегда приходит Call Ready - на двух сим-картах Мегафон и Билайн, причем раньше проходило нормально. С третьей Билайн приходит Call Ready, но уровень сигнала в ответе на команду AT+CSQ нулевой.
Еще одна проблема - после примерно трех-пяти секунд перерыва модем перестает отвечать на команды даже эхо. При этом на запрос настроек спящего режима AT+CSCLK? выдает нуль. Это нормальное поведение модема или где-то еще можно посмотреть среди настроек?
Порядок настройки:
Код
После передергивания PowerKey
МК: AT\r
SIM800:
AT\r\n
RDY
+CFUN: 1
+CPIN: READY
Call Ready (не всегда, в чем и проблема)
SMS Ready (тоже не всегда, даже, если от модема удалось получить Call Ready)
МК: AT+CMGD=1
SIM800: OK
МК: AT+CPIN=?
SIM800: +CPIN: READY
MK: AT+CSQ

Вот тут в случае получения нулевого результата (+CSQ: 0,0) через 2-3 с ожидания отправляю AT, на которую не всегда откликается и не всегда выдает эхо
P.S. С помощью этой симки и этого модема удавалось подключаться к серверу через встроенный TCP/IP стек. Плату передвигали, но не хватали..
CADiLO
Схему включения и версию прошивки - в студию.
stepper88
Схема включения

А вот насчет версии прошивки - можете просветить темного, как ее можно глянуть?
Сам модем SIM800C S2-10688-Z1L1J - прошивку родную не меняли
CADiLO
Для начала ответьте себе на два вопроса.

С чего вы решили что на V_EXT можно ставить конденсатор?
Почему не стоит конденсатор на VRTC ?


Call Ready - может не выдаваться если стоит автодетект скорости UART - настоятельно рекомендуется выключить автодетект и навсегда поставить фиксированную скорость.
Часть глюков на фиксированой скорости исчезнут сами.

Дополню - посмотрите состояния DTR - есть предположение что модуль засыпает.
И потом перед выходом из сна есть задержка на восприятие команд

Вобщем кроме даташита читаем и апнотесы
stepper88
Насчет фиксированной скорости - большое спасибо - настрою.
DTR во время инициализации подаю нуль и не снимаю - по крайней мере, осциллографом там логическую единицу не увидели. Плюс отправлял команду AT+CSCLK? - вернула нуль. Но еще глянем.
Насчет конденсаторов - еще раз внимательно посмотрю схему
Посмотрел: решили, что это для часов реального времени и нам не понадобится или же всегда надо?
Огромное спасибо за помощь
P.S. А из-за чего может упасть уровень сигнала, измеряемый по AT+CSQ?
Harbinger
VD1 - лишний. При выходе модуля в передачу ему станет плохо.
wenso
Цитата(stepper88 @ Jun 15 2018, 14:09) *
Посмотрел: решили, что это для часов реального времени и нам не понадобится или же всегда надо?

Рекомендация в SIM800C_Hardware_Design стр.14.
VRTC. It is recommended to connect with a battery or a capacitor (e.g. 4.7uF).
Схема подключения в 4.4. Power Saving Mode.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.