Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SIM900R перестает отвечать во время соединения с GPRS
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
mich.bil
Добрый день!

SIM900R внезапно начал замолкать при попытке установления GPRS соединения, хотя до этого работал нормально. Когда модуль не отвечает, светодиоды STATUS и NETLIGHT работают штатно, после перезагрузки модуль успешно соединяется с GPRS и начинает обмен данными. Модуль замолкает после комманды AT+CSTT

Напряжение питания GSM 4.0В, питание микроконтроллера 2.9В.

Помогите разобраться, где у меня косяк, лог прилагаю.
zebrox
Тоже заметил подобное поведение, правда на обычном сим900.
Иногда происходит уже в процессе обмена, а иногда в процессе установки жпрс сессии/подключения.
Фантомную запитку не нашел.
Помогает перезагрузка с выключением питания.
CADiLO
Нигде последовательность команд не перепутали?

У меня на тестовом скрипте из апнотеса таких проблем нет.

И еще - при проблеме с командами, пожалуйста называйте версию фирмваре.
mich.bil
Версия:
1137B01SIM900R64_ST_ENHANCE_EAT

Убрал проверку счета при загрузке, и система начала стартовать с каждого раза... возвращаю проверку - начинает виснуть... Какие особенности могут быть, связанные с USSD запросом?
dac
QUOTE (mich.bil @ Sep 22 2014, 16:00) *
SIM900R внезапно начал замолкать при попытке установления GPRS соединения

попробуйте паузы между командами увеличить. был такой прикол, если слишком короткая пауза - менее 0,6с, или отправить следующий запрос до получения ответа или заданного интервала, который может быть до 60с на некторые команды, зависает наглухо. решил таким образом - пауза после получения ответа до следующей команды - 0,5с, время на ожидание ответа обычное 5с, и до 60с на отдельные команды.
CADiLO
Да, такое возможно. До получения ответа следующую команду лучше не давать - есть случаи когда последующая отменяет предыдущую, а OS модуля путается в ответах.
Это происходит когда обе команды - "операторозависимые" - особенность стека GSM.
mich.bil
Проблема именно с проверкой счета. Какую задержку надо ставить после получения USSD ответа?

Когда я удаляю 2 последние строчки, система начинает запускаться абсолютно нормально.

Serial->println("Forcing echo off");
gsm.SendATCmdWaitResp("ATE0", 500, 50, "OK", 5);
delay(1000);
gsm.SendCmdWaitSTR("ATD*111#",13000);
delay(10000);

Поднял задержку после получения USSD до 20 секунд, стало гораздо лучше....
dac
QUOTE (mich.bil @ Sep 22 2014, 17:01) *
Поднял задержку после получения USSD до 20 секунд, стало гораздо лучше....
лучше увеличьте время ожидания ответа до 60с, а задержку ПОСЛЕ получения ответа достаточно 1с.
хотя могу ошибаться, я проверкой баланса не интересовался
andrewlekar
Попробуйте USSD запрос через AT+CUSSD выполнять.
-dizel-
Возможно стоит не здесь вопрос задать, но похожая проблема.
Модуль WS6318. Обмен по UART. Шлю команду "АТ", принимаю ответ "ОК" и сразу же шлю следующую команду не делая паузы, её уже не принимает, терминал показывает идёт передача с ошибками. Если поставить паузу 2мс между приёмом и следующей передачей - всё корректно. Подскажите как обычно это решается какую паузу делают или есть другие варианты. В документации на модуль не нашёл рекомендаций как правильно работать по UART.
rx3apf
Нечто подобное было и с SIM900 - судя по всему, это проблемы автодетекта скорости. Попробуйте запретить автодетект, зафиксировав скорость обмена с модулем.
-dizel-
Дело в том, что автодетект не используется, скорсть задана вручную 115200.
Romashki
Я использую такую строку для проверки счета "AT+CUSD=1,\"*111#\",15\r"
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.