Логический анализатор
Логический анализатор записывает уровни многих цифровых линий и раскладывает их на байты протоколов — то, что осциллограф показывает неудобно или не показывает вовсе. Разбираем по документации Saleae, исходникам sigrok и даташиту Cypress FX2LP, какой нужна частота выборки, какие пороги и пределы напряжения у входов, почему общая с компьютером земля опасна и чем отличаются Saleae Logic и недорогие анализаторы на FX2.
Обновлено Редакция GAW
Логический анализатор записывает состояние нескольких цифровых линий во времени: с заданной частотой он сравнивает напряжение каждого входа с порогом и сохраняет «0» или «1» в буфер, а после записи программа показывает временную диаграмму и раскладывает её на кадры протоколов (Saleae, Logic 8 Data Sheet, разд. Description). Типичная задача — проверить, что прошивка микроконтроллера действительно отправляет по UART, I2C или SPI то, что задумано, и найти, на каком байте обмен ломается.
Коротко
- Частота выборки
- ≥ 4 × высшей частоты цифрового сигнала
- Точность фронта
- до 1 периода выборки: 42 нс на 24 МГц
- Порог
- один на все входы; 0,8/2 В у FX2 и Logic 4
- Защита входов
- Saleae Logic 4/8/Pro — ±25 В
- Земля
- общая с USB и компьютером
- Не заменяет
- осциллограф: не видит форму и уровни
Чем анализатор отличается от осциллографа
Осциллограф показывает форму напряжения на двух-четырёх каналах, но запись у него короткая, а декодирование шин — часто платная опция. Анализатор, наоборот, видит только логический уровень, зато каналов 8–16, запись длится секунды и минуты, а протоколы разбираются программно: у Saleae Logic 2 — 24 встроенных анализатора протоколов, поиск и фильтр по результатам, а также API для собственных декодеров (Logic 8 Data Sheet). Saleae прямо пишет, что её приборы не заменяют осциллограф для проверки целостности сигналов, высокочастотных аналоговых сигналов и сигналов меньше 100 мВ (Can These Products Replace an Oscilloscope?). Обычный порядок отладки: анализатором найти, где обмен ломается, осциллографом — почему.
Частота выборки: правило «в четыре раза»
Анализаторы Saleae используют асинхронную выборку: момент выборки не зависит от сигнала, и всё, что происходит между двумя выборками, в запись не попадает (What is Asynchronous Sampling?). Поэтому сигнал нужно записывать с запасом. Правило Saleae: частота выборки цифровых каналов — не меньше чем в 4 раза выше высшей частоты сигнала, аналоговых — в 10 раз (What Is the Maximum Bandwidth of Logic?; Logic 8 Data Sheet, разд. Bandwidth vs Sample Rate).
Из той же картинки видна точность по времени: положение фронта известно с точностью до одного периода выборки. У первого Saleae Logic погрешность длительности импульса указана ±42 нс при 24 МГц (Logic Technical Specifications) — это и есть период 1/24 МГц ≈ 41,7 нс (наш расчёт).
Наибольшая частота выборки зависит от числа включённых каналов — данные идут в компьютер по USB, и полоса шины делится между ними:
| Анализатор | Каналы | Наибольшая частота выборки | Цифровая полоса |
|---|---|---|---|
| Saleae Logic 8 | 8 | 100 Мвыб/с на 3 каналах, 50 — на 6, 25 — на 8 | 25 МГц |
| Saleae Logic Pro 16 | 16 | 500 Мвыб/с на 4 каналах (USB 3.0), 100 — на 16 | 100 МГц |
| Анализаторы на FX2 с fx2lafw (sigrok) | 8 / 16 | 24 МГц на 8 каналах, 12 МГц на 16 | — |
| Saleae Logic первого поколения | 8 | 24 МГц | — |
Данные — из даташитов Saleae (DOC_620-00011, DOC_620-00013, Logic Technical Specifications) и драйвера fx2lafw (MAX_8BIT_SAMPLE_RATE, MAX_16BIT_SAMPLE_RATE в protocol.h). Наибольшие частоты требуют малой задержки USB: первый Logic предупреждал, что они достижимы не на каждом компьютере, Logic Pro для заявленных частот нужен USB 3.0.
Пороги входов и предельные напряжения
Анализатор решает, «0» или «1», сравнивая напряжение с порогом, и у всех входов Saleae порог один (Supported Voltages). От порога зависит, с какой логикой анализатор работает.
| Анализатор | Порог «0» / «1» | Логика | Предел на входе |
|---|---|---|---|
| Saleae Logic 8 | 0,6 / 1,2 В | 1,8–5 В, RS-232, RS-485, 12 В | ±25 В |
| Saleae Logic Pro 8/16 | 0,6; 0,9; 1,65 В (выбор) | 1,2–5 В | ±25 В |
| Saleae Logic 4 | 0,8 / 2,0 В | 2,5–5 В | ±25 В |
| Saleae Logic первого поколения | 0,8 / 2,0 В | 2–5 В | −0,5…5,25 В длительно, ±15 В кратковременно |
| Микросхема FX2LP (входы порта) | 0,8 / 2,0 В | 3,3–5 В | 5,25 В (абсолютный максимум) |
Источники — страница Supported Voltages, даташиты Saleae и даташит Cypress CY7C68013A (38-08032, табл. 14 и Absolute Maximum Ratings). Следствия:
- Логика 1,8 В не читается анализатором с порогом «1» 2,0 В — Saleae прямо пишет это про Logic 4. Это же относится к FX2LP, если вход платы подключён к микросхеме без буфера; у недорогих плат схему входа стоит проверить.
- Зона неопределённости. У Logic 8 между 0,6 и 1,2 В поведение не определено. Медленные фронты открытого стока I2C проходят эту зону долго, и вход может дать ложные перепады; Saleae рекомендует включать программный фильтр глитчей.
- Напряжения шин. Защита ±25 В у Logic 4/8/Pro позволяет подключать RS-232, RS-485 и 12-вольтовую логику без адаптеров; выход за этот диапазон даже на короткое время может повредить прибор (Safety & Warranty). Первый Logic и платы на FX2 рассчитаны на уровни до 5,25 В — RS-232 к ним напрямую подключать нельзя.
- Дифференциальные линии (CAN, RS-485, USB) — входы анализатора несимметричные; Saleae советует сначала преобразовать сигнал приёмником в несимметричный, хотя иногда хватает и одной линии пары (Logic 8 Data Sheet, разд. Differential Signals).
Земля общая с компьютером
Земля всех входов анализатора соединена между собой, с корпусом, с USB и, значит, с землёй компьютера (Logic 8 Data Sheet; Are the Input Channels Isolated?). Если у испытуемой схемы есть второй путь к той же земле — через другой USB-кабель, программатор или сетевой блок питания с заземлённой вилкой, — образуется контур земли. Сам по себе он не опасен, но если провод земли анализатора случайно коснётся вывода +5 В, ток короткого замыкания пойдёт через анализатор, USB-кабель и компьютер; предохранители в цепи земли Saleae не всегда успевают сработать (Safety & Warranty).
Запуск, длина записи и декодеры
- Запуск. Saleae Logic 8 запускается по фронту и по длительности импульса. Драйвер fx2lafw в sigrok поддерживает условия «0», «1», нарастание, спад и любой перепад, до четырёх ступеней запуска и задание доли записи до события.
- Длина записи. У Saleae она ограничена свободной памятью компьютера и плотностью активности в сигнале: запись хранится в сжатом виде (Logic 8 Data Sheet, разд. Sample Buffer Limit). Для первого Logic называлось 10 млрд выборок при хорошо сжимаемом сигнале.
- Декодеры протоколов. Logic 2 декодирует UART, I2C, SPI, CAN и другие протоколы и позволяет писать свои; в открытом пакете sigrok то же делает программа PulseView с библиотекой декодеров libsigrokdecode. Декодер нужно настроить: для UART — скорость, число бит, чётность и полярность; для SPI — режим (полярность и фаза такта) и порядок бит; ошибка настройки выглядит как «мусор» в декодированных байтах, а не как ошибка схемы.
Saleae, sigrok и недорогие анализаторы на FX2
Недорогие анализаторы «24 МГц, 8 каналов» построены на USB-микроконтроллере Cypress FX2LP: его программируемый параллельный интерфейс GPIF читает порт и отправляет данные в компьютер по USB 2.0 (даташит 38-08032). Драйвер fx2lafw из открытого проекта sigrok загружает в FX2 свою прошивку и поддерживает Saleae Logic первого поколения и его клоны, анализаторы CWAV USBee, отладочные платы FX2 и открытые конструкции sigrok FX2 LA на 8 и 16 каналов; частоты — от 20 кГц до 24 МГц на 8 каналах и до 12 МГц на 16 (api.c, protocol.h). Работать с ними удобно в PulseView.
Что важно знать о таких платах: если входы подключены к FX2LP напрямую, без буфера и защиты (проверьте по схеме своей платы), предел напряжения — абсолютный максимум микросхемы 5,25 В, а порог «1» — 2 В; наибольшая частота требует малой задержки USB — Saleae предупреждал об этом ещё для первого Logic; аналоговых каналов и выбора порога у таких плат обычно нет. Для UART, I2C до 400 кГц, 1-Wire и SPI до нескольких мегагерц этого хватает. Saleae Logic 8 и Logic Pro добавляют защищённые входы ±25 В, низкие пороги для 1,8 и 1,2 В, большие частоты выборки и аналоговые каналы (Logic 8 — 10 Мвыб/с, 10 бит, 0…5 В).
Пример: хватит ли 24 МГц для SPI
Нужно записать SPI на 10 МГц: четыре линии — SCLK, MOSI, MISO и CS.
- По правилу Saleae частота выборки — не меньше 4 × 10 МГц = 40 Мвыб/с (наш расчёт).
- Анализатор на FX2 с fx2lafw: 24 МГц — это 2,4 выборки на период такта, период выборки 41,7 нс почти равен полупериоду такта 50 нс. Отдельные фронты будут смещены или потеряны, и декодер ошибётся. Не подходит.
- Saleae Logic 8: на четырёх каналах доступно 50 Мвыб/с (до 6 каналов) — 5 выборок на период, условие выполнено.
- I2C на 400 кГц — нужно от 1,6 Мвыб/с, UART на 115 200 бит/с — бит длится 8,68 мкс, и даже на 1 Мвыб/с на него приходится около 8,7 выборки (наш расчёт). Тут достаточно любого из анализаторов. Формат кадра UART и время передачи помогает проверить калькулятор кадра UART, транзакцию I2C — калькулятор транзакции I2C.
Частые ошибки
- Частота выборки «на глаз». Меньше четырёх выборок на период — фронты прыгают, декодер выдаёт ошибки, хотя схема исправна.
- Не та логика. Порог «1» 2 В и сигнал 1,8 В — постоянный «0» на входе.
- Не подключена земля. Хотя бы один провод земли нужен обязательно; для быстрых сигналов Saleae советует землю на каждый канал.
- Земля под потенциалом. Контур через второй USB или заземлённый блок питания и касание шины питания — сгоревший анализатор или порт.
- Медленные фронты I2C без фильтра глитчей — ложные перепады в зоне между порогами.
- Неверные настройки декодера: скорость UART, режим SPI, порядок бит — «мусор» вместо данных.
- Попытка заменить осциллограф. Звон, перекрёстные помехи и уровни напряжений анализатор не покажет.
Частые вопросы
Какая частота выборки нужна логическому анализатору?
Saleae советует выбирать частоту выборки цифровых каналов не менее чем в 4 раза выше высшей частоты сигнала. Для I2C на 400 кГц это от 1,6 Мвыб/с, для SPI с тактом 10 МГц — от 40 Мвыб/с. Чем выше частота, тем точнее видны фронты: погрешность положения фронта — до одного периода выборки, на 24 МГц это около 42 нс.
Чем логический анализатор лучше осциллографа?
Числом каналов, длиной записи и декодированием протоколов: восемь-шестнадцать линий, секунды и минуты записи и готовые байты UART, I2C, SPI в таблице. Но он видит только «0» и «1» относительно порога, поэтому звон, медленные фронты, просадки и уровни напряжения нужно смотреть осциллографом — Saleae прямо пишет, что её анализаторы не заменяют осциллограф для проверки целостности сигналов.
Подойдёт ли дешёвый анализатор на 24 МГц и 8 каналов?
Для UART, I2C до 400 кГц, 1-Wire и медленного SPI — да: такие платы работают с открытым драйвером fx2lafw из sigrok (PulseView), который поддерживает Saleae Logic первого поколения и его клоны на 24 МГц. Для SPI на 10 МГц и выше частоты не хватает. Пороги микросхемы FX2LP — 0,8 и 2 В, поэтому логику 1,8 В она надёжно не читает, а напряжение на входе выше 5,25 В может её повредить, если на плате нет защиты.
Почему сгорел логический анализатор или порт USB?
Обычно из-за земли. Земля анализатора соединена с землёй USB и компьютера, а через сетевые блоки питания с заземлением — и с землёй сети. Если зажим земли коснулся шины питания или земля схемы находится под другим потенциалом, по проводу земли идёт ток короткого замыкания. Saleae советует перед подключением измерить напряжение между землёй анализатора и землёй схемы.
Источники
- Saleae. Logic 8, Technical Data Sheet (DOC_620-00011, V20260521) — 8 каналов, каждый цифровой и аналоговый; цифровая выборка до 100 Мвыб/с на трёх каналах, 50 — на шести, 40 — на семи, 25 — на восьми; цифровая полоса 25 МГц; порог VIL 0,6 В, VIH 1,2 В; поддерживаемые уровни 5; 3,3; 2,5; 1,8 В, RS-232, RS-485/RS-422, 12 В; вход 1 МОм ‖ 10 пФ; предельные −25…+25 В, рабочие 0…5 В; аналог: 10 Мвыб/с, полоса 1 МГц, 10 бит, 0…5 В, 4,88 мВ на единицу; 24 встроенных анализатора протоколов; запуск по фронту и длительности импульса; длина записи ограничена памятью ПК и плотностью сигнала; цифровые сигналы выбирать не менее чем в 4 раза чаще высшей частоты, аналоговые — в 10 раз; земля входов соединена с корпусом, USB и ПК — не подавать на неё напряжение; входы только несимметричные
- Saleae. Logic Pro 16, Technical Data Sheet (DOC_620-00013, V20260521) — до 500 Мвыб/с на четырёх каналах при USB 3.0, цифровая полоса 100 МГц; пороги 0,6, 0,9 и 1,65 В; вход 2 МОм ‖ 10 пФ; аналог 50 Мвыб/с, полоса 5 МГц, −10…+10 В; защита −25…+25 В
- Saleae Support. Supported Voltages; What Is the Maximum Bandwidth of Logic?; What is Asynchronous Sampling? — у всех входов один порог; Logic 8 — 0,6/1,2 В, между ними поведение не определено, для медленных фронтов I2C включать программный фильтр глитчей; Logic Pro — пороги 0,6/0,9/1,65 В, точность ±15 %; Logic 4 — 0,8/2,0 В, не подходит для 1,8 В; защита Logic 4/8/Pro ±25 В — можно подключать RS-232, RS-485, 12 В; первый Logic — 0,8/2,0 В, защита ±15 В, но длительно только −0,5…5,25 В; выборка асинхронная — всё, что между выборками, теряется; цифровые каналы — выборка ≥ 4 × полосы сигнала, аналоговые — ≥ 10 ×; у Logic Pro при 500 Мвыб/с полоса 100 МГц, а не 125
- Saleae Support. Safety & Warranty; Electrical Isolation Suggestions; Can These Products Replace an Oscilloscope? — входы не изолированы друг от друга и от ПК; выход за −25…+25 В даже кратковременно может повредить прибор; ток по земле анализатора при контуре земли (второй USB, сетевой блок питания с заземлением) повреждает анализатор, ПК и схему, предохранители в цепи земли не всегда успевают; перед подключением измерить напряжение между землёй анализатора и землёй схемы: больше примерно ±100 мВ — подключать нельзя; изоляция — USB-изолятор или цифровой изолятор на входах; анализатор не заменяет осциллограф для целостности сигналов, высокочастотного аналога и сигналов меньше 100 мВ
- Saleae. Logic (first generation) Technical Specifications — вход −0,5…5,25 В, VIL до 0,8 В, VIH от 2,0 В, 1,8 В не рекомендуется; защита ±15 В, но не для длительной работы вне −0,5…5,25 В; 1 МОм ‖ 10 пФ; частоты выборки 25 кГц…24 МГц, наибольшие требуют малой задержки USB; погрешность длительности импульса ±42 нс на 24 МГц; нельзя подключать к схемам без развязки от сети
- sigrok project. libsigrok, драйвер fx2lafw: src/hardware/fx2lafw/api.c и protocol.h (GPL-3.0) — поддерживаемые устройства: Saleae Logic и его клоны, CWAV USBee, отладочные платы Cypress FX2, анализаторы sigrok FX2 LA на 8 и 16 каналов; список частот 20 кГц…24 МГц (и 48 МГц в таблице); MAX_8BIT_SAMPLE_RATE — 24 МГц для 8 каналов, MAX_16BIT_SAMPLE_RATE — 12 МГц для 16 каналов; условия запуска: 0, 1, фронт, спад, любой перепад; NUM_TRIGGER_STAGES — 4
- Infineon (Cypress). CY7C68013A/14A/15A/16A EZ-USB FX2LP USB Microcontroller, Datasheet (38-08032 Rev. AD, 2021) — питание 3,0–3,6 В, входы выдерживают 5 В; абсолютный максимум постоянного напряжения на входе — 5,25 В; VIH — от 2 В, VIL — до 0,8 В (табл. 14); GPIF — программируемый параллельный интерфейс, тактирование 48 МГц
Нашли ошибку?
Смотрите также
- Приборы и отладкаМультиметр, осциллограф, щупы, логический анализатор, ЛБП, LCR-метр
- Щупы осциллографа10:1 и 1:1, компенсация, ёмкость, провод земли, напряжение, дифференциальные
- ОсциллографПолоса и 0,35/tr, дискретизация, память, 8 бит, запуск, вход 1 МОм, земля
- UARTКадр 8N1, скорость и допуск, TX и RX, уровни, USB–UART, AVR и STM32
- I²CSDA и SCL, START/STOP, ACK, адреса, скорости, расчёт подтяжек
- SPISCLK, MOSI, MISO, CS, режимы 0–3, daisy chain, частота, SPI в AVR
- CANCAN_H и CAN_L, терминаторы, кадр, арбитраж, ошибки, тайминг, MCP2515
- Скорость передачи (бод)Бит/с и бод: стандартные скорости и допуск UART
- Режимы SPI (CPOL, CPHA)Режимы 0–3: полярность и фаза такта SPI
- Время предустановки и удержанияИнтервалы до и после фронта такта, когда данные на входе триггера не должны меняться
- ПередискретизацияOversampling: дополнительные биты АЦП усреднением
- Земляная петляЗамкнутый контур через общие провода, в котором наводятся помехи
- Гальваническая развязкаРазделение цепей без общего провода: оптопары и изоляция
- Открытый стокВыход только с транзистором к земле, единицу даёт подтяжка
- Кадр UART по битамБиты кадра, чётность, время символа, разбор и расхождение скоростей
- Кадр SPIДиаграмма режимов 0–3, время передачи, предельная частота
- Транзакция I²C по байтамБайт адреса, ACK и NACK, повторный START, диаграмма и код
- Как узнать скорость UART?Самый короткий импульс — один бит: скорость = 1 / t
- Почему логический анализатор показывает ложные импульсы на I2C?Медленный фронт проходит неопределённую зону порогов, включите фильтр глитчей
- Можно ли подключить дешёвый логический анализатор к сигналу 12 В?Напрямую нет: предел 5,25 В, нужен делитель, а для ±12 В — ещё и ограничение снизу
- Подойдёт ли логический анализатор для сигналов 1,8 В?Только с порогом единицы ниже 1,8 В с запасом; клоны на 24 МГц — нет
- Нужно ли подключать землю логического анализатора к каждому каналу?Одна обязательна, остальные — для быстрых сигналов и рядом с помехами
- Сколько времени можно записывать логическим анализатором?Пока хватает памяти ПК: снизьте частоту выборки до 4× частоты сигнала