Перейти к содержанию
    

Зависает радиоканал в SIM300D!

Прошу помощи.

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 часа тупо выключать/включать модуль.

Посоветуйте, что делать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поверкей кнопка или управляется от контроллера ? Если от контроллера, то как подключено ?

Как модуль согласован с контроллером по RX TX ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поверкей кнопка или управляется от контроллера ? Если от контроллера, то как подключено ?

Как модуль согласован с контроллером по RX TX ?

 

Спасибо, CADILO, что ответили (много инфы от вас прочитал на форуме).

powerkey не на массе, управляется с контроллера через npn-тр-р (1,5 сек. на включение/выключение), RX, TX через диоды (все как в документации).

Но это мне кажется совсем не при чем: когда модуль завис, powerkey тупо замыкал на массу пинцетом - модуль не выключается (естественно, когда работает, пинцетом включаю/выключаю без проблем).

Забыл указать, что это уже со вторым модулем, который положил на стол для доработок программы (партии разные), так что проблема не едничная, а видимо если взять другие, будет тоже самое.

Может скажу глупость, но вопрос не в том, как не подвесить его (всего не предусмотришь, тем более глюка по питанию), а в том, как это зависание увидеть (какой командой).

Парадокс в том, что судя по моим AT-запросам с ним все в порядке, но на связь не выходит (по амперметру смотрю - даже не пытается).

Может есть еще какой запрос, в крайнем случае, может есть команда принудительно найти сеть (как при включении ищет или когда потерял)?

Глупо выключать/включать (как пока делаю), но другого выхода не нахожу. Думал также купить sim-карту, выкинуть ее, а системы заставлять опять же с интервалом позвонить на нее (как писал ранее, после ATD приходит ERROR (не помню какой), но это тоже маразм.

Самое смешное, что если будет совет, надо будет его подвесить (потому-что даже отпрввляя мусор (при отправке sms) удалось подвесить только 2 раза (периодичеси специально мучал дня 4).

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Принудительная регистрация в домашней сети - AT+COPS=0. Но не факт, что на неё немедленно OK не скажет. Но может с некоторой задержкой выдать ошибку.

 

...Питание? Вроде как выше 4,5 В давать нельзя. Или же дикий КСВ в антенне (КЗ, например) - по идее, и в том, и в другом случае не должен включаться усилитель мощности передатчика...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Принудительная регистрация в домашней сети - AT+COPS=0. Но не факт, что на неё немедленно OK не скажет. Но может с некоторой задержкой выдать ошибку.

 

...Питание? Вроде как выше 4,5 В давать нельзя. Или же дикий КСВ в антенне (КЗ, например) - по идее, и в том, и в другом случае не должен включаться усилитель мощности передатчика...

 

 

Спасибо. Завтра попробую затравить.

У меня питание 4,1В (МК и модуль питаются вместе). Рядом с модулем 2000мкФ.

Замыкания в антенне наверняка нет (на втором изделии проявляется).

Он ведь еще на powerkey перестает реагировать (лечение только одно - выключаю, сняв питание, затем подаю, жму powerkey, все - работает).

 

Если кому интересно, попробуйте сами: отправьте вместо номера получателя (AT+CMGS= и т. п.) байт 500, затем естественно, нормально закончите строку. Я смог 2 раза подвесить. Если кто-то скажет, на кой слал, повторюсь, сегодня также завис, но когда я сделал дозвон на него, но связь разорвалась еще до гудка (а это, согласитесь, может произойти и через 5 минут, и не только у меня).

Еще раз спасибо.

Изменено пользователем Budek

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте вот эту прошивку.....

Это на новой платформе R16, китайцы говорили что постабильнее будет....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте вот эту прошивку.....

Это на новой платформе R16, китайцы говорили что постабильнее будет....

 

К сожалению ни разу не пробовал прошивать (да и не читал пока, как это делается).

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

Пробовал специально подвесить модуль, бился весь вечер, не получилось. Так что даже если перешить, сложно будет убедиться в том что она лучше.

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пардон за оффтоп... я так понимаю, 1604 и 1008 делают разные команды, 1604 догоняет 1008, да пока не догнала... ;) Навскидку: неувязка с автоопределением адресов DNS-серверов в свежевыложенной прошивке присутствует (в 1008R18 автоопределение работает, но под "D" её пока нет).

Ещё было бы неплохо не ругаться на пустой логин (принимая втихаря при этом имя точки доступа)... ну это я уже придираюсь, это дело обходится, пробел ставим-с ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня питание 4,1В (МК и модуль питаются вместе).

Ай, че-то мне подсказывает наличие неправильного согласования уровней сигналов МК и модуля.... И как результат - полное зависание последнего.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Budek, здорово что Вы это описали.

 

Такая проблема мучает и нас. Нам важно вовремя отправить СМС

При попытке отправить выдает:

+CME ERROR: 769

 

смотрим в документацию, видим

769 - unable to get control of required module

 

При этом нормально отвечает на АТ-команды.

При попытке дозвониться на него, звучит сообщение от оператора что "абонент не на зоне".

 

Такой сибе режим ЗОМБИ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Budek, здорово что Вы это описали.

 

Такая проблема мучает и нас. Нам важно вовремя отправить СМС

При попытке отправить выдает:

+CME ERROR: 769

 

смотрим в документацию, видим

При этом нормально отвечает на АТ-команды.

При попытке дозвониться на него, звучит сообщение от оператора что "абонент не на зоне".

 

Такой сибе режим ЗОМБИ.

 

Я в конечном итоге сделал следующее:

Стал по определенному событию (у меня это - останов двигателя при попытке открыть капот) отключать модуль поверкеем, затем делаю запрос AT, и если получаю в ответ OK (т.е. модуль как я описывал ранее не отключается поверкеем), снимаю с него питание, потом включаю и т. д.

Ничего умнее пока не придумал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я в конечном итоге сделал следующее:

Стал по определенному событию (у меня это - останов двигателя при попытке открыть капот) отключать модуль поверкеем, затем делаю запрос AT, и если получаю в ответ OK (т.е. модуль как я описывал ранее не отключается поверкеем), снимаю с него питание, потом включаю и т. д.

Ничего умнее пока не придумал.

Подскажите на сегодняшний день есть понимание, почему Ваш модуль вис. У меня тоже было 1,5 сек. на KEY. Сделал 3,5 , вроде перестал. Или так и снимаете питание? Может есть свежее решение?

Изменено пользователем Dimashik78

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите на сегодняшний день есть понимание, почему Ваш модуль вис. У меня тоже было 1,5 сек. на KEY. Сделал 3,5 , вроде перестал. Или так и снимаете питание? Может есть свежее решение?

 

Увеличение времени на key, может и поможет более корректно выключить модуль, но не снимает проблемы - как уличить его в зависании. Я на сегодня сделал еще, может еще более глупое решение - отправляю раз в сутки sms самому себе, если не дошло, значит висит. Наверное, можно также попробывать дозвон самому себе - дешевле выйдет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Аналогичная проблема :( ничего умнее периодического выключения - включения пока тоже не придумал. Принудительная перерегистрация в принципе тоже самое только с меньшей гарантией положительного результата.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Задача: при определённых событиях необходимо отправлять SMS-сообщения на указанный номер. Для этого SMS сообщения помещаются в программную очередь. Программа, отслеживая кол-во сообщений в очереди берёт первое сообщение (НЕ удаляя его из очереди), формирует нужные AT-команды, и отправляет SMS. В случае ошибки при отправке стартует таймер (назовём его таймер ошибки), отсчитывающий время с момента первой ошибки. Программа же через некоторый интервал снова проверяет очередь, достаёт SMS (если предыдущее не было отправлено, то это то же самое SMS) и снова пытается отправить. Если отправки SMS идут неуспешные одна за другой, то как только таймер ошибки достигнет определённого значения (например 1 мин.) - выполняется перезагрузка модуля (сообщения в очереди никуда не деваются в этот момент). Если же в течении таймаута ошибки была успешная отправка - таймер ошибки останавливаем. При успешной отправке SMS удаляем его из очереди. Важное замечание: для каждого сообщения в очереди есть понятие "время жизни". Если очередное сообщение в голове очереди лежит дольше времени жизни - оно удаляется, т.е. его отправка не удалась. Очередь является циклической, т.е. при большом потоке поступлений SMS на отправку в очередь, если кол-во SMS начинает превышать размер очереди - удаляем первое сообщение из головы, теряя его. Таким образом можно варьировать размером очереди в зависимости от доступного размера памяти данных и временем жизни сообщения в очереди в зависимости от срочности отправки SMS.

 

Минус такого подхода - модуль будет частенько перегружаться при отсутствии денег на SIM-карте и частой отправке SMS, т.к. постоянно будут сыпаться ошибки при отправке SMS. Тут уж следите за балансом, либо можно поставить второй разъём для SIM и переключаться на вторую (запасную) SIM-карту в таких случаях.

 

Данный алгоритм работает на реальных устройствах как с SMS, так и с GPRS-сообщениями.

 

Кого заинтересуют подробности - обращайтесь, буду рад помочь. :laughing:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...