|
Разбираюсь с Quectel M10 - уже есть траблы ;(, часто теряет сеть |
|
|
|
Aug 21 2010, 12:55
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 30-04-09
Пользователь №: 48 496

|
Всем добрый день.
М10 частенько теряет сеть M10 отлично стартует и регистрируеться - затем теряет сеть - через 10 минут, или через 6 часов - абсолютно произвольно.
Значит по схеме. 1) ПИТАНИЕ: на LD1084ADJ - Напряжение питания 3,99В (стаблизатор на радиаторе) 2) После стабилизатора электролиты: 1000 мкф, возле модуля 2200мкф LOW ESR 3) В питании керамика шунтирует каждый электролит (0,1 мкф) 4) также стоит тантал перед модулем 22 мкф 5) Всё устройство питаеться от 12В кислотного аккума (напряжение 13,2 В)
Модуль управляеться MEGA32A - питаеться от того же стабилизатора LD1084ADJ
5) СОПРЯЖЕНИЕ M10 с МК: соединены линии: RX, TX, PWR По линии TX от микропроцессора стабилитрон и резистор. (подбирал стабилитроны от 2,8 В до варианта без стабилитрона и резистора)
6) ИНТЕРФЕЙС SIM КАРТЫ - Всё как по даташиту: 22 Ома, SIM+_DAT притянут 10 кОМ к SIM_VCC, между SIM_VCC и GND - керамика на 0,1 мкф
7) Антена - кусочек 7 см провода. Уровень сигнала очень хороший.
8) После пайки - плата мылась спиртом. О том что нужно уделять внимание промывки SIM держателя отлично знаю.
9) Оператор пробовал и КС и МТС
10) МОДУЛЬ M10-W0096-M0014 M10R05A01M32-SST
Модуль стартует - успешно отвечает и регистируеться. Затем может потерять сеть просто когда угодно, как в режиме ожидания так и при звонке. Самое интересное - что у меня 4 модуля - все себя ведут одинаково. Что я ещё не так делаю.
КУДА КОПАТЬ ? Я уже неделю с ними е..сь. Просто в отчаянии.
Ччто ещё можно попробовать ? Спасибо всем за советы заранее.
|
|
|
|
|
 |
Ответов
(165 - 179)
|
Sep 9 2011, 11:20
|

Частый гость
 
Группа: Свой
Сообщений: 188
Регистрация: 21-04-06
Из: Украина, Киев
Пользователь №: 16 335

|
Цитата(V125 @ Sep 9 2011, 13:20)  С внешнего МК надо отправить через USART сообщение < AT+QICSGP=1,"internet.tele2.ru"\r\n > Если использовать команду printf("AT+QICSGP=1,"internet.tele2.ru"\r\n "); то получается косячок с синтаксисом, кавычки внутри кавычек "internet.tele2.ru" Я с USART особо не работал. Как мне отправить сообщение с кавычками? Или просто писать ф-цию отправки сообщения Код char ch = 34; // код кавычек printf("AT+QICSGP=1,%c internet.tele2.ru%c\r\n ",ch,ch); Или может слеш экранирует кавычки: printf("AT+QICSGP=1,\"internet.tele2.ru\"\r\n ");
Сообщение отредактировал CupuyC - Sep 9 2011, 11:22
|
|
|
|
|
Oct 3 2011, 00:37
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 30-04-09
Пользователь №: 48 496

|
Цитата(V125 @ Oct 2 2011, 13:19)  В местной лавке отсутствует MEGA64L (ну не хочется использовать без L из-за необходимости согласования уровней). Поэтому пока в Протеусе. Правда флеши занято 10К, а ОЗУ почти 4К. Мечтаю перебраться на STM32. Работает нормально, гонит данные на orange gps trace. Иногда что-то виснет и данные перестают передаваться. Грешу на глюки Протеуса. Но это лирика. Вопрос посуществу. Как можно гарантированно контролировать, что сам GSM-модуль не завис. По мигалке Нетлайта кажется ненадежным. И существует ли АТ команда полного ресета модуля? Что имеено Вы подразумеваете по "модуль завис" : не отвечает на команды, выпал из сети или что-то другое. Я бы порекомендовал бы Вам - первично смотреть регистрацию в сети (AT+CREG) в цикле программы через строго определённый промежуток. а перезагружать командой AT+CFUN. Пожалуйста, уточните синтаксис команд в даташите по модулю.
|
|
|
|
|
Oct 3 2011, 06:42
|

Частый гость
 
Группа: Свой
Сообщений: 188
Регистрация: 21-04-06
Из: Украина, Киев
Пользователь №: 16 335

|
Цитата(V125 @ Oct 2 2011, 13:19)  Вопрос посуществу. Как можно гарантированно контролировать, что сам GSM-модуль не завис. По мигалке Нетлайта кажется ненадежным. И существует ли АТ команда полного ресета модуля? Работу модуля можно видеть во всех деталях используя ПО Catcher подключенное к модулю через отладочный порт.
|
|
|
|
|
Oct 3 2011, 14:57
|
Частый гость
 
Группа: Участник
Сообщений: 151
Регистрация: 24-06-11
Пользователь №: 65 866

|
Цитата(novus2004 @ Oct 3 2011, 04:37)  Что имеено Вы подразумеваете по "модуль завис" : не отвечает на команды, выпал из сети или что-то другое. Под "модуль завис" я имел ввиду всевозможные глюки или любое неадекватное поведение во время штатной работы. Просто чтобы застраховаться на будущее. Внеший контроллер бы это усек и перезагрузил бы модуль. Помнится кто-то где-то контролировал меандр. А что за меандр такой и откуда берется уже не помню. Вот проверять регистрацию в сети- это отличная идея (недоумился до элементарного). Я просто контролирую соединение с сервером. Если во время сна - время от времени пингую сервер и проверяю #AP#, иначе проверяю #ASD#1.
|
|
|
|
|
Oct 3 2011, 19:26
|
Местный
  
Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682

|
Если нужна высокая гарантия поддержания работоспособности, то сделайте так: после каждой отправки данных на ваш сервер отправляйте ДНС-запрос в UDP-порт 53 на IP 8.8.8.8 с доменом, google.com, например. Посмотреть дейтаграмму можно снифером с компа. Гугл-днс ответит, и если все ОК, вы получите ответ с порта 53. Это будет вам аналогом пинга (последний, к сожалению, не реализован ни в оцпу, ни тем более в АТ). Введите счетчик, при отсылке запроса инкрементируйте, при получении - декрементируйте. Если значение превысит заданное, можете перезапустить модуль (причем не АТ-командами и т.п., и даже не POWERKEY, а жестко по питанию - сделайте отвод от МК к управляемому стабилизатору, а МК питайте отдельно). И не забудьте watchdog в МК активировать, обнуляя в main.
ПС: меандр - у меня в трекере (см. пост в этой ветке). Но он предупреждает зависание оцпу. Кроме этого, я контролирую обмен, как описал выше (допустимое к-во потерь задается пользователем). И еще запускаю таймер при поднятии жпрс и ресетю модуль при таймауте (задается пользователем). Все это дает гарантию работы трекера в различных ситуациях.
|
|
|
|
|
Oct 4 2011, 14:31
|
Частый гость
 
Группа: Участник
Сообщений: 151
Регистрация: 24-06-11
Пользователь №: 65 866

|
Цитата(GeGeL @ Oct 3 2011, 23:26)  И еще запускаю таймер при поднятии жпрс и ресетю модуль при таймауте (задается пользователем). Все это дает гарантию работы трекера в различных ситуациях. Если постоянно ресетить модуль, не очень -то экономично выходит. За GPRS соединение в ТЕЛЕ2 снимают около 40копеек. Не думаю, что другие операторы стесняются это делать. Если тока безлимит... Насчет пинга Гугла - или не врубился или Вы пропустили один мой пост. Для чего мне его пинговать, мне ведь отвечает orange gps trace. Вот если он перестал отвечать, тогда для проверки пингануть Гугл, (а заодно Рамблер с Яндексом  ) и сделать вывод о необходимости ресета.
Сообщение отредактировал V125 - Oct 4 2011, 14:38
|
|
|
|
|
Oct 5 2011, 07:46
|
Местный
  
Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682

|
Немного не так вы поняли: в начале процедуры конекта к жпрс запускаю таймер скажем на 3 минуты. Далее выполняю конект: проверка регистрации (если нет, то ждем), собственно конект (ждем), получение айпи сервера по домену (если необходимо, ждем) создание сокета, пинг днс того же гугла(ждем ответа). Если удачно пинг (получен ответ), то таймер останавливаем. Т.о. если что-то не так при конекте и не самоустранилось в рабочем цикле за 3 минуты, то идем на перезагруз. Это внештатная ситуация, и, по идее. возникать вобще не должна. Но предвидеть надо.
А что касается второй части, то именно так я и имел ввиду: посылаем пакет на оранж, увеличиваем счетчик. получаем ответ, сбрасываем счетчик.
Если счетчик больше, скажем, 3, то пингуем гугл. При получении ответа на пинг тоже сбрасываем счетчик.
Если счетчик достиг, скажем, 6, то деактивируем жпрс и запускаем ее снова, как описано выше (с таймером). Далее, если в течение 3 мин жпрс не удается поднять, тогда уже ресетим модуль (по таймеру).
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|