Harbinger 10 30 июля, 2018 Опубликовано 30 июля, 2018 · Жалоба Остается только загадка, почему модуль игнорирует оператора TELE2 - вообще не видит его в эфире....Возможно, разгадка в этом: модуль из КитаяМ.б. партия не для продажи в Европу. Tele2 - он же европейский по происхождению? (upd) <\n>+CMGR: "REC UNREAD","245656p696+656","","18/07/30,16:41:26+12"<\r><\n>0204400435043700200031002D00350020043C0438043D04430442002E002004150441043B043 80020044D0442043E0433043E0020043D04350020043F0440043E04380437043E043904340435044 2 002C0020043F04350440043504370430043304400443043704380442043500200443044104420440 0 43E0439044104420432043E002E<\r><\n><\r><\n>OK<\r><\n> Это кусок (конец?) SMS: рез 1-5 минут. Если этого не произойдет, перезагрузите устройство. Что-то надо было сделать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grigorij 0 30 июля, 2018 Опубликовано 30 июля, 2018 (изменено) · Жалоба А какой вообще список сетей выдает модем с нормальной сим-картой? Я, например, за SIM800C заметил странность, что он иногда выдает ID сети вместо её имени (даже если настраиваешь вывод имени, я не ID). Может Tele2 есть в списке, но в виде ID. Просто как идея. Изменено 30 июля, 2018 пользователем Grigorij Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zheka 1 31 июля, 2018 Опубликовано 31 июля, 2018 · Жалоба Что-то надо было сделать. Просто карту нужно было заменить) Может Tele2 есть в списке, но в виде ID. Просто как идея. Похоже так и есть. Но факт остается фактом, с теле2 тоже нет коннекта, и, в отличие от предыдущей карты, попытки подключиться к сети быстро прекращаются. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vladivolt 0 31 июля, 2018 Опубликовано 31 июля, 2018 · Жалоба Но факт остается фактом, с теле2 тоже нет коннекта Мы не поддерживаем 2G в Москве и Московской области Пользоваться связью Tele2 в Москве и Московской области получится только если ваш телефон поддерживает 3G или 4G. https://msk.tele2.ru/help/article/coverage Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zheka 1 31 июля, 2018 Опубликовано 31 июля, 2018 (изменено) · Жалоба Владивольт, окститесь, жизнь есть и за пределами МКАД. И интернет с электричеством тоже). То что я замкадыш, вытекает хотя бы из того, что у меня есть симкарта ТЕЛЕ2) Grigoij, а проясните еще один практический момент, как рациональнее организовать обмен данными на микроконтроллере? Я ведь не только отправляю команды, но и принимаю различную информацию от модуля, а она может быть разной. И прийти ее может много. Скажем, контроллер занимается какими-то делами, а ему подряд приходит неколько сообщений RING. Я так думаю, по стандарту завести кольцевой буфер, и после каждого пойманного символа конца строки вычленять отдельные сообщения и складывать их в другой буфер, ставить в очередь. На случай, если следующее сообщение от модуля придет раньше чем успеешь отработать предыдущее? Просто интересно, какой принцип хорошо зарекомендовал себя на практике? Изменено 31 июля, 2018 пользователем zheka Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grigorij 0 31 июля, 2018 Опубликовано 31 июля, 2018 · Жалоба Владивольт, окститесь, жизнь есть и за пределами МКАД. И интернет с электричеством тоже). Все равно было бы неплохо уточнить, поддерживает ли данный оператор в вашем регионе 2G. Сейчас идет тенденция на сворачивания 2G, чтобы освободить частоты под 4G. Мы уже на такое нарвались и сейчас обновляем приборы в некоторых странах. Grigoij, а проясните еще один практический момент... Однозначной рекомендации здесь наверное нет. Расскажу как примерно у меня все то дело работает. Для обмена сообщенями я используют 2 буфера (один Rx, другой Tx) доступ к которым идет через DMA. Т.е. в явном виде взаимодействия с UART нет. Далее в программе есть отдельная задача (софт построен на базе FreeRTOS), которая отвечает за работу с GSM модемом. Сама эта задача представлена в виде машины состояний. В простом варианте у меня всего 5 состояний: idle (вообще ничего не делаем) инициализация модема (включаем модем и отправляем набор команд для настройки модема) регистрация в сети (регистриуемся в сети) TCP соединение (обрабатываем входящие/исходящие пакеты) выключение (корректно выключаем модем AT командам и выключаем питание) Каждое состояние (кроме TCP соединения) работает по примерно следующему сценарию: если первый раз зашли в это состояние, то отправить первую AT команду инициализировать таймер для отслеживания timeout на ответ модема отдать управление FreeRTOS если повторно зашли в это состояние (ну т.е. FreeRTOS нам управление вернула), то проверить, нет ли чего в буфере, а если есть, то обработать (например, перейти в следующее состояние или отрпавить какое-нибудь сообщение основной задаче) проверить не сработал ли timeout (например, модем не отвечает) TCP соединение работает несколько иначе. Я сейчас отказался от стека внутри модема и использую LWIP. Это состояние работает по примерно следующему сценарию: проверить, есть ли какая команда от главной задачи (например на выключение модема) если команда есть - выполнить ее если команды нет, то считать все, что есть в буфере и отправить это в LWIP на обработку Вроде не сильно запутанно написал. Еще надо учесть пару моментов. Во-первых, для модема у меня выключены URC. Это позволяет исключить "внезапный" набор каких-либо сообщений от модема. Т.е. получается система "запрос-ответ". Это позволяет легко определить, ждем мы что-нибудь от модема или нет. Во-вторых, мне нет необходимости обрабатывать СМСки или входящие звонки. С другой стороны наличие входящей СМС можно проверить по запросу, а такой поведение легко добавляет в машину состояний, описанную выше. А для входящего звонка обычно есть еще и отдельны вывод у модема, который о нем сигнализирует. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ДЕЙЛ 24 31 июля, 2018 Опубликовано 31 июля, 2018 · Жалоба zheka сказал: причина в программе - с Terminal 1.9 не работает. Галка CR=CR+LF установлена. Заработало с каким-то терминалом встроенным в Codevision AVR. Но он неудобный. Putty у меня не запустился. Какой еще терминал посоветуете? Или что делать с Terminal 1.9. ... я там жал куда можно только.. В своё время тоже озадачился поиском удобного терминала, но в итоге написал его сам. Терминал и описание здесь https://alex-exe.ru/programm/universal-terminal-st/ В ближайшее время выложу там терминал с новыми плюшками Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 1 августа, 2018 Опубликовано 1 августа, 2018 · Жалоба В своё время тоже озадачился поиском удобного терминала, но в итоге написал его сам. Терминал и описание здесь Скачал, запустил. Сразу же - выглядит очень сыро и криво. Почему так криво с элементами GUI? Почему только 115200 максимум? Почему в окне выбора COM-порта присутствуют несуществующие в системе порты и отсутствуют существующие? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ARV 0 11 февраля, 2019 Опубликовано 11 февраля, 2019 · Жалоба Тема жива еще, коллеги? У меня странная проблема нарисовалась... то ли я перемудрил и затупил, то ли просто чего-то не понимаю. Ситуация такая: собрал схему своего устройства в протеусе, USART повесил на COMPIM, а к реальному порту подключил сам модуль SIM800L. В протеусе параллельно USART прицепил терминал, чтобы видеть обмен и вмешиваться в него при необходимости. Так вот, чудеса творятся: команды, вводимые вручную в терминале модуль понимает и отрабатывает. Команды, которые шлет микроконтроллер - не понимает, на все команды либо вообще не отвечает, либо отвечает ERROR. Обмен побайтно полностью идентичный и в ручном и в автоматическом режиме, скорость 9600. В чем может быть проблема? Кстати, почитал тут тему - что-то странное вы пишите... команды в SIM800 надо отправлять без '\n', только '\r'. Когда я слал команды с '\r\n', модуль ругался. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ARV 0 11 февраля, 2019 Опубликовано 11 февраля, 2019 · Жалоба В 31.07.2018 в 17:58, Grigorij сказал: Во-первых, для модема у меня выключены URC. Это позволяет исключить "внезапный" набор каких-либо сообщений от модема. Т.е. получается система "запрос-ответ". Это позволяет легко определить, ждем мы что-нибудь от модема или нет. Во-вторых, мне нет необходимости обрабатывать СМСки или входящие звонки. С другой стороны наличие входящей СМС можно проверить по запросу, а такой поведение легко добавляет в машину состояний, описанную выше. А для входящего звонка обычно есть еще и отдельны вывод у модема, который о нем сигнализирует. Кстати, по этому тоже хотел бы посоветоваться. Я тоже с RTOS звамутил, только немного не так. У меня URC наоборот, активно заействованы: при приеме по прерываниям от модуля сразу проверяется наличие в потоке символа '\r", и как только он получен - выдается строка от предыдущего '\r'. Выдается в виде сообщения RTOS, где задача-диспетчер разбирает ответ и вызывает один из зарегистрированных обработчиков уведомлений. Все вроде хорошо, беда только с +UCSD и +CMGR: эти уведомления могут выдать данных больше, чем у меня кольцевой буфер... Поэтому приходится извращаться. Ну и забадывают постоянные ОК в ответ... P.S. все вышеописанное отрабатывает "вручную", а вот в автомате заклинило на той проблеме, что написал: модуль SIM800 не принимает команды напрямую от МК... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kiwi 0 12 февраля, 2019 Опубликовано 12 февраля, 2019 · Жалоба Много лет пользуюсь вот этим терминалом https://realterm.sourceforge.io/index.html#downloads_Download Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 12 февраля, 2019 Опубликовано 12 февраля, 2019 (изменено) · Жалоба В 11.02.2019 в 11:30, ARV сказал: команды, вводимые вручную в терминале модуль понимает и отрабатывает. Команды, которые шлет микроконтроллер - не понимает, на все команды либо вообще не отвечает, либо отвечает ERROR. Обмен побайтно полностью идентичный и в ручном и в автоматическом режиме, скорость 9600. В чем может быть проблема? Значит, не полностью идентичный. Для начало вообще отключите автодетект скорости (он, кстати, может вызвать проблемы при отсутствии пауз между командами). Второе - эхо есть ? Соответствует переданному ? Ну и наконец - когда есть сомнение, надо проверить посылки от контроллера терминалом, но если на первый взгляд нормально, этим не ограничиваться. А проверить еще и скопом, а на самом деле удобнее всего копеечным анализатором, клоном saleae logic. Чудес-то не бывает... И спрашивать лучше в профильном разделе (по интерфейсам), там больше шансов на компетентный ответ... Изменено 12 февраля, 2019 пользователем rx3apf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 26 12 февраля, 2019 Опубликовано 12 февраля, 2019 · Жалоба Для начала, если уж Вы не хотите (не привыкли, и "это мне чуждо") аппаратно проверить, что происходит на "входе" модема, то просто отключите временно SIM и поставьте перемычку на Tx-Rx компорта. Затем в протеусе проверьте, что отосланное на USART приходит обратно в неискаженном виде. Вообще, при постояннной работе с модемом, "кашерно" иметь аппаратный мониторный RS232 (обычно это 2-портовая плата NETMOS) и нуль-модемный кабель. В качестве терминала прекрасно обхожусь QModem Pro, которой уже столет. Есть отладочный режим с выдачей HEX. Недостаток только один - порты должны быть в интервале 1...9 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ARV 0 12 февраля, 2019 Опубликовано 12 февраля, 2019 · Жалоба 12 минут назад, rx3apf сказал: Значит, не полностью идентичный. Полностью идентичный. В процессе экспериментов выяснил, что простые задержки между отправляемыми байтами решают проблему. В настоящий момент задержки по 10 мс, и модуль все отлично понимает. Продолжаю разбираться в причинах. Грешу на многоступенчатость связи модуль-->протеус-->мой код. Тем более что модуль через переходник на крайне глючном клоне Prolific - замучился уже... драйвер периодически либо в BSOD выбивает систему, либо тупо перестает работать до перезагрузки системы... Вскоре планирую приступить к тестированию в реальном железе - вероятно, все глюки пропадут, и задержки не потребуются... Только что, k155la3 сказал: Вообще, при постояннной работе с модемом, "кашерно" иметь аппаратный мониторный RS232 Я ж любитель, стараюсь обходиться тем, что есть... А на все приблуды уже и USB не хватает. И каждая приблуда со своими выкрутасами. Тот же клон Selae Logic то не хочет работать, то хочет, и что ему не так - не ясно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 26 12 февраля, 2019 Опубликовано 12 февраля, 2019 · Жалоба 3 hours ago, ARV said: . . . . выяснил, что простые задержки между отправляемыми байтами решают проблему. В настоящий момент задержки по 10 мс, и модуль все отлично понимает. . . типичный для "железного" софта симптом, когда в USART грузят на передачу следующий байт, не проверив (или неправильно проверив) что регистр данных передачи USART свободен. Читая Вашу подпись к аватарке, "возьмите сразу" :) STLabs Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться