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

 
 
> 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
 
Start new topic
Ответов
jokolemene
сообщение Jan 6 2012, 09:54
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 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
Сообщение #3


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

Группа: Свой
Сообщений: 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
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 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
EugenyAM
сообщение Sep 19 2012, 02:54
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 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 Текстовая версия Сейчас: 20th August 2025 - 16:00
Рейтинг@Mail.ru


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