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

 
 
 
Reply to this topicStart new topic
> SIM800C переодически отключается при работе по TCP
lolful
сообщение Aug 26 2015, 11:18
Сообщение #1


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

Группа: Свой
Сообщений: 106
Регистрация: 27-11-07
Из: Пермь
Пользователь №: 32 732



Модем SIM800C с прошивкой 1418B02SIM800C24. При тестировании изделий был найден следующий баг. Примерно через минуту-две после соединения по TCP отключается модем.
Особенности инициализации:
AT+CSCLK=1
AT+DDET=1,200,1,0
AT+CSDH=1
AT+CIPMUX=0
AT+CIPMODE=0
AT+CIPRXGET=1
AT+CIPQSEND=1

Считывание из сокета командой:
AT+CIPRXGET=2,128
+CIPRXGET: 2,20,0
(Data...)
OK

Передача через сокет командой:
AT+CIPSEND=188
> (Data...)
DATA ACCEPT:188

Напряжение питания стабильное 3.8В, ниже 3.6В не падает.

Как выглядит этот баг. Модем инициализируется, подключается к GPRS, подключается к сокету, начинается обмен пакетами (светодиод NETLIGHT мигает 3 раза в секунду). Пока все хоршо.
Как только обмен пакетами становится интенсивнее и трафик возрастает, появляется вероятность, что модем заглючит. Проявляется этот глюк в том, что пин STATUS выдает "0" 3-4 секунды, в это время, AT-команды не выполняются, светодиод гаснет. Затем, STATUS становится в "1", светодиод NETLIGHT начинает мигать как при подаче питания (где-то раз в секунду), в UART выдается 0xFF 0xFF. Затем, примерно через 10 секунд, ситуация может повториться. Через какое-то время модем раздупляется и начинает работать как будто на него только подали питание.
Кроме того, после этой ошибки модем долго не выдает строчку Sms ready (минуты 3), как следствие, не хочет выполнять команду AT+CSDH=1 во время инициализации.

Если короче - то в процессе обмена по TCP модем сам перезагружается и некоторое время глючит (перезагружается снова) и плохо инициализируется.

Simcom'овская утилита catcher.exe в момент глюка в логах пишет, что в модеме произошел fatal error. Но я не могу разобраться в данных catcher'а, так что не заню в чем причина этой ошибки.

Логи инициализации модема, логи catcher'а и дамп памяти модема на я.диске: https://yadi.sk/d/etdh4BoMieGZC

Мои подозрения падают на сочетание настроек режима работы с сокетами: (AT+CIPMUX=0; AT+CIPMODE=0; AT+CIPRXGET=1; AT+CIPQSEND=1)

Может ли кто-либо подсказать как проанализировать логи catcher'а самостоятельно? Потому что времени ждать, пока ответят в Simcom'e на письмо, особо нет.
И сталкивался ли кто-нибудь с таким глюком и как его можно обойти, какие у кого есть идеи что еще можно проверить?

Дополнение. Сначала я думал, что к этому может приводить то, что пишу в закрытый сокет или в сокете переполнятеся буфер. Тогда я перед отправкой и приемом данных выполнял команды CIPACK, CIPSTATUS, CIPRXGET=4 и пр. Но это ни к чему не привело. Перед возникновением глюка все выглядит отлично, типа того:
+CREG: 1,1
+СGREG: 0,1
+CSQ: 22,0
+CIPSTATUS: CONNECT OK
+CIPACK: 1000,1000,0

Прямо перед глюком, если успеть (если повезет), можно отловить +CSQ: 0,0
Go to the top of the page
 
+Quote Post
Aner
сообщение Aug 26 2015, 11:24
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



Пробуйте с прошивкой 1418B03SIM800C24
Go to the top of the page
 
+Quote Post
lolful
сообщение Aug 27 2015, 08:07
Сообщение #3


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

Группа: Свой
Сообщений: 106
Регистрация: 27-11-07
Из: Пермь
Пользователь №: 32 732



Удалось выяснить, что проблема как-то связана с пинами RI, RTS, CTS или DCD. При их отключении, работа модема нормализовалась. Появилось еще больше вопросов.
При том, что контроль потока отключен (AT+IFC=0,0).
Надо смотреть что на эти пины может выводиться. Однако то, что из-за них модем глючит и перезагружается, почти доказанный факт.

Лог. уровни согласованы, согласно даташиту на SIM800C.
Go to the top of the page
 
+Quote Post
Aner
сообщение Aug 27 2015, 08:29
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



QUOTE (lolful @ Aug 27 2015, 11:07) *
Удалось выяснить, что проблема как-то связана с пинами RI, RTS, CTS или DCD. При их отключении, работа модема нормализовалась. Появилось еще больше вопросов.
При том, что контроль потока отключен (AT+IFC=0,0).
Надо смотреть что на эти пины может выводиться. Однако то, что из-за них модем глючит и перезагружается, почти доказанный факт.

Лог. уровни согласованы, согласно даташиту на SIM800C.

Так что на эти пины у вас подключено и как отключаете?
Go to the top of the page
 
+Quote Post
lolful
сообщение Aug 27 2015, 09:28
Сообщение #5


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

Группа: Свой
Сообщений: 106
Регистрация: 27-11-07
Из: Пермь
Пользователь №: 32 732



Отключил, отпаяв резисторы 1 КОм. То есть, сейчас они висят в воздухе.
Схема согласования уровеней из даташита, рисунок 19 для пинов RI, RTS, CTS, DCD, DTR, TX.
Для RX - рисунок 20.
Проц работает от 3.3 В.

Программа проца не должна ничего выводить на соответствующие ноги. И они должны быть в высоком имедансе. Возможно, бутлоадер включает пины на выход и выводит там "0" (низкий импеданс).
По факту на пинах мультиметр показывает 0В.

Копать глубже буду позже - пока есть более приоритетные задачи.
Go to the top of the page
 
+Quote Post
Aner
сообщение Aug 27 2015, 18:00
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



Похоже проблема повторяется в 1001 раз. Эти китайские говно рекомендации детсадовские никто не использует, если более менее серьезный первркурсник или начинающий. Из-за диодов защиты, и дисбаланса напряжений, фантомное питание модулю вы обеспечиваете этими решениями.
Проц питать от 3.0V можете? Если да, то так и делайте. ТОГДА НИКАКИХ РЕЗИСТОРОВ ВООБЩЕ НЕ НУЖНО. Все как на схеме рис 18. Если все же нужно питание (по каким то заморочкам, никому непонятным) 3.3V ставьте нормальные трансляторы уровней, тут на форуме есть несколько рекомендаций. Тогда пролемы пропадут.



Go to the top of the page
 
+Quote Post
lolful
сообщение Aug 28 2015, 05:24
Сообщение #7


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

Группа: Свой
Сообщений: 106
Регистрация: 27-11-07
Из: Пермь
Пользователь №: 32 732



Каким образом появится фантомное питание если, во-первых, после делителя из резисторов 1 кОм, 5.6 кОм получается потенциал "1", равный 2.8В, соответствующий лог. уровням модема. Во-вторых, на этих ножках всегда лог. "0"?
Go to the top of the page
 
+Quote Post
Aner
сообщение Aug 28 2015, 08:11
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



QUOTE (lolful @ Aug 28 2015, 08:24) *
Каким образом появится фантомное питание если, во-первых, после делителя из резисторов 1 кОм, 5.6 кОм получается потенциал "1", равный 2.8В, соответствующий лог. уровням модема. Во-вторых, на этих ножках всегда лог. "0"?

.. почитайте посты по питанию SIM900-х, подключению внешних контролеров там все объяснено.
Go to the top of the page
 
+Quote Post
lolful
сообщение Aug 28 2015, 12:33
Сообщение #9


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

Группа: Свой
Сообщений: 106
Регистрация: 27-11-07
Из: Пермь
Пользователь №: 32 732



Обратно запаял все резисторы - глюк не появлся... Что-то я упустил. Наверное как-то связано с тем, что сегодня луна полная...
Go to the top of the page
 
+Quote Post

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

 


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


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