Перейти к содержимому

Урок 6 из 18 · Модуль 2. UART: диагностика и логический анализатор

22 августа 2026

Протоколы в БАС: полный курс · Урок 6 из 18 · Модуль 2. UART: всё, что ездит по двум проводам

Пошаговый алгоритм «устройство молчит», петля-тест порта и логический анализатор как рентген для протоколов.

Порядок диагностики: поменяй TX/RX → проверь GND → сверь скорость → проверь питание → убедись, что порт не занят. И только после этого проверяй само устройство.

Содержание

1. Цели урока

После этого урока вы будете понимать:

  • выполнять петля-тест для проверки UART-порта и USB-адаптера
  • использовать мультиметр для грубой оценки активности линии
  • понимать, что показывает логический анализатор и какие декодеры нужны для UART
↑ К оглавлению

2. Диагностика UART

Диагностика UART: «устройство молчит» — что делать

  1. Поменяй TX/RX местами — ошибка № 1 (см. 2.1).
  2. Проверь GND. Без общего провода данные не передаются.
  3. Сверь скорость с документацией устройства. Для GPS: попробуй автоконфигурацию (ArduPilot) или U-Center (u-blox) на компьютере.
  4. Проверь питание устройства мультиметром прямо на его контактах (не на выходе BEC — под нагрузкой проседает).
  5. Убедись, что порт не занят второй функцией в конфигураторе и не «зашит» в прошивке под другое.
  6. Проверь уровни: на покоящейся линии TX должно быть ~3,3 В (лог. 1). Ноль или 5 В — повод задуматься.
  7. Инверсия: если сигнал есть, но приёмник/FC его не видит — проверь, не инвертированный ли это протокол (SBUS, SmartPort).
  8. Петля-тест: замкни TX на RX порта перемычкой, открой терминал (115200) — всё, что отправляешь, должно вернуться эхом. Так проверяют целостность порта и USB-адаптера.

Как увидеть UART своими глазами

Самый показательный инструмент — логический анализатор: недорогой клон Saleae за ~1000 ₽ + бесплатная программа PulseView (sigrok). Подключаешься к линии TX устройства, ставишь нужный бодрейт — и читаешь байты прямо с провода: сразу видно, передаёт ли GPS данные, что именно и с какой скоростью. Подробнее — в практикуме (раздел 9).

 Saleae-output-1024x705_360b6.jpg

Если анализатора нет, приблизительную оценку даст мультиметр в режиме измерения напряжения: на активно передающей линии напряжение колеблется между 1 и 3 В (среднее значение), а на неработающей линии напряжение стабильно 0 или 3,3 В.

💻 Для программиста

UART — самый простой протокол для первых программ. На Arduino/GD32/ESP32 это три строчки:
Serial1.begin(57600);            // скорость как у GPS
if (Serial1.available()) {       // пришли байты?
  char c = Serial1.read();       // читаем по одному
}
Serial1.println("hello");        // отправляем строку + перевод строки
Реальная GPS-строка NMEA выглядит так: $GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47 — текст, разделённый запятыми. Парсить его — стандартная задача. В прошивках полётных контроллеров (Betaflight/ArduPilot) UART обслуживается аппаратно (DMA + прерывания): процессор не «ждёт» каждый байт, а получает их пачками в буфер.
↑ К оглавлению

3. Чек-лист самопроверки

Урок освоен, если каждый пункт выполнен на практике:

  • Провёл петля-тест порта
  • Считал данные GPS анализатором и увидел строки NMEA
  • Знаю восемь шагов диагностики наизусть
Результат: все пункты выполнены — переходите к следующему уроку.
↑ К оглавлению

4. Что дальше

  • Предыдущий урок: Урок 5. UART: настройка портов в Betaflight, INAV и ArduPilot
  • Следующий урок: Урок 7. I²C: шина датчиков
  • Полный перечень тем — в статье «Содержание курса».
↑ К оглавлению
6