Перейти к содержимому
Логический анализатор

Логический анализатор: какие данные идут по проводу

Осциллограф показывает, какой формы сигнал: уровни, фронты, помехи. Логический анализатор видит только 0 и 1, зато сам читает по ним данные: буквы по UART, адреса и байты по I2C. Ученик сначала расшифровывает посылку по битам на xSTEM Scope, потом сверяет с анализатором — и видит, что декодер делает то же, что он, только быстрее.

Осциллограф (датчик НАУРА)Логический анализатор
Что видноформа: 0…3,3 В, фронты, звон, просадкитолько 0 и 1 на 8 проводах сразу
Самая частая точка10 мкс (100 кГц)до 24 МГц
Кто читает байтыученик, по битам и курсорамидекодер — если правильно настроен
Настоящий I2C 100 кГцнет, только замедленный до 1 кГцда
Для чего«почему сигнал плохой»«что в нём передаётся»

Что нужно

  • Анализатор — дешёвый клон на 8 каналов, 24 МГц (на плате микросхема Cypress CY7C68013A, «FX2»). На Linux своя программа ему не нужна.
  • PulseView — бесплатная программа проекта sigrok:
    sudo apt install pulseview sigrok-cli sigrok-firmware-fx2lafw
    Пакет sigrok-firmware-fx2lafw загружает в анализатор прошивку при подключении; после этого он виден как sigrok FX2 LA (8ch) (USB 1d50:608c).
  • Плата ESP32 со скетчем урока 9 (examples/lesson9): она шлёт слово по UART на GPIO17 и опрашивает I2C на GPIO21/22.

Подавать на входы — только логику плат: 3,3 и 5 В. Батареи, моторы и трансформатор — на осциллограф, не сюда.

Подключение

АнализаторESP32Что
GNDGNDобщий провод — первым
D0 (CH0)GPIO17UART, 9600 бод
D1 (CH1)GPIO21I2C SDA
D2 (CH2)GPIO22I2C SCL

Первая запись

  1. PulseView → вверху устройство sigrok FX2 LA (8ch).

    В том же списке может оказаться ftdi-la — это датчик НАУРА, в нём тоже стоит FTDI. Его не выбирать: PulseView заберёт порт у xSTEM Scope.

  2. Частота 1 MHz, длина 500 k отсчётов — это 0,5 с. Run.

  3. Уже без расшифровки видно ритм: пачки UART каждые 100 мс, пачка I2C раз в 300 мс — так написан скетч.

Частоту выбирают по тому же правилу, что у осциллографа: на самый короткий бит — хотя бы 5–10 отсчётов. Бит UART 9600 длится 104 мкс — нужно от 100 кГц. На 20 кГц (так PulseView может предложить сам) на бит приходится два отсчёта, и декодер собьётся. Для I2C на 100 кГц нужно уже 1–4 МГц.

Декодеры

Жёлтая кнопка на панели → список декодеров.

UART. Щёлкнуть по зелёной метке декодера слева и назначить:

  • RX → D0, Baud rate → 9600;
  • Bit order → lsb-first — UART передаёт младшим битом вперёд;
  • Data format → ascii — над сигналом будут буквы, а не коды.

PulseView: UART lsb-first, над D0 буквы M G P U

Строка RX bits — это те же биты, что ученик читал на осциллографе: под «G» (0x47) стоит 1 1 1 0 0 0 1 0.

I2C. Добавить декодер I2C: SCL → D2, SDA → D1. Над шиной: Start, Address read: 38, R, NACK, Stop. NACK означает, что по адресу 0x38 никто не ответил — датчика AHT20 на шине нет. С датчиком будет ACK и байт состояния.

PulseView: I2C с адресом 0x38 и NACK, рядом пачка UART MGPU

Ловушка: уверенный неверный ответ

С порядком бит msb-first вместо lsb-first декодер прочитал слово «MGPU» как B2 E2 0A AA. Биты он снял верно — собрал каждый байт задом наперёд: M = 0100 1101 → 1011 0010 = B2.

PulseView: bit order msb-first, B2 E2 0A AA вместо MGPU

Это хороший вопрос группе: «почему анализатор прочитал B2, а не M?» Прибор не ошибся — ошибся человек, который его настроил. Тот же урок, что с частотой оцифровки у осциллографа: прибор показывает результат измерения, а не правду.

Опыты

Все — на скетче урока 9, без перепрошивки; слово меняется командой text в мониторе порта или полем «Слово по UART» на странице xSTEM Scope.

ОпытЧто сделатьЧто увидеть
Букваchar A, потом char B, char C41, 42, 43: меняются младшие биты
Своё имялатиницей, до 24 символовимя над D0; сверить с кодами, которые печатает ?
Сначала глазамипрочитать слово на xSTEM Scope по битам, потом включить декодерсовпало ли
Порядок битпереключить lsb-first ↔ msb-firstодно и то же слово — две разные «расшифровки»
Мало отсчётов20 кГц вместо 1 МГцдекодер сбивается; почему
I2Cприблизить пачку раз в 300 мсадрес 0x38 старшим битом вперёд — наоборот к UART; NACK

Проверено 2026-11-04: анализатор FX2 8ch, PulseView 0.4.2, sigrok-cli 0.7.2, ESP32 DevKit v1 со скетчем урока 9. Записью из командной строки (sigrok-cli -d fx2lafw --config samplerate=1m --time 400 -C D0,D1,D2 -P uart:rx=D0:baudrate=9600) слово «MGPU» расшифровано четыре раза за 0,4 с.