Модем не отвечает на AT в терминале — чаще всего причина в том, что выбран не тот COM-порт или порт уже занят другой программой. Прежде чем отправлять команды, нужно убедиться, что устройство определилось системой и порт свободен.

В этой статье разберём, как сделать AT-запрос к USB-модему, роутеру с модемом или GSM-модулю: от подключения и выбора терминала до базовых команд и диагностики типичных проблем. Материал подходит для Windows и Linux, а также для работы с модулями вроде SIM800 или Quectel через UART-адаптер.

Что такое AT-команды и когда они нужны

AT-команды — это текстовый протокол управления модемом, унаследованный от Hayes-модемов. Каждая команда начинается с префикса AT (от англ. attention — «внимание»), а модем отвечает строкой результата: OK, ERROR или данными.

На практике AT-запросы нужны, когда требуется проверить уровень сигнала, узнать IMEI, сменить режим работы модема, отправить SMS из скрипта или диагностировать зависший модуль. Штатный софт оператора таких возможностей обычно не даёт.

  • 🔍 Диагностика: проверка регистрации в сети и уровня сигнала.
  • ⚙️ Настройка: переключение режимов модема, управление составом портов.
  • 📨 Автоматизация: отправка и приём SMS из скриптов и программ.
  • 🛠️ Сервис: чтение информации об устройстве, сброс зависшего модуля.

Подготовка: определяем порт модема

Первое действие — найти, на каком порту «сидит» модем. В Windows откройте Диспетчер устройств и посмотрите раздел «Порты (COM и LPT)» и «Модемы». USB-модемы часто создают сразу несколько виртуальных COM-портов: один для AT-команд, другой для передачи данных.

В Linux после подключения модема выполните в терминале:

ls /dev/ttyUSB* /dev/ttyACM*

Обычно появляется несколько устройств ttyUSB0, ttyUSB1 и так далее. Какое из них принимает AT-команды — зависит от модели; проще всего проверить каждый по очереди, отправив AT и дождавшись ответа OK.

⚠️ Внимание: если порт открыт другой программой (фирменная утилита модема, менеджер подключений), терминал либо не сможет его открыть, либо команды будут «молчать». Перед работой закройте весь софт, который использует модем.
💡

Перед подключением к COM-порту завершите процессы фирменной программы модема через диспетчер задач — иначе порт останется занятым даже после закрытия окна приложения.

Выбор терминальной программы

Для отправки AT-команд нужна программа-терминал. Под Windows традиционно используют PuTTY (режим Serial), Terminal или встроенные средства некоторых утилит. Под Linux удобны minicom, screen или picocom.

ПрограммаПлатформаОсобенности
PuTTYWindows, LinuxПростой serial-режим, сохранение сессий
minicomLinuxГибкая настройка порта, работа из консоли
screenLinux, macOSУже установлен в большинстве систем
picocomLinuxМинималистичный, удобен для скриптов

Параметры подключения у большинства модемов стандартные: скорость 9600 или 115200 бод, 8 бит данных, без чётности, 1 стоп-бит (8N1). Точную скорость для конкретной модели стоит уточнить в документации — многие современные модемы поддерживают автоопределение скорости.

Как сделать AT-запрос: пошаговая инструкция

Разберём базовую последовательность на примере PuTTY в Windows. Вам нужно открыть порт, проверить связь и отправить первую осмысленную команду.

☑️ Первый AT-запрос к модему

Выполнено: 0 / 6

Откройте PuTTY, выберите тип соединения Serial, укажите порт (например, COM5) и скорость. После нажатия Open появится чёрное окно терминала. Введите AT и нажмите Enter.

Если всё настроено верно, модем ответит OK. Это значит, что канал работает и можно отправлять остальные команды. Отсутствие ответа — повод проверить порт, скорость и то, не занято ли устройство другой программой.

AT

OK

AT+CSQ

+CSQ: 19,0

OK

💡

Команда AT без параметров — универсальная проверка связи: ответ OK означает, что порт выбран правильно и модем готов принимать команды.

Базовые AT-команды для диагностики

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

  • 📶 AT+CSQ — уровень сигнала: первая цифра от 0 до 31, где 99 означает «нет сигнала».
  • 🌐 AT+CREG? — статус регистрации в сети; ответ вида +CREG: 0,1 означает регистрацию в домашней сети.
  • 🔢 AT+CGSN — чтение IMEI устройства.
  • 🏢 AT+COPS? — оператор, в сети которого зарегистрирован модем.
  • 🔄 AT+CFUN? — текущий функциональный режим модуля.

Обратите внимание: один и тот же запрос может возвращать ERROR на одном модеме и корректный ответ на другом. Это не всегда поломка — возможно, команда просто не поддерживается данной прошивкой. Сверяйтесь с AT-справочником производителя вашей модели.

📊 Для какой задачи вы используете AT-команды?
Диагностика модема и уровня сигнала
Отправка SMS из скриптов
Настройка GSM-модуля для DIY-проекта
Разблокировка или перенастройка модема

Типичные проблемы и их решение

Самая частая ситуация — терминал открыт, но модем молчит. Проверьте три вещи: правильный ли порт выбран (у модема их может быть несколько), не занят ли порт другим приложением и совпадает ли скорость. Перебор портов с отправкой AT — самый быстрый способ найти «правильный».

Вторая проблема — в терминале не видно вводимых символов. Это нормально: эхо на многих модемах по умолчанию выключено. Команда ATE1 включает отображение вводимого текста, но и без неё команды исполняются.

⚠️ Внимание: команды, меняющие режим работы модема (переключение состава устройства, сброс настроек, смена IMEI-подобных параметров), могут привести к тому, что модем перестанет определяться системой или нарушит условия оператора. Перед такими операциями найдите документацию именно на вашу модель и сохраните исходные значения параметров.

Если модем отвечает ERROR на любую команду, кроме AT, возможно, он находится в ограниченном режиме или требует ввода PIN-кода SIM-карты. Проверить это можно запросом AT+CPIN? — ответ +CPIN: READY означает, что SIM готова к работе.

Работа с GSM-модулем через Arduino

Если вы отправляете AT-команды модулю SIM800 или аналогичному через микроконтроллер, подключайте модуль через SoftwareSerial или аппаратный UART, соблюдайте уровни логики (у многих модулей 2,8 В на линиях) и обеспечьте достаточный ток питания — GSM-модули в момент передачи потребляют импульсный ток до 2 А, и просадка питания вызывает перезагрузку модуля прямо во время сеанса связи.

Автоматизация: AT-команды из скриптов

Когда ручной ввод отработан, команды логично автоматизировать. В Linux это делается прямой записью в порт:

echo -e "AT+CSQ\r" > /dev/ttyUSB2

cat /dev/ttyUSB2

Для Windows подойдёт PowerShell с объектом System.IO.Ports.SerialPort или скрипты на Python с библиотекой pyserial. Важный нюанс: команды должны завершаться символом возврата каретки \r, а после отправки нужно дать модему время на ответ, прежде чем читать буфер.

⚠️ Внимание: не отправляйте команды в порт непрерывным циклом без пауз — модем обрабатывает запросы последовательно, и при переполнении буфера часть ответов теряется, что выглядит как «зависание» устройства.
💡

При чтении ответов в скрипте ориентируйтесь на строки OK или ERROR как на маркер конца ответа — так парсинг будет устойчив к различиям в формате вывода разных модемов.

Часто задаваемые вопросы

Модем не отвечает на AT — он сломан?

Не обязательно. Чаще всего выбран не тот COM-порт, порт занят фирменной программой или не совпадает скорость. Проверьте все порты устройства по очереди и закройте софт оператора. Аппаратная неисправность — крайний вариант после всех программных проверок.

Что означает ответ ERROR на команду?

Это общий отказ в выполнении: команда не поддерживается прошивкой, неверный синтаксис или модем находится в состоянии, не позволяющем выполнить запрос (например, SIM не готова). Проверьте написание команды и статус SIM через AT+CPIN?.

Какая скорость порта нужна для AT-команд?

Типовые значения — 9600 и 115200 бод, многие модемы определяют скорость автоматически. Точное значение для вашей модели указано в её документации; если ответа нет, попробуйте оба стандартных варианта.

Можно ли отправлять AT-команды, пока модем подключён к интернету?

Зависит от модели. У многих USB-модемов командный порт и порт данных разделены, и AT-запросы работают параллельно с соединением. У других активное подключение блокирует часть команд. Проверяется опытным путём на конкретном устройстве.

Где найти полный список AT-команд моего модема?

В официальном AT Command Reference от производителя чипсета или устройства (Quectel, SIMCom, Huawei и др.). Универсального списка нет — набор команд и их синтаксис различаются между моделями и версиями прошивок.