Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Разбираюсь с Quectel M10 - уже есть траблы ;(
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
Страницы: 1, 2, 3, 4, 5
MKdemiurg
Цитата
\r\n это такой концевик пакета полностью текстовый пакет получается.


wacko.gif Извините что влез, но хотяб форум чтоли почитали.

замените \r\n на посылку 2х байтов подряд 0x0D 0x0A - и загуглите что это за коды.

rv9c
MKdemiurg
Форум читал. В курсе 0x0D 0x0A, пробовал уже sm.gif пишу
at+qisend
> #L#325567893;123 0x0D 0x0A
жму ctrl+z
send ok

в итоге сервак так и получает #L#325567893;123 0x0D 0x0A те без перехода на сл.строку...

kovz
Цитата(rv9c @ Jul 28 2011, 10:19) *
MKdemiurg
Форум читал. В курсе 0x0D 0x0A, пробовал уже sm.gif пишу
at+qisend
> #L#325567893;123 0x0D 0x0A
жму ctrl+z
send ok

в итоге сервак так и получает #L#325567893;123 0x0D 0x0A те без перехода на сл.строку...


Ваша проблема в том, что вы что в случае \r\n, что 0x0D 0x0A отправляете эти данные в текстовом режиме. Вам необходимо после ващей строки #L#325567893;123 отправить на модуль два байта, значение которых в шеснадцетиричной системе соответствует 0x0D и 0x0A соответственно, ну и потом ctrl+z.
Как это сделать уже зависит от того, через что вы общаетесь с M10 .
CADiLO
Совершенно верно - у вас все идет в текстовом виде.

Для того, чтобы добавить <CR>, нужно, удерживая <ALT>, набрать на дополнительной клавиатуре «013»
Для того, чтобы добавить <LF>, нужно, удерживая <ALT>, набрать на дополнительной клавиатуре «010»
Чтобы отправить сообщение, надо нажать CTRL+Z

Для команды AT+CIPSEND ( модуль SIM900 ) этот способ работает при передаче вручную с терминала.
Посмотрите как при этом выглядит посылка и сделайте так же в программе.
rv9c
kovz
CADiLO

Большое спасибо за подсказки! вечером опробую. В данный момент общаюсь через Putty, разбираюсь с основными командами m10.

Еще вопрос назрел sm.gif не пользовались ли вы прозрачным режимом AT+QIMODE=1 , те после установления соединения с сервером все данные отправляемые в UART прямиком отправлялись бы к серверу и наоборот.

Читаю параллельно темы по sim900 и m10 очень похожи команды.
rv9c
Все заработало sm.gif

Сделал все как посоветовал CADiLO программа Putty

Получилось следующее
AT
ok

at+qicsgp=1,"internet.usi.ru"
ok

at+qiregapp
ok

at+qiact
ok

AT+QILOCIP
ip адрес

at+qiopen="TCP","77.74.50.78",20332
ok

CONNECT OK

at+qisend
> #L#348528755;123 Chr(013), Chr(010) см.пост выше от CADiLO

SEND OK
#AL#1
.

.

.
ну и так далее

beer.gif
V125
Quectel M12- внешний звонок принимает, но по команде ATD +7xxxxxxxxxx;
отдает +CME ERROR: 27 Подскажите, что за ошибка? Пока и не надобно с него звонить, но грезится, что при возникновении какого либо события модуль казал бы человечьим голосом некие фразы. (Внешний МК+ какая нить память для семплов)
Просто сильно грешу на свой комп- Putty, Terminal, Hyper Terminal, tcomu12 или молчат или выдают какие то обрывки , только SiMoCo корректно работает. Возможно единственный COM порт под завязку.
Ну и еще раз поднимем вопрос от rv9c " не пользовались ли вы прозрачным режимом AT+QIMODE=1 , те после установления соединения с сервером все данные отправляемые в UART прямиком отправлялись бы к серверу и наоборот" Если я правильно понимаю, соединяемся с gps-trace.com, льем в UART М12 данные NMEA с GPS модуля и вуаля- получаем готовый трекер. Или все не так просто?

Aleksandr_q
Цитата(V125 @ Aug 9 2011, 13:23) *
Quectel M12- внешний звонок принимает, но по команде ATD +7xxxxxxxxxx;
отдает +CME ERROR: 27 Подскажите, что за ошибка?


Так вы пробел уберите то. Правильно так ATD+7xxxxxxxxxx;
V125
Если ATD+7xxxxxxxxxx; без пробела- совсем тишина ни ERROR ни OK
AT+CUSD=1,"#ххх#" выполняет запросы о балансе, тарифе и т.д. звонить упорно не хочет. Может есть какая команда запрета звонков и я её случайно активировал?
Aleksandr_q
Цитата(V125 @ Aug 9 2011, 16:15) *
Если ATD+7xxxxxxxxxx; без пробела- совсем тишина ни ERROR ни OK
AT+CUSD=1,"#ххх#" выполняет запросы о балансе, тарифе и т.д. звонить упорно не хочет. Может есть какая команда запрета звонков и я её случайно активировал?


На счету деньги для звонка есть?А уровень сигнала хороший?Проверьте коммандой AT+CSQ.
Сброс к заводским настройкам AT&F.
V125
Ну да, тама кончились деньги. спасибо. Хотя на остатке 5 рублей ??? странно, другая симка с деньгами звонит отлично.
Aleksandr_q
Цитата(V125 @ Aug 9 2011, 16:39) *
Ну да, тама кончились деньги. спасибо. Хотя на остатке 5 рублей ??? странно, другая симка с деньгами звонит отлично.


Ну это уже вопросы к оператору, а модуль в данной ситуации ведет себя адекватно
V125
Инициализовал, установил сессию
AT+QICSGP=1,"internet.tele2.ru"
OK
..............................
AT+QIOPEN="TCP","xxxxxxxxxxxxx
OK
CONNECT OK
При попытке передать данные
AT+QISEND здесь модуль М12 напроч виснет, на последующее AT+QICLOSE и другие команды не реагирует, пока не выключу кнопкой POWER. В чем может быть дело? Я использую только Rx Tx , AT+IFC=0,0
Aleksandr_q
Цитата(V125 @ Aug 10 2011, 19:58) *
Инициализовал, установил сессию
AT+QICSGP=1,"internet.tele2.ru"
OK
..............................
AT+QIOPEN="TCP","xxxxxxxxxxxxx
OK
CONNECT OK
При попытке передать данные
AT+QISEND здесь модуль М12 напроч виснет, на последующее AT+QICLOSE и другие команды не реагирует, пока не выключу кнопкой POWER. В чем может быть дело? Я использую только Rx Tx , AT+IFC=0,0


Ранее в этой теме было написано что "Без сигналов RTS/CTS работать GPRS не сможет". Проверьте этот момент.
V125
Я это подозревал, потому уточнил, что имеется только Rx Tx. Про сигналы RTS/CTS я в курсе. И как же передать данные с GPS модуля, ежели там только Rx Tx.
Eddy71
???
Каким боком тут RTS к GPS??
Данные с GPS модуля с ножки ТХ после парсинга шлются через GSM модуль.
Harbinger
Можно и сырые данные гнать, без парсинга (по трафику может быть невыгодно, но дело вкуса) - в любом случае ловить одним UART МК (без контроля потока) и отправлять в другой (с контролем).
Буфер, естественно, понадобится.
Если у МК UART один - дело хуже, но выкрутиться можно с помощью коммутатора или программного UART со стороны GPS (как правило, там скорости низкие, сильно напрягать не будет).
V125
Может я коряво мыслю и выражаюсь, просто хотел сначала "смоделировать" и отработать последовательность команд через СОМ, апосля использовать OPEN CPU. Сразу вслепую ковырять исходники, дебажить модуль - очковато испортить родную прошивку. Или все же поставить копеечный внешний МК и не заморачиваться. Дело как бы не в экономии 1$, заманчиво реализовать возможности модуля.
V125
С внешнего МК надо отправить через USART сообщение < AT+QICSGP=1,"internet.tele2.ru"\r\n >
Если использовать команду printf("AT+QICSGP=1,"internet.tele2.ru"\r\n "); то получается косячок с синтаксисом, кавычки внутри кавычек "internet.tele2.ru" Я с USART особо не работал. Как мне отправить сообщение с кавычками? Или сделать
putchar('A');
putchar('T');
putchar('+'); и т.д.
CupuyC
Цитата(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 ");
V125
Спасибо CupuyC слеш то что надо.
V125
Для отладки GPRS написал на 64 Меге (чтобы апосля проблем с объемом флеша небыло) программку. Нарисована и работает из PROTEUSa через виртуальный Протеусовский COM порт.
...........................
AT+QIOPEN="TCP","193.193.165.165",20332\r\n
OK
CONNECT OK
AT+QISEND
>#L#ххххххххххххххх;123\r\n
0x1A\r\n
SEND OK
#AL#1
Все прекрасно работает без сигналов RTS/CTS! Я так нигде и не нашел, что их надо ОБЯЗАТЕЛЬНО использовать, RTS пока болтается в воздухе.
V125
В местной лавке отсутствует MEGA64L (ну не хочется использовать без L из-за необходимости согласования уровней). Поэтому пока в Протеусе. Правда флеши занято 10К, а ОЗУ почти 4К. Мечтаю перебраться на STM32. Работает нормально, гонит данные на orange gps trace. Иногда что-то виснет и данные перестают передаваться. Грешу на глюки Протеуса. Но это лирика. Вопрос посуществу. Как можно гарантированно контролировать, что сам GSM-модуль не завис. По мигалке Нетлайта кажется ненадежным. И существует ли АТ команда полного ресета модуля?
novus2004
Цитата(V125 @ Oct 2 2011, 13:19) *
В местной лавке отсутствует MEGA64L (ну не хочется использовать без L из-за необходимости согласования уровней). Поэтому пока в Протеусе. Правда флеши занято 10К, а ОЗУ почти 4К. Мечтаю перебраться на STM32. Работает нормально, гонит данные на orange gps trace. Иногда что-то виснет и данные перестают передаваться. Грешу на глюки Протеуса. Но это лирика. Вопрос посуществу. Как можно гарантированно контролировать, что сам GSM-модуль не завис. По мигалке Нетлайта кажется ненадежным. И существует ли АТ команда полного ресета модуля?


Что имеено Вы подразумеваете по "модуль завис" : не отвечает на команды, выпал из сети или что-то другое.
Я бы порекомендовал бы Вам - первично смотреть регистрацию в сети (AT+CREG) в цикле программы через строго определённый промежуток. а перезагружать командой AT+CFUN. Пожалуйста, уточните синтаксис команд в даташите по модулю.
CupuyC
Цитата(V125 @ Oct 2 2011, 13:19) *
Вопрос посуществу. Как можно гарантированно контролировать, что сам GSM-модуль не завис. По мигалке Нетлайта кажется ненадежным. И существует ли АТ команда полного ресета модуля?
Работу модуля можно видеть во всех деталях используя ПО Catcher подключенное к модулю через отладочный порт.
Transistor
[deleted]
V125
Цитата(novus2004 @ Oct 3 2011, 04:37) *
Что имеено Вы подразумеваете по "модуль завис" : не отвечает на команды, выпал из сети или что-то другое.
Под "модуль завис" я имел ввиду всевозможные глюки или любое неадекватное поведение во время штатной работы. Просто чтобы застраховаться на будущее. Внеший контроллер бы это усек и перезагрузил бы модуль. Помнится кто-то где-то контролировал меандр. А что за меандр такой и откуда берется уже не помню. Вот проверять регистрацию в сети- это отличная идея (недоумился до элементарного). Я просто контролирую соединение с сервером. Если во время сна - время от времени пингую сервер и проверяю #AP#, иначе проверяю #ASD#1.
GeGeL
Если нужна высокая гарантия поддержания работоспособности, то сделайте так:
после каждой отправки данных на ваш сервер отправляйте ДНС-запрос в UDP-порт 53 на IP 8.8.8.8 с доменом, google.com, например. Посмотреть дейтаграмму можно снифером с компа. Гугл-днс ответит, и если все ОК, вы получите ответ с порта 53. Это будет вам аналогом пинга (последний, к сожалению, не реализован ни в оцпу, ни тем более в АТ).
Введите счетчик, при отсылке запроса инкрементируйте, при получении - декрементируйте. Если значение превысит заданное, можете перезапустить модуль (причем не АТ-командами и т.п., и даже не POWERKEY, а жестко по питанию - сделайте отвод от МК к управляемому стабилизатору, а МК питайте отдельно). И не забудьте watchdog в МК активировать, обнуляя в main.

ПС: меандр - у меня в трекере (см. пост в этой ветке). Но он предупреждает зависание оцпу. Кроме этого, я контролирую обмен, как описал выше (допустимое к-во потерь задается пользователем). И еще запускаю таймер при поднятии жпрс и ресетю модуль при таймауте (задается пользователем). Все это дает гарантию работы трекера в различных ситуациях.
V125
Цитата(GeGeL @ Oct 3 2011, 23:26) *
И еще запускаю таймер при поднятии жпрс и ресетю модуль при таймауте (задается пользователем). Все это дает гарантию работы трекера в различных ситуациях.
Если постоянно ресетить модуль, не очень -то экономично выходит. За GPRS соединение в ТЕЛЕ2 снимают около 40копеек. Не думаю, что другие операторы стесняются это делать. Если тока безлимит... Насчет пинга Гугла - или не врубился или Вы пропустили один мой пост. Для чего мне его пинговать, мне ведь отвечает orange gps trace. Вот если он перестал отвечать, тогда для проверки пингануть Гугл, (а заодно Рамблер с Яндексом biggrin.gif ) и сделать вывод о необходимости ресета.
GeGeL
Немного не так вы поняли: в начале процедуры конекта к жпрс запускаю таймер скажем на 3 минуты. Далее выполняю конект: проверка регистрации (если нет, то ждем), собственно конект (ждем), получение айпи сервера по домену (если необходимо, ждем) создание сокета, пинг днс того же гугла(ждем ответа). Если удачно пинг (получен ответ), то таймер останавливаем. Т.о. если что-то не так при конекте и не самоустранилось в рабочем цикле за 3 минуты, то идем на перезагруз. Это внештатная ситуация, и, по идее. возникать вобще не должна. Но предвидеть надо.

А что касается второй части, то именно так я и имел ввиду:
посылаем пакет на оранж, увеличиваем счетчик.
получаем ответ, сбрасываем счетчик.

Если счетчик больше, скажем, 3, то пингуем гугл.
При получении ответа на пинг тоже сбрасываем счетчик.

Если счетчик достиг, скажем, 6, то деактивируем жпрс и запускаем ее снова, как описано выше (с таймером).
Далее, если в течение 3 мин жпрс не удается поднять, тогда уже ресетим модуль (по таймеру).
V125
Спасибо, теперь понял. У меня при поднятии GPRS, каждый последующий шаг только после получения одобрения от модуля типа так: получили строку с ОК-далее, получили строку с CONNECT- далее, неполучили ERROR-далее и т.п. А счетчик тоже прицеплю для надежности.
V125
Прежде, чем гнать данные на Оранж я включаю прозрачный режим AT+QIMODE=1, ........ AT+QIOPEN="TCP","193.193.165.165",20332. После этого модуль не принимает АТ команды. Как теперь можно вернуть ражим АТ?
CupuyC
Цитата(V125 @ Oct 10 2011, 11:31) *
Как теперь можно вернуть ражим АТ?
+++
V125
+++Это я знал,
+++
AT+QIMODE=0
AT+QICLOSE
AT+QIDEACТ
CLOSED
AT+QIDEACT
DEACT OK
Гдето или порядок команд не тот или тайминги малы, а вот с терминала получилось. Долго однако разъединяется...
Выходит при установленном TCP соединении я не смогу прочитать пришедшие СМС?
CupuyC
Цитата(V125 @ Oct 10 2011, 12:49) *
Гдето или порядок команд не тот или тайминги малы, а вот с терминала получилось. Долго однако разъединяется...
Выходит при установленном TCP соединении я не смогу прочитать пришедшие СМС?
Да, разъединяет оно не за милисекунды.
Совершенно верно, при установленом TCP соединении SMS не почитаешь...
V125
У меня разъединяет 30 -100 сек. Может я что не так делаю. А какой выход? Прерывать сессию, читать и снова соединяться? Может есть какой хитрый способ обойти это? Уж слишком долго рвется сессия.
CupuyC
Цитата(V125 @ Oct 10 2011, 17:19) *
У меня разъединяет 30 -100 сек.
Не надо разъединать. Надо перейти с прозрачного режима в командный. Почитать СМС и снова перейти в прозрачный режим. ТСП сессия при этом не рвется.
V125
Для жесткого рестарта модуля приноровились ставить внешний ключ. Но ведь еще существует вывод EMERG_OFF. В ДШ предлагают его использовать, когда нормальное отключение модуля невозможно. Может там внутри на железном уровне стоит тот же самый ключ? Что на это скажут представители поддержки Квестеля? Может существует ли какая "секретная" блок- схема?
CupuyC
Цитата(V125 @ Oct 12 2011, 20:32) *
Для жесткого рестарта модуля приноровились ставить внешний ключ. Но ведь еще существует вывод EMERG_OFF. В ДШ предлагают его использовать, когда нормальное отключение модуля невозможно. Может там внутри на железном уровне стоит тот же самый ключ? Что на это скажут представители поддержки Квестеля? Может существует ли какая "секретная" блок- схема?
Зачем модулю жесткий рестарт? Модуль всегда реагирует на PWRKEY! За всю историю продаж не было случаев, чтобы PWRKEY не помогал. Если уж модуль вдруг завис, то помжет перезапустить модуль команда AT+QPOWD=0(программный аналог EMERG_OFF).
EMERG_OFF - поддерживается самим чипом. Это безусловное выключение без всяких процедур выхода из сети.
xmega
непонятное поведение M10 sad.gif
пробовал разные прошивки: M10BR05A09S32, M10R06A07S32

Модем при установлении TCP соединения выдает SEND OK при отправке данных, хотя данные до сервера не дошли, они приходят позже или вообще не приходят. Для проверки использовал разные проги которые ведут лог сокета. Причем такая ситуация при смене оператора либо ухудшается либо улучшается, например на "МТС" боле менее приходят с задержкой до 5...10сек, а "Мегафон" совсем до 30% данных не доходят хотя модем исправно выдает SEND OK. При включении модема SIM300 или SIM900 в тех же условиях на тех же симка все работает нормально.
Никто с таким не сталкивался? в чем может быть проблема?
CupuyC
Цитата(xmega @ Nov 7 2011, 10:06) *
непонятное поведение M10 sad.gif
пробовал разные прошивки: M10BR05A09S32, M10R06A07S32
Прошивки M10BR... и M10R... для разного железа. Первая прошивка для более новых модулей, где используется усилитель мощности совмещенный с коммутатором антенны. Поэтому посмотрите на наклейку на модуле, что за прошивки Вам надо шить. Самые последние прошивки: M10BR06A06S32 M10R07A01S32. Убедитесь, что в модуль прошили соответствующую прошивку.
Подайте команду AT+CSQ и посмотрите что получите в ответ. Если слабый сигнал - проверьте все ли нормально с анетнной.
jokolemene
del
pau62
Цитата(CupuyC @ Nov 7 2011, 12:47) *
M10BR06A06S32 M10R07A01S32. Убедитесь, что в модуль прошили соответствующую прошивку.

а не подскажете ли, для модулей M10R OCPU прошивки свежие существуют? А то вроде есть такой модуль, но толку никакого от него - лежит мертвым грузом.
Aleksandr_q
Цитата(pau62 @ Dec 27 2011, 17:14) *
а не подскажете ли, для модулей M10R OCPU прошивки свежие существуют? А то вроде есть такой модуль, но толку никакого от него - лежит мертвым грузом.


Должны быть, но напишите полное название прошивки, а то тип памяти играет роль.
CupuyC
Цитата(pau62 @ Dec 27 2011, 15:14) *
а не подскажете ли, для модулей M10R OCPU прошивки свежие существуют? А то вроде есть такой модуль, но толку никакого от него - лежит мертвым грузом.
Последняя официальная версия прошивки для этих подулей вроде как M10R03A04V01S32_OCPU. Эти модули достаточно давно уже не производятся, поэтому новые прошивки под них не делаются.
pau62
Цитата(Aleksandr_q @ Dec 27 2011, 17:46) *
Должны быть, но напишите полное название прошивки, а то тип памяти играет роль.


M10R03A02M32_SST
Aleksandr_q
Ну тогда см предыдущее сообщение #195. Это последняя версия.
pau62
Пардон, это сообщение я прозевал.
V125
AT+QTTS Text To Speech. Если я правильно понял, эта команда читает текст. Тоесть говорилка. А на каком языке, сколько слов может произнести, может ли прочитать из файла (для ОЦПУ).
GeGeL
Сам не пробовал, но на сколько я в курсе, то английский. Есть также китайский вариант, пригодится для особо продвинутых клиентов sm.gif
Читает из с-string, так что сколько строка, столько и произнесет. Файл надо подгружать в массив char по кускам.
Я так понял, читает в бекграунде, так что для последовательного воспроизведения необходим поллинг окончания чтения: Ql_TTS_Query() (возвращает IDLE, INITIALIZED, PAUSE, SYNTHESIZING, SYNTHESIZED, PALYEND или PLAYING)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.