реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> SIM900: если модуль завис, Как определить что модуль завис
Ildar Belkin
сообщение Oct 16 2011, 11:41
Сообщение #16


Частый гость
**

Группа: Участник
Сообщений: 134
Регистрация: 12-08-11
Пользователь №: 66 701



Цитата(MKdemiurg @ Oct 16 2011, 14:40) *
Используйте аппаратный таймер... Если в течении 5-6 секунд не пришёл ОК - ребут модема или повторение запроса( хотя если документированый ОК не пришёл - то это точно висяк и спасёт только ребут). Я так делаю. На каждую команду 5 сек ожидаение ОК( на самом деле приходит моментально и таймер останавливается - но вдруг). CREG? CGREG - делаю опрос с интервалом 2 секунды до 20 раз пока не приходит +CREG: 0,1 . Превышен лимит опроса - ребут модема. Вообщем в любом случае отловите зависон. Т.е. идеально на каждую команду проверка ответа - тогда висяки не страшны. Ну и ограничить кол-во перезагрузок 2-3 штуки.


Спасибо, логика понятна. Сейчас правил код - сделал не через аппаратный таймер, а через декремент двухбайтовой переменной в процедуре ожидания от модема ОК. Рассчитал двухбайтовое значение - сколько будет до "0" через 3 сек, вношу перед посылкой АТ, затем запускаю процедуру чтения в цикле приемного буфера с уменьшением двухбайтовой переменной. Выход из процедуры с флажком= 1, если ОК- дождадись, флажок=0 если двухбайтовая переменная обнулилась, до поступления ОК.
Дальше рестарт модему, если флажок=0
Проверил - так работает.

С аппаратным таймером у меня не получится в данном проекте сделать, так как его обнуление нужно отлавливать через прерывание, а у меня они уже задействованы спец. образом. На момент работы с модемом - отключены. Но я уже прикинул как сделаю в след. проекте на аппаратном таймере.
Go to the top of the page
 
+Quote Post
Konstantin Ilich...
сообщение Oct 16 2011, 20:09
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 7-12-06
Пользователь №: 23 250



Цитата(GeGeL @ Oct 16 2011, 10:06) *
В этих 8 из 10 случаев регистрация в сети появляется, но жпрс не поднимается? Или нет и регистрации? Если последнее, то возможно, есть недокументированные команды из расширенного инженерного меню, позволяющие принудительно перерегистрировать в сети по IMEI (получить новый TIMSI). Тогда нет необходимости дергать питание. Уточните у Эдуарда.

В 8 из 10 случаев CREG неизменно выдает 0,1, а CGREG выдает 0,0, на команду AT+CGATT=1 получаю ответ ERROR. То есть регистрация есть, а GPRS нет. При этом если ребутнуть модем - появляется и GPRS тоже. Вот мне бы как раз команду принудительной разрегистрации или повторной регистрации в сети. Это бы могло помочь.
Go to the top of the page
 
+Quote Post
Aurochs
сообщение Oct 16 2011, 21:05
Сообщение #18


Ортодокс
***

Группа: Свой
Сообщений: 219
Регистрация: 26-10-07
Из: Смела, Украина
Пользователь №: 31 775



Цитата(Konstantin Ilichev @ Oct 16 2011, 23:09) *
Вот мне бы как раз команду принудительной разрегистрации или повторной регистрации в сети. Это бы могло помочь.

См. AT+COPS
Go to the top of the page
 
+Quote Post
xMw
сообщение Oct 17 2011, 08:16
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 19-04-07
Пользователь №: 27 182



Цитата(Konstantin Ilichev @ Oct 16 2011, 22:09) *
В 8 из 10 случаев CREG неизменно выдает 0,1, а CGREG выдает 0,0, на команду AT+CGATT=1 получаю ответ ERROR. То есть регистрация есть, а GPRS нет. При этом если ребутнуть модем - появляется и GPRS тоже. Вот мне бы как раз команду принудительной разрегистрации или повторной регистрации в сети. Это бы могло помочь.



А после того как приходит PDP DEACT AT+CIPSHUT делаете?
Go to the top of the page
 
+Quote Post
Konstantin Ilich...
сообщение Oct 17 2011, 09:19
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 7-12-06
Пользователь №: 23 250



Цитата(Aurochs @ Oct 17 2011, 01:05) *
См. AT+COPS

Пробовал AT+COPS=1,0,"Beeline", и еще AT+COPS=4,0,"Beeline". Никак не реагирует, на AT+COPS? выдает 0 (автоматический режим).

Цитата(xMw @ Oct 17 2011, 12:16) *
А после того как приходит PDP DEACT AT+CIPSHUT делаете?

По приходу PDP DEACT ничего не делаю вообще.

AT+CIPSHUT делаю в двух случаях:
1) при подключении GPRS, если на AT+CIPSTATUS отвечает не INITIAL;
2) при установлении TCP-соединения, если на AT+CIPSTATUS отвечает не INITIAL, не STATUS и не CLOSED.
Всё по даташиту.
Go to the top of the page
 
+Quote Post
MKdemiurg
сообщение Oct 17 2011, 10:24
Сообщение #21


Знающий
****

Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939



Хм...а если не проверять cipstatus? Я вот проверяю CGREG, CGATT и если на CIICR приходит PDP DEACT - делаю рестарт. Просто что конкретно даст AT+CIPSTATUS в плане проверки ?

Сообщение отредактировал MKdemiurg - Oct 17 2011, 10:25
Go to the top of the page
 
+Quote Post
KAlex
сообщение Oct 17 2011, 10:26
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719



Цитата(Konstantin Ilichev @ Oct 17 2011, 13:19) *
По приходу PDP DEACT ничего не делаю вообще.


Ну и зря.
Делаем cipshut и открываем сессию заново. Как правило со второго раза соединяется ок.
Go to the top of the page
 
+Quote Post
butthead2
сообщение Oct 17 2011, 10:34
Сообщение #23


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 22-07-09
Пользователь №: 51 470



Цитата(MKdemiurg @ Oct 17 2011, 13:24) *
Хм...а если не проверять cipstatus? Я вот проверяю CGREG, CGATT и если на CIICR приходит PDP DEACT - делаю рестарт. Просто что конкретно даст AT+CIPSTATUS в плане проверки ?

Ничего путевого не даст. Еще с незапамятных времен приколотил на эту кривую команду. CGATT и CIICR - с головой хватает.
Go to the top of the page
 
+Quote Post
Konstantin Ilich...
сообщение Oct 17 2011, 10:59
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 7-12-06
Пользователь №: 23 250



Цитата(MKdemiurg @ Oct 17 2011, 14:24) *
Хм...а если не проверять cipstatus? Я вот проверяю CGREG, CGATT и если на CIICR приходит PDP DEACT - делаю рестарт. Просто что конкретно даст AT+CIPSTATUS в плане проверки ?

Я на CIPSTATUS не жалуюсь, загвоздка не в нем, а в том, что при выполнении CGATT=1 получаю сразу ERROR. Я тут CIPSTATUS даже и не вызываю нигде. Если CGATT=1 ответит ОК, то тогда уже IPSTATUS, но там дальше всё нормально.

Еще раз: проблема в том, что если появился GPRS, то модем сам его не обнаруживает, на CGATT=1 выдает ERROR, и помогает только перезагрузка с отключением питания модема.

Наши поставщики щас ищут, какой командой можно пнуть модем, чтобы он без рестарта поискал GPRS.

Цитата(KAlex @ Oct 17 2011, 14:26) *
Ну и зря.
Делаем cipshut и открываем сессию заново. Как правило со второго раза соединяется ок.

Именно так, как только появляются новые данные на отправку, я делаю CIPSEND, получаю ERROR, иду на закрытие TCP-соединения, дальше дается CIPSHUT и при попытке CIPSTART получаю ERROR, то есть со второго раза не соединяется, и дальше так и не соединяется сколько ни пытается. Через паузу иду на закрытие GPRS и пытаюсь подключить GPRS снова, но на CGATT=1 получаю стабильно ERROR. Найти GPRS помогает только сброс модема по PWRKEY и питанию.

Цитата(butthead2 @ Oct 17 2011, 14:34) *
Ничего путевого не даст. Еще с незапамятных времен приколотил на эту кривую команду. CGATT и CIICR - с головой хватает.

Если GPRS есть, то CGATT и CIICR проходят чудесно. Если его нет, то на CGATT=1 уже получаем ERROR. Вот щас выкинул вообще вызов CIPSTATUS из алгоритма, загнал опять в то же состояние - проблема та же. CIPSTATUS не влияет.
Go to the top of the page
 
+Quote Post
GeGeL
сообщение Oct 17 2011, 16:13
Сообщение #25


Местный
***

Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682



Цитата(Konstantin Ilichev @ Oct 17 2011, 00:09) *
В 8 из 10 случаев CREG неизменно выдает 0,1, а CGREG выдает 0,0, на команду AT+CGATT=1 получаю ответ ERROR. То есть регистрация есть, а GPRS нет. При этом если ребутнуть модем - появляется и GPRS тоже. Вот мне бы как раз команду принудительной разрегистрации или повторной регистрации в сети. Это бы могло помочь.


Обратите внимание на предисторию этой ситуации: я так понял, возникает при переводе работающей симки оператором из состояния "Запасы" в состояние "Работа". Очень похожая ситуация возникает при игре с клоном симки: при включенном оригинале включаем клон, делаем исходящий звонок и затем клон тушим. При этом оригинал в сети (по CREG), но жпрс поднять не можем. Связано с тем, что клон затребовал другой TMSI, и прописанный в оригинале устарел.
Попробуйте:
1. Доходят ли в таком состоянии входящие звонки на модем?
2. Сделать исходящий звонок (возможно, с первого раза не получится) и затем пробовать жпрс;
3. Ну и опять же, попробовать перерегистрацию в сети каким-либо образом (скорее всего, то, что Вы пробовали, не возымело эффекта, т.к. собственно, перерегистрации и не было - сеть оставлась та же).
Go to the top of the page
 
+Quote Post
Konstantin Ilich...
сообщение Oct 18 2011, 06:43
Сообщение #26


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 7-12-06
Пользователь №: 23 250



Цитата(GeGeL @ Oct 17 2011, 20:13) *
Обратите внимание на предисторию этой ситуации: я так понял, возникает при переводе работающей симки оператором из состояния "Запасы" в состояние "Работа". Очень похожая ситуация возникает при игре с клоном симки: при включенном оригинале включаем клон, делаем исходящий звонок и затем клон тушим. При этом оригинал в сети (по CREG), но жпрс поднять не можем. Связано с тем, что клон затребовал другой TMSI, и прописанный в оригинале устарел.
Да, очень похоже. По CREG я тоже получаю 0,1.

Цитата(GeGeL @ Oct 17 2011, 20:13) *
Попробуйте:
1. Доходят ли в таком состоянии входящие звонки на модем?
Сим-карта не поддерживает вх/исх звонков (только m2m).

Попробую сделать в такой ситуации сброс модема по PWRKEY и по питанию с повтором не чаще 20 минут.
Go to the top of the page
 
+Quote Post
GeGeL
сообщение Oct 18 2011, 07:02
Сообщение #27


Местный
***

Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682



Будет возможность, попробуйте все ж ради хохмы ATD
Мне кажется, что статус исходящих по идее будет проверяться уже после регистрационных моментов.
Суть такова: мы пытаемся инициировать сеанс устаревшим TMSI. По идее, сеть не может распознать абонента и в ответ инициирует идентификацию пи IMSI и пропишет в симку новый TMSI, и только потом даст отлуп на исходящий согласно тарифного плана. Но т.к. перерегистрация уже произойдет, то жпрс может подключиться после этого.
Это чистая теория, но все ж какая то вероятность есть.
Go to the top of the page
 
+Quote Post
Konstantin Ilich...
сообщение Oct 18 2011, 07:24
Сообщение #28


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 7-12-06
Пользователь №: 23 250



Цитата(GeGeL @ Oct 18 2011, 11:02) *
Будет возможность, попробуйте все ж ради хохмы ATD
Мне кажется, что статус исходящих по идее будет проверяться уже после регистрационных моментов.
Суть такова: мы пытаемся инициировать сеанс устаревшим TMSI. По идее, сеть не может распознать абонента и в ответ инициирует идентификацию пи IMSI и пропишет в симку новый TMSI, и только потом даст отлуп на исходящий согласно тарифного плана. Но т.к. перерегистрация уже произойдет, то жпрс может подключиться после этого.

Проверили следующим образом. Ввели модем в описанное выше состояние, симка в режиме "Активирована", на CGATT=1 выдает ERROR. Далее делаем звонок ATDxxxxxx, небольшая пауза, NO CARRIER. Далее пробуем CGATT=1 - ERROR. Пробовали звонки на разные номера, делать IPSHUT, CGATT=0, разные комбинации - сдвигов нет, к сожалению, GPRS не подключается, помогает только полный сброс.
Go to the top of the page
 
+Quote Post
KAlex
сообщение Oct 20 2011, 08:40
Сообщение #29


Местный
***

Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719



Цитата(Konstantin Ilichev @ Oct 17 2011, 14:59) *
Именно так, как только появляются новые данные на отправку, я делаю CIPSEND, получаю ERROR, иду на закрытие TCP-соединения, дальше дается CIPSHUT и при попытке CIPSTART получаю ERROR, то есть со второго раза не соединяется, и дальше так и не соединяется сколько ни пытается. Через паузу иду на закрытие GPRS и пытаюсь подключить GPRS снова, но на CGATT=1 получаю стабильно ERROR. Найти GPRS помогает только сброс модема по PWRKEY и питанию.


Как часто появляются данные? Может ТСР закрывается по таймауту?
Тогда тут болезнь модуля на закрытие сессии проявляется.

Китайцы проинформированы, ждем исправлений.

Go to the top of the page
 
+Quote Post
alexxx86
сообщение Aug 13 2014, 07:03
Сообщение #30





Группа: Новичок
Сообщений: 7
Регистрация: 13-08-14
Пользователь №: 82 535



Добрый день!
Подскажите пожалуйста, в случае зависания sim900 на пине STATUS будет присутствувать высокий уровень?
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 16:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.0142 секунд с 7
ELECTRONIX ©2004-2016