|
Зависает радиоканал в SIM300D!, Зависает радиоканал в SIM300D! |
|
|
|
Jul 31 2008, 08:58
|
Частый гость
 
Группа: Свой
Сообщений: 132
Регистрация: 17-02-08
Из: Уфа
Пользователь №: 35 116

|
Прошу помощи. 2 раза сумел загнать модуль в тупик (1-й раз микроконтроллер, отправляя sms, накидал мусора, 2-й раз при дозвоне на модуль разорвалась связь). Что произошло: 1. На кнопку powerkey не реагирует (только снимать питание, благо, предусмотрел). 2. Вопрос - AT+CREG: ответ - +CREG=0,1 - норма 3. Вопрос - AT+CPBR=1: ответ - норма (пункты 2 и 3 использую раз в 5 минут для проверки модуля на зависание и т. п.) 4. 3. Вопрос - AT+CSQ: ответ - норма 5. Модуль становится недоступным, сам позвонить, отправить sms не может. 6. Сигнал STATUS в норме. 7. Светодиод мигает как положено. Ждал часа 2, думал сам очухается, не помогло. Что делать? Если с первой причиной можно бороться (не слать мусор), то от второй никто не застрахован. Существует ли AT-команда для такой проверки работоспособности? На сегодняшний день единственное, что придумал - раз в 2 часа тупо выключать/включать модуль. Посоветуйте, что делать.
|
|
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 32)
|
Jul 31 2008, 13:14
|
Частый гость
 
Группа: Свой
Сообщений: 132
Регистрация: 17-02-08
Из: Уфа
Пользователь №: 35 116

|
Цитата(CADiLO @ Jul 31 2008, 18:07)  Поверкей кнопка или управляется от контроллера ? Если от контроллера, то как подключено ? Как модуль согласован с контроллером по RX TX ? Спасибо, CADILO, что ответили (много инфы от вас прочитал на форуме). powerkey не на массе, управляется с контроллера через npn-тр-р (1,5 сек. на включение/выключение), RX, TX через диоды (все как в документации). Но это мне кажется совсем не при чем: когда модуль завис, powerkey тупо замыкал на массу пинцетом - модуль не выключается (естественно, когда работает, пинцетом включаю/выключаю без проблем). Забыл указать, что это уже со вторым модулем, который положил на стол для доработок программы (партии разные), так что проблема не едничная, а видимо если взять другие, будет тоже самое. Может скажу глупость, но вопрос не в том, как не подвесить его (всего не предусмотришь, тем более глюка по питанию), а в том, как это зависание увидеть (какой командой). Парадокс в том, что судя по моим AT-запросам с ним все в порядке, но на связь не выходит (по амперметру смотрю - даже не пытается). Может есть еще какой запрос, в крайнем случае, может есть команда принудительно найти сеть (как при включении ищет или когда потерял)? Глупо выключать/включать (как пока делаю), но другого выхода не нахожу. Думал также купить sim-карту, выкинуть ее, а системы заставлять опять же с интервалом позвонить на нее (как писал ранее, после ATD приходит ERROR (не помню какой), но это тоже маразм. Самое смешное, что если будет совет, надо будет его подвесить (потому-что даже отпрввляя мусор (при отправке sms) удалось подвесить только 2 раза (периодичеси специально мучал дня 4). Спасибо.
|
|
|
|
|
Jul 31 2008, 17:03
|
Частый гость
 
Группа: Свой
Сообщений: 132
Регистрация: 17-02-08
Из: Уфа
Пользователь №: 35 116

|
Цитата(Harbinger @ Jul 31 2008, 21:10)  Принудительная регистрация в домашней сети - AT+COPS=0. Но не факт, что на неё немедленно OK не скажет. Но может с некоторой задержкой выдать ошибку.
...Питание? Вроде как выше 4,5 В давать нельзя. Или же дикий КСВ в антенне (КЗ, например) - по идее, и в том, и в другом случае не должен включаться усилитель мощности передатчика... Спасибо. Завтра попробую затравить. У меня питание 4,1В (МК и модуль питаются вместе). Рядом с модулем 2000мкФ. Замыкания в антенне наверняка нет (на втором изделии проявляется). Он ведь еще на powerkey перестает реагировать (лечение только одно - выключаю, сняв питание, затем подаю, жму powerkey, все - работает). Если кому интересно, попробуйте сами: отправьте вместо номера получателя (AT+CMGS= и т. п.) байт 500, затем естественно, нормально закончите строку. Я смог 2 раза подвесить. Если кто-то скажет, на кой слал, повторюсь, сегодня также завис, но когда я сделал дозвон на него, но связь разорвалась еще до гудка (а это, согласитесь, может произойти и через 5 минут, и не только у меня). Еще раз спасибо.
Сообщение отредактировал Budek - Jul 31 2008, 17:06
|
|
|
|
|
Aug 1 2008, 15:53
|
Частый гость
 
Группа: Свой
Сообщений: 132
Регистрация: 17-02-08
Из: Уфа
Пользователь №: 35 116

|
Цитата(CADiLO @ Aug 1 2008, 11:28)  Попробуйте вот эту прошивку..... Это на новой платформе R16, китайцы говорили что постабильнее будет.... К сожалению ни разу не пробовал прошивать (да и не читал пока, как это делается). Да и перешивать каждый модуль в производстве проблематично. Пробовал специально подвесить модуль, бился весь вечер, не получилось. Так что даже если перешить, сложно будет убедиться в том что она лучше. Спасибо.
|
|
|
|
|
Aug 20 2008, 05:40
|

Частый гость
 
Группа: Свой
Сообщений: 97
Регистрация: 26-05-05
Из: Киев, Украина
Пользователь №: 5 426

|
Budek, здорово что Вы это описали. Такая проблема мучает и нас. Нам важно вовремя отправить СМС При попытке отправить выдает: +CME ERROR: 769 смотрим в документацию, видим Цитата(SIM300_ATC_V2.01.pdf) 769 - unable to get control of required module При этом нормально отвечает на АТ-команды. При попытке дозвониться на него, звучит сообщение от оператора что "абонент не на зоне". Такой сибе режим ЗОМБИ.
--------------------
Смотреть в себя, зреть муки свои, зная, что сам ты виновник мук - вот истинное страдание. Отладка / Софокл, "Аякс".
|
|
|
|
|
Aug 20 2008, 06:20
|
Частый гость
 
Группа: Свой
Сообщений: 132
Регистрация: 17-02-08
Из: Уфа
Пользователь №: 35 116

|
Цитата(Kaplinsky @ Aug 20 2008, 11:40)  Budek, здорово что Вы это описали.
Такая проблема мучает и нас. Нам важно вовремя отправить СМС При попытке отправить выдает: +CME ERROR: 769
смотрим в документацию, видим При этом нормально отвечает на АТ-команды. При попытке дозвониться на него, звучит сообщение от оператора что "абонент не на зоне".
Такой сибе режим ЗОМБИ. Я в конечном итоге сделал следующее: Стал по определенному событию (у меня это - останов двигателя при попытке открыть капот) отключать модуль поверкеем, затем делаю запрос AT, и если получаю в ответ OK (т.е. модуль как я описывал ранее не отключается поверкеем), снимаю с него питание, потом включаю и т. д. Ничего умнее пока не придумал.
|
|
|
|
|
Mar 13 2009, 13:11
|
Группа: Новичок
Сообщений: 8
Регистрация: 8-03-09
Пользователь №: 45 827

|
Цитата(Budek @ Aug 20 2008, 09:20)  Я в конечном итоге сделал следующее: Стал по определенному событию (у меня это - останов двигателя при попытке открыть капот) отключать модуль поверкеем, затем делаю запрос AT, и если получаю в ответ OK (т.е. модуль как я описывал ранее не отключается поверкеем), снимаю с него питание, потом включаю и т. д. Ничего умнее пока не придумал. Подскажите на сегодняшний день есть понимание, почему Ваш модуль вис. У меня тоже было 1,5 сек. на KEY. Сделал 3,5 , вроде перестал. Или так и снимаете питание? Может есть свежее решение?
Сообщение отредактировал Dimashik78 - Mar 13 2009, 13:12
|
|
|
|
|
Mar 13 2009, 18:50
|
Частый гость
 
Группа: Свой
Сообщений: 132
Регистрация: 17-02-08
Из: Уфа
Пользователь №: 35 116

|
Цитата(Dimashik78 @ Mar 13 2009, 18:11)  Подскажите на сегодняшний день есть понимание, почему Ваш модуль вис. У меня тоже было 1,5 сек. на KEY. Сделал 3,5 , вроде перестал. Или так и снимаете питание? Может есть свежее решение? Увеличение времени на key, может и поможет более корректно выключить модуль, но не снимает проблемы - как уличить его в зависании. Я на сегодня сделал еще, может еще более глупое решение - отправляю раз в сутки sms самому себе, если не дошло, значит висит. Наверное, можно также попробывать дозвон самому себе - дешевле выйдет.
|
|
|
|
|
Mar 19 2009, 07:49
|
Участник

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

|
Если интересует как именно можно уличить модем в зависании, могу предложить следующий алгоритм, используемый в своих наработках. Задача: при определённых событиях необходимо отправлять SMS-сообщения на указанный номер. Для этого SMS сообщения помещаются в программную очередь. Программа, отслеживая кол-во сообщений в очереди берёт первое сообщение (НЕ удаляя его из очереди), формирует нужные AT-команды, и отправляет SMS. В случае ошибки при отправке стартует таймер (назовём его таймер ошибки), отсчитывающий время с момента первой ошибки. Программа же через некоторый интервал снова проверяет очередь, достаёт SMS (если предыдущее не было отправлено, то это то же самое SMS) и снова пытается отправить. Если отправки SMS идут неуспешные одна за другой, то как только таймер ошибки достигнет определённого значения (например 1 мин.) - выполняется перезагрузка модуля (сообщения в очереди никуда не деваются в этот момент). Если же в течении таймаута ошибки была успешная отправка - таймер ошибки останавливаем. При успешной отправке SMS удаляем его из очереди. Важное замечание: для каждого сообщения в очереди есть понятие "время жизни". Если очередное сообщение в голове очереди лежит дольше времени жизни - оно удаляется, т.е. его отправка не удалась. Очередь является циклической, т.е. при большом потоке поступлений SMS на отправку в очередь, если кол-во SMS начинает превышать размер очереди - удаляем первое сообщение из головы, теряя его. Таким образом можно варьировать размером очереди в зависимости от доступного размера памяти данных и временем жизни сообщения в очереди в зависимости от срочности отправки SMS. Минус такого подхода - модуль будет частенько перегружаться при отсутствии денег на SIM-карте и частой отправке SMS, т.к. постоянно будут сыпаться ошибки при отправке SMS. Тут уж следите за балансом, либо можно поставить второй разъём для SIM и переключаться на вторую (запасную) SIM-карту в таких случаях. Данный алгоритм работает на реальных устройствах как с SMS, так и с GPRS-сообщениями. Кого заинтересуют подробности - обращайтесь, буду рад помочь.
|
|
|
|
|
Mar 19 2009, 08:24
|
Местный
  
Группа: Свой
Сообщений: 483
Регистрация: 1-09-06
Из: Гродно РБ
Пользователь №: 20 011

|
Цитата(vladimir_k @ Mar 19 2009, 10:49)  Минус такого подхода - модуль будет частенько перегружаться при отсутствии денег на SIM-карте и частой отправке SMS, т.к. постоянно будут сыпаться ошибки при отправке SMS. Тут уж следите за балансом, либо можно поставить второй разъём для SIM и переключаться на вторую (запасную) SIM-карту в таких случаях. Я бы сделал маленькое дополнение. Если после определенного количества попыток перезагрузки модуля работа не возобновилась, делаем пузу на некоторое время, не перезагружаем модуль. Это может быть несколько часов, дело вкуса. потом повторяем по новой. Я это делаю, но не SMSкой а попыткой законектиться к серверу и передать данные. оно дешевле и проще. Поскольку если устройство работает, то данные в любом случае передаются. Можно конечно узнать наличие денег, запросив баланс. Но тут много мароки, лень. Если пользуете GPRS, то наличие денег определять можно по ответу на команду at+cgatt=1. если денег нет получаю ошибку. Правда это проверялось только опытным путем на нескольких операторах на просторах былого СССР а также в странах дальнего зарубежья. Работает стабильно.
Сообщение отредактировал M_Z - Mar 19 2009, 08:26
|
|
|
|
|
Mar 19 2009, 08:43
|
Участник

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

|
Цитата(av-master @ Mar 19 2009, 13:08)  чето не понял где здесь уличение? в том что смс не доставленна? довольно затратный способ ИМХО. Обнаружение того что с модемом что-то не так (завис попросту говоря) происходит в результате неуспешной отправки SMS в течении определённого времени. Если за это время сообщение так и не было отправлено - перегружаем модем, сообщение же всё это время находится в очереди, пока позволяет "время жизни", либо пока не будет отправлено. Для моей задачи, например, время жизни для SMS в 5 мин. является приемлимым. В таком случае сообщение будет потеряно, если закончились деньги на сим-карте, либо сим-карта не зарегистрирована в сети, либо большой поток SMS-сообщений для отправки (тогда старые сообщения затираются новыми при отсутствиии места в очереди), либо перегрузка сети, как бывает в новогоднюю ночь. Иначе сообщение доставляется без проблем, независимо от зависания модема. Согласен, способ немного затратен по ресурсам памяти для организации очереди и коду для проверки различных таймаутов, но для современных контроллеров это не помеха. Всё же при таком подходе нет надобности в периодической перезагрузке модема. Цитата(M_Z @ Mar 19 2009, 13:24)  Я бы сделал маленькое дополнение. Если после определенного количества попыток перезагрузки модуля работа не возобновилась, делаем пузу на некоторое время, не перезагружаем модуль. Это может быть несколько часов, дело вкуса. потом повторяем по новой. Я это делаю, но не SMSкой а попыткой законектиться к серверу и передать данные. оно дешевле и проще. Поскольку если устройство работает, то данные в любом случае передаются. Можно конечно узнать наличие денег, запросив баланс. Но тут много мароки, лень. Если пользуете GPRS, то наличие денег определять можно по ответу на команду at+cgatt=1. если денег нет получаю ошибку. Правда это проверялось только опытным путем на нескольких операторах на просторах былого СССР а также в странах дальнего зарубежья. Работает стабильно. Вы правы, M_Z, так и надо делать. Так я делаю и у себя, приостанавливая работу с модемом минут на 10-20, если, например, нет денег на сим-карте и не удалось зарегистрировать сервис GPRS (командой CGREG), чтобы зря не мучить модем частыми перезагрузками.
|
|
|
|
|
Mar 19 2009, 15:35
|

Просто Che
    
Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881

|
Цитата(M_Z @ Mar 19 2009, 10:24)  Если пользуете GPRS, то наличие денег определять можно по ответу на команду at+cgatt=1. если денег нет получаю ошибку. Правда это проверялось только опытным путем на нескольких операторах на просторах былого СССР а также в странах дальнего зарубежья. Работает стабильно. У моего оператора логика другая. У тарифного плана есть фича - подключение GPRS. Можно подключить, можно нет. Так если денег нет, а фича была подключена, то после at+cgatt=1 исправно выдается ОК А вот уже на попытку законнектиться куда-нибудь вываливается ошибка. Логика видимо следующая: фича активирована, значит подключаться можно, это бесплатно. А вот данные передавать - извини, нельзя - за это мы деньги хотим
|
|
|
|
|
Mar 20 2009, 06:35
|
Местный
  
Группа: Свой
Сообщений: 483
Регистрация: 1-09-06
Из: Гродно РБ
Пользователь №: 20 011

|
Цитата(Baser @ Mar 19 2009, 19:35)  У моего оператора логика другая. У тарифного плана есть фича - подключение GPRS. Можно подключить, можно нет. Так если денег нет, а фича была подключена, то после at+cgatt=1 исправно выдается ОК А вот уже на попытку законнектиться куда-нибудь вываливается ошибка. Логика видимо следующая: фича активирована, значит подключаться можно, это бесплатно. А вот данные передавать - извини, нельзя - за это мы деньги хотим  С этим я полностью согласен. Я и писал что проверялось опытным путем и конечно не на всех операторах.
|
|
|
|
|
Mar 22 2009, 16:41
|
Местный
  
Группа: Свой
Сообщений: 483
Регистрация: 1-09-06
Из: Гродно РБ
Пользователь №: 20 011

|
Цитата(=F8= @ Mar 22 2009, 18:25)  Мне тоже интересно, только проверить тяжело - зависания очень редко случаются. А вообще это был-бы идеальный вариант. Если Вы используете GPRS для передачи данных, то тестить нужно именно этот тракт. GPRS стек это отдельный программный модуль, который может глюкнуть и при этом прекрасно будет работать голосовой канал.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|