LINUX.ORG.RU

Не откликается модуль SIM800 на AT команды

 , , sim800


0

2

Прикупил на алишке готовую плату на базе модема SIM800. Воткнул рабочую SIM карту, подал на нее питание, включил сам модуль. Вижу что мигает NETLIGHT вывод 64ms On/ 3000ms Off SIM800 registered to the network. Значит симку увидел и в сеть зарегалось

А вот AT команды не доходят. На плате можно выбрать, либо это TTL уровни чтобы управлять 3.3В UARTом, либо RS-232. У меня четко выбрано RS-232. Подключился через USB-RS-232, пробовал замыкать 2-3 пины у разъема там, где как раз непосредственно подходит к модему (вытащил для этого) - эхо в консоли есть. Строки завершаю \n\r т.е. 0x0D 0x0A как и положено. Ответа нет. Точнее приходят нули. То три то четыре нуля

Пробовал и такой код накатать:

#!/usr/bin/env python3

import serial
import os, time

port = serial.Serial("/dev/ttyUSB0", baudrate = 9600, timeout = 1)

cmd = "ATE1\r\n"
bcmd = cmd.encode("utf-8")
print("bcmd= %s" % bcmd)
port.write(bcmd)
res = port.read(10)
print("res= %s" % res)

cmd = "AT\r\n"
bcmd = cmd.encode("utf-8")
print("bcmd= %s" % bcmd)
port.write(bcmd)
res = port.read(10)
print("res= %s" % res)

Все равно ответ такой же:

./test_sim800
bcmd= b'ATE1\r\n'
res= b'\x00\x00\x00\x00'
bcmd= b'AT\r\n'
res= b'\x00\x00\x00\x00'

Что может быть не так? Пробовал все скорости, и 115200 и 57600 и так далее

На плате стоит DB-9F как раз для подключения к COM-удлинителям, это ведь не null-модем, линии прямо должны идти а не накрест же

★★★★★

Последнее исправление: I-Love-Microsoft (всего исправлений: 3)

SIM800 ... пробовал замыкать 2-3 пины у разъема там

аккуратней там с замыканиями, у SIM800 Power supply voltage max 4.4 вольта, а уровень логической единицы максимум 3.1 вольт

superuser ★★★★☆
()

SIM800 На плате можно выбрать, либо это TTL уровни чтобы управлять 3.3В UARTом, либо RS-232. У меня четко выбрано RS-232

недавно делал бсп для платы с sim800c - есть у него USB и два UARTA оба с низковольтными уровнями TTL 3.3В и оба они подключены напрямую к SoC - ты не перепутал ничего насчет RS-232 ? Правда у меня урезаная схема и там указано не всё что на разъем выходит.

anonymous
()

дык ответ приходит

что ты еще хочешь, смотри, может где ошибки в твоих командах. вообще, если это AT, то заканчиваться ответ должен переводом строки. Посмотри вариации \r\n или \n тоже бывает беда и парсер в камушке не понимает сразу оба окончания.

Morin ★★★★★
()

Скорости в трёх местах настраивал?

  1. На компе.
  2. В плате.
  3. В самом модеме, если по-умолчанию не авто определение.

Ну и биты/чётность сравни

anonymous
()
Ответ на: комментарий от superuser

Со стороны кабеля а не SIM800, чтобы убедиться что всё хотя бы до него нормально идет, увидел эхо. Значит связь есть с модулем. Потом воткнул кабель обратно и снова включил плату с SIM800

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Пишут что автодетект, разные статьи говорят что 9600 8N1 должно работать по дефолту. Ничего не понимаю, sim модуль жив, вот в сеть выползает, а стороны порта показывает мне фигулю

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

У мня вот это: https://aliexpress.ru

понятно - готовая плата, с этим всё что угодно может быть. Я бы начал с терминала а не питона

tio -b 9600 /dev/ttyUSB0

и тд с разной скоростью. Потом смотреть преобразователь уровней - с ними бывают проблемы очень часто, если преобразователь USB-TTL - подключись на TTL порт и там попробуй.

anonymous
()
Ответ на: комментарий от shkolnick-kun

9600 8n1 пробовал?

Пробовал, да

2 anonymous: Да, есть COM-TTL преобразователь уровней, воткну в USB-RS232

А Python он выдает всё то же самое что и терминальные программы, это его я как раз в последнюю очередь пробовал, вдруг 0x0D 0x0A не выдавало как надо

I-Love-Microsoft ★★★★★
() автор топика
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

Обычно у них автоопределение скорости, надо несколько раз дать AT.

Ты, кстати, не видел его «приветствие» в ком порте?

Они после загрузки через несколько секунд должны что-то выдавать.

Но обычно приходит не то, что доках, а лажа каая-то, как раз из-за разницы в дефолтных скоростях…

shkolnick-kun ★★★★★
()
Ответ на: комментарий от shkolnick-kun

В душе не знаю, что ему китайцы продали. А6, например, приходят с очень разными прошивками, некоторые вообще на АТ не реагируют, пока не прошьёшь.

anonymous
()

Вообще, советую потыкать лог анализатором / осциллографом с записью на предмет скорости, стоп-старт бит, инверсии и вот этого вот всего.

anonymous
()
Ответ на: комментарий от shkolnick-kun

Они после загрузки через несколько секунд должны что-то выдавать

Ничего не выдает, а было бы удобно - сразу ясно что работает. Не могу сосчитать сколько я туда AT засунул

Не понимаю, что делаю не так, и вряд ли мне TTL UART поможет, но попробовать я просто обязан

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от shkolnick-kun

Как он поможет, если известно что RS-232 100% работоспособен. Не видит RS-232 - не видит и осциллограф

Осциллограф то у меня есть, проблем никаких, просто как он вынудит SIM800 что-то выдавать?

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от anonymous

некоторые вообще на АТ не реагируют, пока не прошьёшь

Как прошить, чем прошить. На алишке на странице товара ни слова про это

К слову, у меня есть самодельная плата с SIM800 точно таким же, но оно тоже не реагировала на AT, хотя всё доходило в него что надо, потому и решил купить готовую плату на SIM800

И вот плата на столе а результаты такие же как и для самодельной печатной платы с SIM800

I-Love-Microsoft ★★★★★
() автор топика

У меня SIM800 упорно отказывалась работать с USB-TTL 3.3v. Точно не помню, но дело было именно в питании. Вроде бы переткнул в USB 3.0 и заработало. Может ток помощнее был в этом порту.

tlx ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Как он поможет

75%, что проблема не в модеме, а в тебе. Он поможет понять, что ты делаешь не так. «Три или четыре нуля» - достаточный объём данных для анализа.

anonymous
()
Ответ на: комментарий от tlx

Модуль от 6 до 24 вольт. Я даю 12 вольт 800 мА. 10 Вт должно быть достаточно, но оно ест всего 50 мА в режиме ожидания при подключении к GSM. Лабораторный источник позволяет мне выдать вплоть до 24 вольт 5 ампер, это 120 Вт

Но документации на плату нет - сколько же SIM800 хочет питания? Может не получив нужное питание оно отрубается? Но тогда бы не подключалось бы к GSM сети

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от tlx

Это от USB 2 току не хватало, там иногда до 2 ампер доходит.

superuser ★★★★☆
()
Ответ на: комментарий от I-Love-Microsoft

Начнем с того, что порты у sim800 могут быть не совсем 3.3 В.

На осциллографе ты увидишь фактические: уровни, скорость, четность, стоп-биты.

И да, если у тебя уже два модуля подряд отказываются работать с ком-портом - дело явно в уровнях (точнее их согласовании), скорости, четности, версии прошивки (бывает кастомная EAT вместо стоковой).

shkolnick-kun ★★★★★
()
Ответ на: комментарий от shkolnick-kun

Там стоит обыкновенный max3232, слабо верится что с уровнями проблема. А вот прошивка интересная мысль, буду искать как проверить ее наличие или прошить последнюю, если это безопасно

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от tlx

Попробовал с USB-UART преобразователем на скорости 9600. Наконец это говнишко заработало! Просто раньше я пробовал UART-RS232 и видимо там с питанием преобразователя не так было. А когда есть автономное питание от USB в USB-UART, то этих трех линий GND TX RX оказывается достаточно!

Результат работы питонского скрипта:

bcmd= b'ATE1\r\n'
res= b'ATE1\r\r\nOK\r'
bcmd= b'AT\r\n'
res= b'\nAT\r\r\nOK\r\n'
Сам скрипт:
#!/usr/bin/env python3

import serial
import os, time

port = serial.Serial("/dev/ttyUSB0", baudrate = 9600, timeout = 1)

cmd = "ATE1\r\n"
bcmd = cmd.encode("utf-8")
print("bcmd= %s" % bcmd)
port.write(bcmd)
res = port.read(10)
print("res= %s" % res)

cmd = "AT\r\n"
bcmd = cmd.encode("utf-8")
print("bcmd= %s" % bcmd)
port.write(bcmd)
res = port.read(10)
print("res= %s" % res)

Почему не работает RS-232 я принципиально не понимаю, но больше тупить не хочу, USB-UART значит будь так пока

I-Love-Microsoft ★★★★★
() автор топика
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

У меня связка SIM-800 + Arduino + достаточно мощный 5 вольтовый БП не заработала, а с питанием от TTL все опрашивается и SMS идут.

tlx ★★★★★
()
Ответ на: комментарий от tlx

Есть ли возможность работать с SIM800 не только через СМС но и включить жопорез? Не потребуется для этого IP стэк и прочие ppp?

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Не знаю. Я только SMS использовал. Но на сколько помню, вместо отправки SMS, т.е. связь только в одну сторону можно использовать http коллбэк с передачей данных в адресной строке. И это делается без всяких доп.библиотек.

tlx ★★★★★
()
Ответ на: комментарий от tlx

Мне удалось разобраться с жопорезом по этой ссылке: https://2150692.ru/faq/62-gprs-svyaz-cherez-sim800%7C-i-arduino

А чтобы прочитать HTTP-ответ, нужно просто вызвать AT+HTTPREAD

Проверял своим сайтом, где был разбор выбранного мной параметра для GET и нужный HTTP-ответ. Очень полезная штука, не поднимая IP стек на МК или где-либо еще, да хоть в ПЛИС, можно получить более менее взаимодействие с интернетом

Как включать HTTPS не знаю, пишут можно, не пытался. У меня работало если только указывал http:// в URL а не https

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Спасибо.
Кстати, а почему всё так печально с GSM модулями для самоделок?

Или есть какие-то нормальные, лучше чем всё это 2G говно китайское?

Bad_ptr ★★★★★
()
Ответ на: комментарий от Bad_ptr

Или есть какие-то нормальные, лучше чем всё это 2G говно китайское?

Китай - фабрика мира, все основные SOM делают там, sad but true.

Что касается 2G, то у того же simcom есть и 3G/LTE/5G, и NBIOT, и даже всякая комбинированная хрень типа sim7000e

У меня есть опыт работы с sim800c, sim868, sim7020, если что - задавай вопросы.

shkolnick-kun ★★★★★
()
Последнее исправление: shkolnick-kun (всего исправлений: 1)
Ответ на: комментарий от Bad_ptr

А как же sim7020? Закрытием 2G пугают давно, но пока даже нет планов от него избавляться. 2G закрыт только в некоторых небольших странах, там это оправдано

2G морально устарел, но для огромного числа устройств - более чем достаточен, и дальнобойность хорошая, и покрытие широчайшее

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

но для огромного числа устройств - более чем достаточен,

Более того, он для них единственный поддерживаемый, а парк таких устройств измеряется миллионами штук, так что в ближайшие лет 10 2G вряд ли прикроют, ящитаю.

shkolnick-kun ★★★★★
()
Последнее исправление: shkolnick-kun (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.