jokolemene 0 5 января, 2012 Опубликовано 5 января, 2012 (изменено) · Жалоба Всем здравствуйте! Продолжаю писать программу для дивайса, в котором установлен 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"? И как от неё избавиться? Изменено 6 января, 2012 пользователем jokolemene Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V125 0 5 января, 2012 Опубликовано 5 января, 2012 · Жалоба Может надо сначала APN задать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jokolemene 0 6 января, 2012 Опубликовано 6 января, 2012 (изменено) · Жалоба Я же говорю, что через пять секунд после "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" - это баг. Негоже модулю выдавать такие сообщения об ошибках на вполне легальные команды. Изменено 6 января, 2012 пользователем jokolemene Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gegel 0 6 января, 2012 Опубликовано 6 января, 2012 · Жалоба Почему workaround? Ни в GSM_TCPIP_AN_V1.01, ни в GSM_TCPIP_Recommended_Process_V1.0 эта команда даже не упоминается. И вобще ее суть трудно понять. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovz 0 6 января, 2012 Опубликовано 6 января, 2012 · Жалоба Почему workaround? Ни в GSM_TCPIP_AN_V1.01, ни в GSM_TCPIP_Recommended_Process_V1.0 эта команда даже не упоминается. И вобще ее суть трудно понять. Суть её ясна - регистрация в сервисе GPRS. А ошибка возможно возникает из-за того, что модуль после включения самостоятельно пытается зарегистрироваться в GPRS. Попробуйте проверять не только CREG но и CGREG. И подавать CGATT только если он равен 0, по аналогии с CREG. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jokolemene 0 6 января, 2012 Опубликовано 6 января, 2012 (изменено) · Жалоба С неделю назад мне так уже рекомендовали делать. Я проверил - результат был аналогичный (правда, при проверке команда 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. Изменено 6 января, 2012 пользователем jokolemene Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SiriuS 0 6 января, 2012 Опубликовано 6 января, 2012 (изменено) · Жалоба Прежде чем давать команду AT+CGATT=1 проверте, не подключен ли уже ЖПРС AT+CGATT?. Неизвестная ошибка - возможно это ругань от сети, что модуль уже в ней. Попробуйте пропинговать какой-то сервер, например: AT+QPING="www.grandelectronic.com" :) Изменено 6 января, 2012 пользователем CupuyC Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EugenyAM 0 10 сентября, 2012 Опубликовано 10 сентября, 2012 (изменено) · Жалоба Прежде чем давать команду AT+CGATT=1 проверте, не подключен ли уже ЖПРС AT+CGATT?. Неизвестная ошибка - возможно это ругань от сети, что модуль уже в ней. Попробуйте пропинговать какой-то сервер, например: AT+QPING="www.grandelectronic.com" :) Путем внимательного изучения документации по 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 - если получили такой ответ - идем на начало Работает с симками МТС, Билайн, Мегафон в Омске, когда будут результаты из других регионов - сообщу. Изменено 10 сентября, 2012 пользователем EugenyAM Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gegel 0 10 сентября, 2012 Опубликовано 10 сентября, 2012 · Жалоба 8 месяцев... Не пробовали залить над оцпу-шной прошивкой пример example_tcpip и за 5 мин доработать его, чтобы он прозрачно принимал-отправлял данные через Uart3? И ничего не глючит, и напряга ноль :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EugenyAM 0 19 сентября, 2012 Опубликовано 19 сентября, 2012 · Жалоба Работает с симками МТС, Билайн, Мегафон в Омске, когда будут результаты из других регионов - сообщу. В Хабаровске на Билайне заработало нормально (раньше с новыми симками не подключалось к серверу по TCP). В Красноярске на МТС аналогично. В Московской области (Билайн, Мегафон) связь стала заметно устойчивее (раньше устройство могло после разрыва сутками не выходить на связь, пока ему не передернут питание) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться