Логический анализатор: зачем нужен и как с ним работать

Компактный прибор для наблюдения за цифровыми сигналами: чем он отличается от осциллографа, какие бывают Saleae-совместимые модели и что с ними можно увидеть.
Что это за прибор
Логический анализатор — небольшое устройство для изучения цифровых сигналов логического уровня. С его помощью наблюдают за обменом данными между компьютерами, контроллерами и подключённой к ним периферией: видно, когда на проводе ноль, когда единица, сколько длятся импульсы и с какими интервалами следуют.

Осциллограф он не заменяет: у большинства анализаторов аналоговых входов нет совсем, а там, где они есть, их возможности скромны. Зато для информационных сигналов анализатор заметно удобнее. Он компактнее, проще подключается и, особенно в многоканальном исполнении, стоит дешевле. Запись выводится на экран компьютера, где её можно масштабировать, перемещать, измерять мышью и сразу расшифровывать по нужному протоколу.

Оригинал и совместимые устройства
Одно из самых распространённых семейств ведёт начало от компании Saleae из Сан-Франциско. Она выпускает три модели, различающиеся числом входов, наличием аналоговых каналов и объёмом памяти. Приборы качественные, но дорогие.

Поэтому широкое хождение получили совместимые устройства китайского производства, причём их линейка шире оригинальной. Популярности способствует бесплатная программа Saleae: она ставится на Windows, Linux и Mac, содержит драйверы и работает в том числе с неоригинальными приборами.
Реплик по сути две, остальные — вариации на их тему. Младшая повторяет Logic 8: восемь каналов и частота до 24 МГц. Это в полтора-два раза перекрывает возможности обычной Arduino, так что прибор подходит и начинающим, и более опытным пользователям для задач малой и средней сложности. На практике чаще всего хватает трёх-четырёх каналов.

Старшая — аналог Logic Pro 16 без аналоговых входов: 16 каналов, частота до 100 МГц, дополнительные настройки. Заявленную частоту она выдерживает не более чем на трёх каналах одновременно, при большем их числе максимум пропорционально снижается. Стоит такой прибор в 10–20 раз дороже младшего и рассчитан на работу с быстрыми контроллерами вроде ESP32. У Logic 8 защита входов простая, от статики; у Logic 16 дополнительно заявлена защита входных цепей от превышения напряжения и короткого замыкания.
Программа и протоколы
Программа сама определяет тип подключённого анализатора и подстраивает под него доступные настройки. Сигналы обеих моделей можно расшифровать по одному из примерно двух десятков стандартных протоколов, у каждого есть подробные параметры. Кроме того, подключаются дополнительные декодеры, написанные разработчиками и сообществом, и допускается создание собственных. Измерять интервалы помогают цветные маркеры. Освоить интерфейс несложно даже новичку.
Подключение и примеры
К компьютеру анализатор подключается по USB, отдельного питания не требует; драйвер ставится вместе с программой. К исследуемой схеме прибор присоединяют разъёмами или щупами. Обязательно нужно объединить земли устройства и анализатора — для GND предусмотрено четыре контакта.
Простой опыт: Arduino каждые 200 мс отправляет через аппаратный UART строку на скорости 9600. Землю и один канал анализатора подключают к выводу TX и запускают запись. На диаграмме появляются пачки импульсов с шагом 200 мс; при увеличении колёсиком мыши различимы отдельные биты, а после включения Serial-декодера в символьном режиме над ними читается переданный текст. Точные тайминги показывает боковая панель.
Тем же способом можно рассмотреть:
- ШИМ — например, как различается заполнение при analogWrite(9, 64) и analogWrite(9, 128);
- передачу байта в сдвиговый регистр 595 по трём линиям: latch, clock и data;
- сигналы энкодера — чтобы вычислить, как часто его нужно опрашивать, не теряя шагов;
- дребезг контактов кнопки;
- сканирование матричной клавиатуры 4х4.
Сильные и слабые стороны
Сравнивать анализатор можно только с осциллографом, и то условно: задачи пересекаются лишь отчасти, и в хорошо оснащённой мастерской нужны оба прибора.
- Плюсы: невысокая стоимость простых моделей, малые размеры, питание от USB, удобная обработка данных на компьютере, возможность сохранять и сравнивать записи, множество декодеров протоколов, простое подключение, большое число входов.
- Минусы: не видно реального напряжения на входе (а оно может оказаться слишком низким или высоким для уверенной оцифровки), нет аналогового сигнала, нужен компьютер, быстродействие ограничено.
Какую модель выбирать
Arduino работает на частоте 16 МГц, и самый быстрый сигнал, который она теоретически способна сформировать, — 8 МГц. Реальные частоты намного ниже: даже считающийся скоростным протокол адресной светодиодной ленты использует 800 кГц. Поэтому восьмиканального прибора хватает почти всегда с запасом, а 16 каналов оправданы, только если под них есть конкретные задачи.
У Logic 8 все восемь входов работают постоянно, без возможности отключения, и максимальная частота фиксирована — 24 МГц. Завышать частоту записи без надобности не стоит: чем она ниже, тем меньше расходуется памяти и тем дольше длится непрерывная запись. Чаще всего анализатор выручает при освоении чего-то нового, когда схема или код ведут себя непонятно, а причину без взгляда на сигналы не найти.