Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SIM800 зависает после ответа ERROR
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
ДЕЙЛ
Всем привет. После поиска причины зависания данного модуля удалось добиться повторяемости ситуации.
Последовательность такая:
1. Инициализация модуля
2. Активация GPRS,

следующие два действия выполняются в цикле:
3. Передача данных на сервер (100-200 байт раз в полминуты)
4. В течение всего оставшегося времени отправка АТ-команд без задержек (запрос статусов, температуры, напряжения питания)

Если между АТ-командами запроса статусов делать задержку 200-300 мс, то ничего не зависает, а если без задержек, то после какой-нибудь команды приходит ответ ERROR, после чего отправляю следующую команду и тут модуль уходит в себя, отказываясь совсем отвечать до перезапуска.

АТ-команды отправлял по отдельности и все вместе, как на скрине. Эффект один и тот же. Что нужно делать после ответа ERROR, не прибегая к перезапуску? Какую команду отправить? Пнуть модуль можно только программно по UART.

smalcom
Цитата
- Доктор, когда я делаю вот так, то у меня вотздесь хрустит.
- Ну, не делайте так.
ДЕЙЛ
Ситуацию сгустил для наглядности, в реальности так не делаю, но приходится перезапускать модуль 2-3 раза в сутки. Догадываюсь, что модуль зависает именно после ответа ERROR тёмной ночью, когда никто не видит, чем занят МК.
Alechek
Цитата(ДЕЙЛ @ Nov 23 2016, 18:03) *
Если между АТ-командами запроса статусов делать задержку 200-300 мс, то ничего не зависает, а если без задержек, то после какой-нибудь команды приходит ответ ERROR, после чего отправляю следующую команду и тут модуль уходит в себя, отказываясь совсем отвечать до перезапуска.

Очень интересно!
А вот "отказывается отвечать" это как? Только на эту команду? Или последующие повторы? На скрине только одна команда.
Парсер АТ внутри модема очень странный. Может, подвисает, после ERROR и некоторое время не воспринимает вход....
Hub
лог обмена с модулем по УАРТ фстудию
ДЕЙЛ
После ERROR не отвечает ни на одну команду, даже если подождать 30-60 секунд. Только перезапуск помогает. Лог весь на скрине, дальше только безуспешные попытки отправить разные команды, на которые абсолютно никакого ответа нет.
Alechek
Цитата(ДЕЙЛ @ Nov 24 2016, 11:52) *
После ERROR не отвечает ни на одну команду, даже если подождать 30-60 секунд. Только перезапуск помогает. Лог весь на скрине, дальше только безуспешные попытки отправить разные команды, на которые абсолютно никакого ответа нет.

Модуль не вырубается случаем? Нога STATUS на модуле в 1?
Модуль вообще откуда, какой? Прошивка какая? Мож там EAT какое-нидь крутится дополнительно.
ДЕЙЛ
Цитата(Alechek @ Nov 24 2016, 10:03) *
Модуль не вырубается случаем? Нога STATUS на модуле в 1?
Модуль вообще откуда, какой? Прошивка какая? Мож там EAT какое-нидь крутится дополнительно.


на ноге status единица, версия прошивки на скрине (1418B02SIM800C32_BT). Светодиод статуса связи продолжает моргать без изменения частоты, но при попытке позвонить с телефона на номер симки в модеме оператор говорит, что абонент не в сети.
CADiLO
>>>> 1418B02SIM800C32_BT

1. Для начала обновиться до 1418B04SIM800C32_BT или 1418B05SIM800C32_BT_EAT

2. не пользоваться пулеметными лентами команд. дали одну команду, дождались ответа и только потом следующую

>>> но при попытке позвонить с телефона на номер симки в модеме оператор говорит, что абонент не в сети.

Карточка не отваливается? Очень похоже. Модуль имеет шанс подвиснуть в GSM стеке если симка отвалилась во время обмена.
ДЕЙЛ
Обновить удалённо нет возможности, следующая команда отправляется строго после приёма ответа на предыдущую. Карточка не отваливается, т.к. после перезапуска модуля программой прибор успешно выходит на связь с сервером без физического воздействия с моей стороны. Даже если бы отвалилась SIM-карта, то какие-нибудь ответы на команды модуль давал бы. Пока от зависаний помогает способ применения задержки перед отправкой следующей команды после ответа на предыдущую.


Хотя с задержками всё же завис, но не через три минуты, а почти через час. Т.е. в обычном режиме таких зависаний должно быть не 3-4 в сутки, а раз в неделю предположительно.
ArtemKAD
Цитата(ДЕЙЛ @ Nov 24 2016, 13:55) *
Карточка не отваливается, т.к. после перезапуска модуля программой прибор успешно выходит на связь с сервером без физического воздействия с моей стороны.

Отваливается в результате появления на её цепях питания наводок вызванных протеканием по массе платы импульсов собственного потребления модуля.
lolful
Цитата(ДЕЙЛ @ Nov 24 2016, 17:55) *
Обновить удалённо нет возможности, следующая команда отправляется строго после приёма ответа на предыдущую. Карточка не отваливается, т.к. после перезапуска модуля программой прибор успешно выходит на связь с сервером без физического воздействия с моей стороны. Даже если бы отвалилась SIM-карта, то какие-нибудь ответы на команды модуль давал бы. Пока от зависаний помогает способ применения задержки перед отправкой следующей команды после ответа на предыдущую.


Хотя с задержками всё же завис, но не через три минуты, а почти через час. Т.е. в обычном режиме таких зависаний должно быть не 3-4 в сутки, а раз в неделю предположительно.

На сколько помню, SIMCOM в последних версиях прошивок исправил много багов, приводящих к перезагрузке модуля. Например, при переходе в роуминг. Так что, попробовать обновить точно стоит.
Еще такое предположение: может быть неправильно разведен UART (без согласования уровней). Из-за чего его переглючивает (у меня модуль SIM5300 вообще перезагружался из-за того, что на DTR случайно, через подтяжку в микроконтроллере, подавалось 3В).
Как реализовано управление энергопотреблением модуля? Используется ли сон?

И лог инициализации модуля фстудию, пожалуйста.
ДЕЙЛ
На данный момент сон не используется, инициализация на скрине
CADiLO
>>>Обновить удалённо нет возможности

А прийдется. Так как уже в B03 было несколько исправлений для - Fixed the bug that UART will be blocked.
Потому всегда и всем говорю - предусматривайте в изделиях возможность обновить софт модуля.
Хоть через Ж, но это должно быть предусмотренно.
ДЕЙЛ
Цитата(CADiLO @ Nov 28 2016, 16:37) *
>>>Обновить удалённо нет возможности

А прийдется. Так как уже в B03 было несколько исправлений для - Fixed the bug that UART will be blocked.
Потому всегда и всем говорю - предусматривайте в изделиях возможность обновить софт модуля.
Хоть через Ж, но это должно быть предусмотренно.

Мы не ищем лёгких путей.
Где можно почитать про баги и исправления? Т.е. поподробнее про это Fixed the bug that UART will be blocked

CADiLO
Пишете по месту приобретения модуля или своему локальному дистрибьютору и просите предоставить релизнотес на фирмваре модуля.
Там описаны все изменения в версиях.
Alechek
Интересно, а для 800C-DS какая последняя версия прошивки?
Это баг или фитча "подвисать" и не отвечать некоторое время?
Код
> Включение модуля
16:14:10.817> <0>AT+CALS=8;+CRSL=100;+CALM=0;+CHFA=2;+CLVL=90;+CMIC=2,0;+SIDET=2,0
16:14:10.879>
16:14:10.879> ERROR
16:14:11.692>
16:14:11.692> +CPINDS: READY
16:14:12.129> AT+CALS=8;+CRSL=100;+CALM=0;+CHFA=2;+CLVL=90;+CMIC=2,0;+SIDET=2,0
16:14:12.879>
16:14:12.879> +CPIN: READY
16:14:12.879>
16:14:12.879> OK
16:14:13.504> AT+CALS=8;+CRSL=100;+CALM=0;+CHFA=2;+CLVL=90;+CMIC=2,0;+SIDET=2,0
16:14:14.067>
16:14:14.067> OK
16:14:14.754> AT+CALS=8;+CRSL=100;+CALM=0;+CHFA=2;+CLVL=90;+CMIC=2,0;+SIDET=2,0
16:14:14.942>
16:14:14.942> Call Ready DS
16:14:15.192>
16:14:15.192> OK
16:14:16.067> AT+CALS=8;+CRSL=100;+CALM=0;+CHFA=2;+CLVL=90;+CMIC=2,0;+SIDET=2,0
16:14:22.692>
16:14:22.692> Call Ready
16:14:25.067>
16:14:25.067> SMS Ready
16:14:25.067>
16:14:25.067> SMS Ready DS
16:14:33.067> AT+CALS=8;+CRSL=100;+CALM=0;+CHFA=2;+CLVL=90;+CMIC=2,0;+SIDET=2,0
16:14:33.067>
16:14:33.067> OK

Почему нет ответа на 16:14:16.067?
Ни один из этих параметров не связан с работой SIM, они общие для модуля.
CADiLO
Команда посланая до окончания инициализации может быть отменена или проигнорирована.
Особенно если она операторозависимая или касается настройки DSP.
И это кстати не симкомовский прикол, так работает RTOS MTK.
Я понимаю что предупреждение об этом взятое с китайского форума ( документ - "реверс-инженеринг устройств на мтк чипсетах") отсутствует у SIMCOM.
Но и SIMCOM расчитывает на здравомыслие пользователей и что до готовности модуля его не будут шпынять командами

В целом простой алгоритм определения готовности

Получаем OK на AT - порт включился
Получаем CREG 0,1 - модуль в сети - если не в сети, то смотрим с каким ответом CREG, уровень CSQ и не забыли ли ввести PIN
Когда модуль в сети - запрашиваем симку - прочесть любую ячейку - когда будет не ERROR, то и симка готова.
И вот только после этого - уже делаем все остальные настройки..... И т.д.....
Уже неоднократно говорилось - все спешилки на усмотрение пользователя, я такие логи вообще не рассматриваю пока не будет логически объяснимой инициализации.


По прошивке для SIM800C-DS. Официально крайняя S2-1068B-Z1L0Z 1352B03SIM800C-DS32, была опубликована в партлисте от 2016_10_19
Но в последних двух партлистах этого модуля почему-то нет.
Так как мы его вообще не поставляем, то и не отслеживаю....

Alechek
Цитата(CADiLO @ Nov 30 2016, 19:27) *
Команда посланая до окончания инициализации может быть отменена или проигнорирована.
Особенно если она операторозависимая или касается настройки DSP.
И это кстати не симкомовский прикол, так работает RTOS MTK.
Я понимаю что предупреждение об этом взятое с китайского форума ( документ - "реверс-инженеринг устройств на мтк чипсетах") отсутствует у SIMCOM.
Но и SIMCOM расчитывает на здравомыслие пользователей и что до готовности модуля его не будут шпынять командами

Вот по этому я и мягко говоря не люблю MTK. "Приколов" у него много. Но он берет ценой....

Я вполне здраво мыслю (в отличие от МТК с Симкомом, которые расчитывают на "тепличные" условия). И, вроде, не много прошу - способ определить готовность МОДУЛЯ. Не МОДЕМА в целом, а именно как МОДУЛЯ. Ведь сеть же можно сканировать без симки, да? Так когда можно начать?

Ладно, есть у меня симка. Даже две! И что мне ждать? Регистрации по всем 2м? Инициалиации всех 2-х? Так одна может быть полудохлой. А работать надо!
Опять таки, регистрации в сети ждать? Так когда будет регистрация, я уже буду ждать URC +CREG в расширенном виде! Когда настраивать?
В общем, ищу способ узнать, когда же можно начинать настраивать МОДУЛЬ.

Эдуард, подскажите, пожалуйста, китайские форумы, может там мне помогут.
CADiLO
Подскажу, мне не жалко.
В основном вот тут уже очень давно "рыбачу" - http://bbs.52rd.com/forum.php
Ну и поиск в Baidu вместо гугля - все таки гугль по китайскому сегменту практически не ищет.
Alechek
http://bbs.52rd.com/forum.php
Мда, Великий Щит - штука двунаправленная... С такой скоростью мне быстрей МТ ответит...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.