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

 
 
 
Reply to this topicStart new topic
> M10: неизвестная ошибка при аттаче к GPRS-сервису.
jokolemene
сообщение Jan 5 2012, 17:01
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 14-03-10
Пользователь №: 55 950



Всем здравствуйте!

Продолжаю писать программу для дивайса, в котором установлен M10 (Revision: M10BR06). При попытке аттача к GPRS-сервису (сразу после инициализации модуля) командой "AT+CGATT=1" появляется сообщение об ошибке "+CME ERROR: unknown". В большинстве случаев после выполнения пятисекундной задержки и повторной передачи команды "AT+CGATT=1" GPRS-сервис поднимается нормально, но один раз эта ошибка появлялась в течение нескольких минут. При этом в то-же самое время другой дивайс с модулем SIM340DZ и карточкой того-же самого провайдера поднял GPRS и соединился с сервером "на ура". Проблема не связана с каким-то конкретным оператором - проверялось на разных операторах с разными карточками (VegaLine и Tele2). Вот кусок лога работы дивайса:

Код
[00:00:00] {MAIN} ADC(0)=712; Vbat=4.17В
[00:00:00] {GSM } Включаем GSM-модуль
[00:00:02] {GSM }  ANSW: RDY
[00:00:02] {GSM }  COMM: AT+IPR?
[00:00:02] {GSM }  ANSW: +CFUN: 1
[00:00:02] {GSM }  ANSW: +CPIN: SIM PIN
[00:00:02] {GSM }  ANSW: AT+IPR?
[00:00:02] {GSM }  ANSW: +IPR: 38400
[00:00:02] {GSM }  ANSW: OK
[00:00:02] {GSM }  COMM: AT+IFC?
[00:00:03] {GSM }  ANSW: AT+IFC?
[00:00:03] {GSM }  ANSW: +IFC: 0,0
[00:00:03] {GSM }  ANSW: OK
[00:00:03] {GSM }  COMM: ATZ
[00:00:03] {GSM }  ANSW: ATZ
[00:00:03] {GSM }  ANSW: OK
[00:00:03] {GSM }  COMM: ATE0
[00:00:03] {GSM }  ANSW: ATE0
[00:00:03] {GSM }  ANSW: OK
[00:00:03] {GSM }  COMM: ATX4
[00:00:03] {GSM }  ANSW: OK
[00:00:03] {GSM }  COMM: AT+CMEE=2
[00:00:03] {GSM }  ANSW: OK
[00:00:03] {GSM }  COMM: AT+CREG=0
[00:00:03] {GSM }  ANSW: OK
[00:00:03] {GSM }  COMM: AT+QIURC=0
[00:00:03] {GSM }  ANSW: OK
[00:00:03] {GSM } Проверяем наличие и залоченность SIM-карты
[00:00:03] {GSM }  COMM: AT+CPIN?
[00:00:03] {GSM }  ANSW: +CPIN: SIM PIN
[00:00:03] {GSM }  ANSW: OK
[00:00:03] {GSM } Включена защита PIN-кодом
[00:00:03] {GSM } Считываем ID SIM-карты
[00:00:03] {GSM }  COMM: AT+QCCID
[00:00:03] {GSM }  ANSW: 89997776112013633181
[00:00:03] {GSM }  ANSW: OK
[00:00:03] {GSM } Считываем количество оставшихся попыток набора PIN-кода
[00:00:03] {GSM }  COMM: AT+QTRPIN
[00:00:03] {GSM }  ANSW: +QTRPIN: 3,3,10,10
[00:00:03] {GSM }  ANSW: OK
[00:00:03] {GSM } Пытаемся разлочить карточку
[00:00:03] {GSM }  COMM: AT+CPIN=2586
[00:00:03] {GSM }  ANSW: +CPIN: READY
[00:00:03] {GSM }  ANSW: OK
[00:00:03] {GSM } Проверяем наличие и залоченность SIM-карты
[00:00:03] {GSM }  COMM: AT+CPIN?
[00:00:03] {GSM }  ANSW: +CPIN: READY
[00:00:03] {GSM }  ANSW: OK
[00:00:03] {GSM } SIM-карточка открыта
[00:00:03] {GSM } Проверяем регистрацию в сети
[00:00:03] {GSM }  COMM: AT+CREG?
[00:00:04] {GSM }  ANSW: +CREG: 0,2
[00:00:04] {GSM }  ANSW: OK
[00:00:04] {GSM } Поиск сети
[00:00:04] {GSM } Измеряем уровень сигнала
[00:00:04] {GSM }  COMM: AT+CSQ
[00:00:04] {GSM }  ANSW: +CSQ: 99,99
[00:00:04] {GSM }  ANSW: OK
[00:00:04] {GSM } Уровень сигнала = -113 dBm
[00:00:08] {GSM } Проверяем регистрацию в сети
[00:00:08] {GSM }  COMM: AT+CREG?
[00:00:08] {GSM }  ANSW: +CREG: 0,2
[00:00:08] {GSM }  ANSW: OK
[00:00:08] {GSM } Поиск сети
[00:00:08] {GSM } Измеряем уровень сигнала
[00:00:08] {GSM }  COMM: AT+CSQ
[00:00:08] {GSM }  ANSW: +CSQ: 23,0
[00:00:08] {GSM }  ANSW: OK
[00:00:08] {GSM } Уровень сигнала = -67 dBm
[00:00:10] {MAIN} ADC(0)=687; Vbat=4.03В
[00:00:13] {GSM } Проверяем регистрацию в сети
[00:00:13] {GSM }  COMM: AT+CREG?
[00:00:13] {GSM }  ANSW: +CREG: 0,1
[00:00:13] {GSM }  ANSW: OK
[00:00:13] {GSM } Есть регистрация в сети
[00:00:13] {GSM } Измеряем уровень сигнала
[00:00:13] {GSM }  COMM: AT+CSQ
[00:00:13] {GSM }  ANSW: +CSQ: 23,0
[00:00:13] {GSM }  ANSW: OK
[00:00:13] {GSM } Уровень сигнала = -67 dBm
[00:00:13] {TCP } Проверяем состояние канала
[00:00:13] {GSM }  COMM: AT+QISTAT
[00:00:13] {GSM }  ANSW: OK
[00:00:13] {GSM }  ANSW: STATE: IP INITIAL
[00:00:13] {TCP } Подключаем GPRS-сервис
[00:00:13] {GSM }  COMM: AT+CGATT=1
[00:00:13] {GSM }  ANSW: +CME ERROR: unknown
[00:00:13] {TCP } ERROR: нет ответа 'OK'
[00:00:15] {TCP } Проверяем состояние канала
[00:00:15] {GSM }  COMM: AT+QISTAT
[00:00:15] {GSM }  ANSW: OK
[00:00:15] {GSM }  ANSW: STATE: IP INITIAL
[00:00:15] {TCP } GPRS-канал закрыт
[00:00:15] {TCP } ERROR: неудачная попытка открыть GPRS-канал


Вопрос: что это за ошибка - "unknown"? И как от неё избавиться?

Сообщение отредактировал jokolemene - Jan 6 2012, 10:35
Go to the top of the page
 
+Quote Post
V125
сообщение Jan 5 2012, 21:40
Сообщение #2


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

Группа: Участник
Сообщений: 151
Регистрация: 24-06-11
Пользователь №: 65 866



Может надо сначала APN задать?
Go to the top of the page
 
+Quote Post
jokolemene
сообщение Jan 6 2012, 05:58
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 14-03-10
Пользователь №: 55 950



Я же говорю, что через пять секунд после "unknown" дивайс даёт эту команду повторно, получает "ОК" и дальше работает нормально. APN задаётся чуть позже - перед выполнением команды "AT+QIACT". Опять-же, точно такой-же дивайс, но с модулем SIM340DZ, аттачится к GPRS-сервису с пол-пинка, работая по точно такому-же алгоритму. Тем не менее, сделал для проверки установку APN заранее. Вот лог результата:

Код
[00:00:00] {MAIN} ADC(0)=715; Vbat=4.19В
[00:00:00] {GSM } Включаем GSM-модуль
[00:00:03] {GSM }  ANSW: RDY
[00:00:03] {GSM }  COMM: AT+IPR?
[00:00:03] {GSM }  ANSW: AT+IPR?
[00:00:03] {GSM }  ANSW: +IPR: 38400
[00:00:03] {GSM }  ANSW: OK
[00:00:03] {GSM }  COMM: AT+IFC?
[00:00:03] {GSM }  ANSW: AT+IFC?
[00:00:03] {GSM }  ANSW: +IFC: 0,0
[00:00:03] {GSM }  ANSW: OK
[00:00:03] {GSM }  COMM: ATZ
[00:00:03] {GSM }  ANSW: ATZ
[00:00:03] {GSM }  ANSW: OK
[00:00:03] {GSM }  COMM: ATE0
[00:00:03] {GSM }  ANSW: ATE0
[00:00:03] {GSM }  ANSW: OK
[00:00:03] {GSM }  COMM: ATX4
[00:00:03] {GSM }  ANSW: OK
[00:00:03] {GSM }  COMM: AT+CMEE=2
[00:00:03] {GSM }  ANSW: OK
[00:00:03] {GSM }  COMM: AT+CREG=0
[00:00:03] {GSM }  ANSW: OK
[00:00:03] {GSM }  COMM: AT+QIURC=0
[00:00:03] {GSM }  ANSW: OK
[00:00:09] {GSM } Проверяем наличие и залоченность SIM-карты
[00:00:09] {GSM }  COMM: AT+CPIN?
[00:00:09] {GSM }  ANSW: +CPIN: SIM PIN
[00:00:09] {GSM }  ANSW: OK
[00:00:09] {GSM } Включена защита PIN-кодом
[00:00:09] {GSM } Считываем ID SIM-карты
[00:00:09] {GSM }  COMM: AT+QCCID
[00:00:09] {GSM }  ANSW: 89997776112013633181
[00:00:09] {GSM }  ANSW: OK
[00:00:09] {GSM } Считываем количество оставшихся попыток набора PIN-кода
[00:00:09] {GSM }  COMM: AT+QTRPIN
[00:00:09] {GSM }  ANSW: +QTRPIN: 3,3,10,10
[00:00:09] {GSM }  ANSW: OK
[00:00:09] {GSM } Пытаемся разлочить карточку
[00:00:09] {GSM }  COMM: AT+CPIN=2586
[00:00:09] {GSM }  ANSW: +CPIN: READY
[00:00:09] {GSM }  ANSW: OK
[00:00:09] {GSM } Проверяем наличие и залоченность SIM-карты
[00:00:09] {GSM }  COMM: AT+CPIN?
[00:00:09] {GSM }  ANSW: +CPIN: READY
[00:00:09] {GSM }  ANSW: OK
[00:00:09] {GSM } SIM-карточка открыта
[00:00:10] {GSM } Проверяем регистрацию в сети
[00:00:10] {GSM }  COMM: AT+CREG?
[00:00:10] {GSM }  ANSW: +CREG: 0,2
[00:00:10] {GSM }  ANSW: OK
[00:00:10] {GSM } Поиск сети
[00:00:10] {GSM } Измеряем уровень сигнала
[00:00:10] {GSM }  COMM: AT+CSQ
[00:00:10] {GSM }  ANSW: +CSQ: 99,99
[00:00:10] {GSM }  ANSW: OK
[00:00:10] {GSM } Уровень сигнала = -113 dBm
[00:00:10] {MAIN} ADC(0)=714; Vbat=4.18В
[00:00:15] {GSM } Проверяем регистрацию в сети
[00:00:15] {GSM }  COMM: AT+CREG?
[00:00:15] {GSM }  ANSW: +CREG: 0,1
[00:00:15] {GSM }  ANSW: OK
[00:00:15] {GSM } Есть регистрация в сети
[00:00:15] {GSM } Измеряем уровень сигнала
[00:00:15] {GSM }  COMM: AT+CSQ
[00:00:15] {GSM }  ANSW: +CSQ: 20,0
[00:00:15] {GSM }  ANSW: OK
[00:00:15] {GSM } Уровень сигнала = -73 dBm
[00:00:15] {TCP } Проверяем состояние канала
[00:00:15] {GSM }  COMM: AT+QISTAT
[00:00:15] {GSM }  ANSW: OK
[00:00:15] {GSM }  ANSW: STATE: IP INITIAL
[00:00:15] {TCP } Устанавливаем имя точки доступа, логин и пароль
[00:00:15] {GSM } Считываем номер оператора из GSM-модуля
[00:00:15] {GSM }  COMM: AT+COPS=0,2
[00:00:15] {GSM }  ANSW: OK
[00:00:15] {GSM }  COMM: AT+COPS?
[00:00:15] {GSM }  ANSW: +COPS: 0,2,"40177"
[00:00:15] {GSM }  ANSW: OK
[00:00:15] {GSM }  COMM: AT+CGDCONT=1,"IP","internet"
[00:00:15] {GSM }  ANSW: OK
[00:00:15] {GSM }  COMM: AT+QIREGAPP="internet","",""
[00:00:15] {GSM }  ANSW: OK
[00:00:15] {TCP } Подключаем GPRS-сервис
[00:00:15] {GSM }  COMM: AT+CGATT=1
[00:00:15] {GSM }  ANSW: +CME ERROR: unknown
[00:00:15] {TCP } ERROR: нет ответа 'OK'


Дополнение:
Проблема решилась так: не давать команду "AT+CGATT" совсем. Никогда. Такой "workaround" пока-что работает. Буду наблюдать. Но в любом случае "unknown" - это баг. Негоже модулю выдавать такие сообщения об ошибках на вполне легальные команды.

Сообщение отредактировал jokolemene - Jan 6 2012, 05:58
Go to the top of the page
 
+Quote Post
GeGeL
сообщение Jan 6 2012, 07:10
Сообщение #4


Местный
***

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



Почему workaround? Ни в GSM_TCPIP_AN_V1.01, ни в GSM_TCPIP_Recommended_Process_V1.0 эта команда даже не упоминается. И вобще ее суть трудно понять.
Go to the top of the page
 
+Quote Post
kovz
сообщение Jan 6 2012, 08:55
Сообщение #5


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

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



Цитата(GeGeL @ Jan 6 2012, 09:10) *
Почему workaround? Ни в GSM_TCPIP_AN_V1.01, ни в GSM_TCPIP_Recommended_Process_V1.0 эта команда даже не упоминается. И вобще ее суть трудно понять.


Суть её ясна - регистрация в сервисе GPRS. А ошибка возможно возникает из-за того, что модуль после включения самостоятельно пытается зарегистрироваться в GPRS. Попробуйте проверять не только CREG но и CGREG. И подавать CGATT только если он равен 0, по аналогии с CREG.
Go to the top of the page
 
+Quote Post
jokolemene
сообщение Jan 6 2012, 09:54
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 14-03-10
Пользователь №: 55 950



С неделю назад мне так уже рекомендовали делать. Я проверил - результат был аналогичный (правда, при проверке команда CGREG дала ответ 2, а не 0):
Код
[00:00:12] {GSM } Проверяем регистрацию в сети
[00:00:12] {GSM }  COMM: AT+CREG?
[00:00:12] {GSM }  ANSW: +CREG: 0,1
[00:00:12] {GSM }  ANSW: OK
[00:00:12] {GSM } Есть регистрация в сети
[00:00:12] {GSM } Измеряем уровень сигнала
[00:00:12] {GSM }  COMM: AT+CSQ
[00:00:12] {GSM }  ANSW: +CSQ: 18,0
[00:00:12] {GSM }  ANSW: OK
[00:00:12] {GSM } Уровень сигнала = -77 dBm
[00:00:12] {TCP } Проверяем состояние канала
[00:00:12] {GSM }  COMM: AT+QISTAT
[00:00:12] {GSM }  ANSW: OK
[00:00:12] {GSM }  ANSW: STATE: IP INITIAL
[00:00:12] {TCP } Проверяем состояние сети
[00:00:12] {GSM }  COMM: AT+CGREG?
[00:00:12] {GSM }  ANSW: +CGREG: 0,2
[00:00:12] {GSM }  ANSW: OK
[00:00:12] {TCP } Нет регистрации в сети
[00:00:12] {TCP } Подключаем GPRS-сервис
[00:00:12] {GSM }  COMM: AT+CGATT=1
[00:00:12] {GSM }  ANSW: +CME ERROR: unknown
[00:00:12] {TCP } ERROR: нет ответа 'OK'

Возможно, что если бы команда CGREG ответила 0, а не 2, то модуль на команду CGATT ответил бы ОК. Но во время тестирования команда CGREG ни разу не ответила 0. Только 2 или 1.

Сообщение отредактировал jokolemene - Jan 6 2012, 10:02
Go to the top of the page
 
+Quote Post
CupuyC
сообщение Jan 6 2012, 11:06
Сообщение #7


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

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



Прежде чем давать команду AT+CGATT=1 проверте, не подключен ли уже ЖПРС AT+CGATT?.
Неизвестная ошибка - возможно это ругань от сети, что модуль уже в ней. Попробуйте пропинговать какой-то сервер, например: AT+QPING="www.grandelectronic.com" sm.gif

Сообщение отредактировал CupuyC - Jan 6 2012, 11:07
Go to the top of the page
 
+Quote Post
EugenyAM
сообщение Sep 10 2012, 04:03
Сообщение #8


Участник
*

Группа: Свой
Сообщений: 73
Регистрация: 14-10-08
Из: Omsk
Пользователь №: 40 929



Цитата(CupuyC @ Jan 6 2012, 18:06) *
Прежде чем давать команду AT+CGATT=1 проверте, не подключен ли уже ЖПРС AT+CGATT?.
Неизвестная ошибка - возможно это ругань от сети, что модуль уже в ней. Попробуйте пропинговать какой-то сервер, например: AT+QPING="www.grandelectronic.com" sm.gif


Путем внимательного изучения документации по M10 и ряда экспериментов был найден работоспособный алгоритм инициализации для установления связи с TCP-сервером

Проверить сигнал STATUS, если 0, перейти на включение питания
Выключение питания
Ожидание STATUS=0, если за 1 минуту не дождались, выполнить отключение по аварийному сигналу
Ожидание 5 секунд
Включение питания
Ожидание STATUS=1, если не дождались - неисправность модема
Ожидание 1 секунда
ATE0 - запретить эхо
AT+IPR=115200 - зафиксировать скорость обмена
AT+IFC=0,0 - отключить управление потоком (если оно не используется)
AT+CMEE=2 - установить расширенный формат вывода сообщений об ошибках
AT+QSIMSTAT? - запросить наличие SIM-карты - ожидаем ответ +QSIMSTAT: 0,1
AT+CIMI - запросить код сети (первые 5 цифр в ответе), далее используется для выбора из таблицы параметров APN,username,password
AT+CSQ - запросить уровень сигнала сети - ожидаем ответ, отличный от +CSQ: 99,99
AT+CREG? - ожидаем ответ +CREG: 0,1 - если не дождались - ошибка регистрации в сети
AT+CGATT? - ожидаем ответ +CGATT: 1 - если не дождались - ошибка подключения GPRS
далее, если нужно, проводим настройку параметров стека TCP/IP (AT+QIPROMPT=0 и.т.д.)
AT+CSGP=1,"APN","username","password" - задать параметры подключения к APN
AT+QISTAT - получить состояние стека TCP/IP
- далее, в зависимоcти от состояния:
- IP INITIAL, IP STATUS, IP CLOSE - устанавливаем соединение:
-- AT+QIOPEN="TCP","xxx.xxx.xxx.xxx",port - ждем CONNECT OK, если CONNECT FAIL, переходим на QT+QISTAT
-- AT+QISEND=... передаем данные на сервер
- IP START, IP CONFIG, IP IND, IP GPRSACT - деактивируем контекст
-- AT+QIDEACT, переходим на AT+QISTAT
- TCP CONNECTING - отменяем предыдущую попытку соединения
-- AT+QICLOSE, затем сразу на AT+QIOPEN...
- PDP DEACT - если получили такой ответ - идем на начало

Работает с симками МТС, Билайн, Мегафон в Омске, когда будут результаты из других регионов - сообщу.

Сообщение отредактировал EugenyAM - Sep 10 2012, 04:15
Go to the top of the page
 
+Quote Post
GeGeL
сообщение Sep 10 2012, 11:40
Сообщение #9


Местный
***

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



8 месяцев...
Не пробовали залить над оцпу-шной прошивкой пример example_tcpip и за 5 мин доработать его, чтобы он прозрачно принимал-отправлял данные через Uart3? И ничего не глючит, и напряга ноль sm.gif
Go to the top of the page
 
+Quote Post
EugenyAM
сообщение Sep 19 2012, 02:54
Сообщение #10


Участник
*

Группа: Свой
Сообщений: 73
Регистрация: 14-10-08
Из: Omsk
Пользователь №: 40 929



Цитата(EugenyAM @ Sep 10 2012, 11:03) *
Работает с симками МТС, Билайн, Мегафон в Омске, когда будут результаты из других регионов - сообщу.


В Хабаровске на Билайне заработало нормально (раньше с новыми симками не подключалось к серверу по TCP).
В Красноярске на МТС аналогично.
В Московской области (Билайн, Мегафон) связь стала заметно устойчивее (раньше устройство могло после разрыва сутками не выходить на связь,
пока ему не передернут питание)

Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 05:13
Рейтинг@Mail.ru


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