|
SIM900R перестает отвечать во время соединения с GPRS |
|
|
|
Sep 22 2014, 10:00
|
Группа: Участник
Сообщений: 13
Регистрация: 12-09-08
Из: Украина, Херсон
Пользователь №: 40 146

|
Добрый день! SIM900R внезапно начал замолкать при попытке установления GPRS соединения, хотя до этого работал нормально. Когда модуль не отвечает, светодиоды STATUS и NETLIGHT работают штатно, после перезагрузки модуль успешно соединяется с GPRS и начинает обмен данными. Модуль замолкает после комманды AT+CSTT Напряжение питания GSM 4.0В, питание микроконтроллера 2.9В. Помогите разобраться, где у меня косяк, лог прилагаю.
Сообщение отредактировал mich.bil - Sep 22 2014, 10:02
Эскизы прикрепленных изображений
|
|
|
|
|
 |
Ответов
(1 - 12)
|
Sep 22 2014, 10:45
|
Группа: Участник
Сообщений: 13
Регистрация: 12-09-08
Из: Украина, Херсон
Пользователь №: 40 146

|
Версия: 1137B01SIM900R64_ST_ENHANCE_EAT
Убрал проверку счета при загрузке, и система начала стартовать с каждого раза... возвращаю проверку - начинает виснуть... Какие особенности могут быть, связанные с USSD запросом?
|
|
|
|
|
Sep 22 2014, 10:46
|
Знающий
   
Группа: Свой
Сообщений: 600
Регистрация: 27-05-05
Пользователь №: 5 482

|
QUOTE (mich.bil @ Sep 22 2014, 16:00)  SIM900R внезапно начал замолкать при попытке установления GPRS соединения попробуйте паузы между командами увеличить. был такой прикол, если слишком короткая пауза - менее 0,6с, или отправить следующий запрос до получения ответа или заданного интервала, который может быть до 60с на некторые команды, зависает наглухо. решил таким образом - пауза после получения ответа до следующей команды - 0,5с, время на ожидание ответа обычное 5с, и до 60с на отдельные команды.
|
|
|
|
|
Sep 22 2014, 11:01
|
Группа: Участник
Сообщений: 13
Регистрация: 12-09-08
Из: Украина, Херсон
Пользователь №: 40 146

|
Проблема именно с проверкой счета. Какую задержку надо ставить после получения 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 секунд, стало гораздо лучше....
|
|
|
|
|
Sep 22 2014, 15:38
|
Знающий
   
Группа: Свой
Сообщений: 600
Регистрация: 27-05-05
Пользователь №: 5 482

|
QUOTE (mich.bil @ Sep 22 2014, 17:01)  Поднял задержку после получения USSD до 20 секунд, стало гораздо лучше.... лучше увеличьте время ожидания ответа до 60с, а задержку ПОСЛЕ получения ответа достаточно 1с. хотя могу ошибаться, я проверкой баланса не интересовался
|
|
|
|
|
Nov 21 2014, 15:33
|
Группа: Участник
Сообщений: 10
Регистрация: 22-05-13
Пользователь №: 76 941

|
Возможно стоит не здесь вопрос задать, но похожая проблема. Модуль WS6318. Обмен по UART. Шлю команду "АТ", принимаю ответ "ОК" и сразу же шлю следующую команду не делая паузы, её уже не принимает, терминал показывает идёт передача с ошибками. Если поставить паузу 2мс между приёмом и следующей передачей - всё корректно. Подскажите как обычно это решается какую паузу делают или есть другие варианты. В документации на модуль не нашёл рекомендаций как правильно работать по UART.
|
|
|
|
|
Nov 24 2014, 07:24
|
Группа: Участник
Сообщений: 10
Регистрация: 22-05-13
Пользователь №: 76 941

|
Дело в том, что автодетект не используется, скорсть задана вручную 115200.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|