Логический анализатор — дешёвый прибор, который показывает цифровые сигналы и декодирует протоколы. В отличие от осциллографа, он не измеряет точные уровни, зато видит много каналов и понимает I2C, SPI, UART.
Зачем: когда обмен «не идёт», надо понять, что именно происходит в шине. Пришёл ли адрес? Есть ли ACK? Правильный ли байт? Осциллограф покажет форму, анализатор — содержимое.
Что нужно: 8 каналов достаточно для SPI + UART + пары GPIO. 16 — с запасом. Скорость дискретизации 24–100 МГц хватает для I2C/SPI до 10 МГц.
Софт: Sigrok/PulseView (бесплатный, кроссплатформенный), Saleae Logic (для оригинальных), прошивки fx2lafw для дешёвых клонов.
Как пользоваться:
- Подключи землю анализатора к земле схемы (обязательно).
- Подключи каналы к SDA/SCL или MOSI/SCLK/CS.
- Настрой декодер (I2C/SPI/UART) и скорость.
- Запиши обмен и прочитай байты.
Типичные находки: адрес не тот (0x3C вместо 0x3D), устройство не отвечает ACK (нет питания или не тот режим), данные сдвинуты на бит (не тот режим SPI), обмен обрывается на середине (помеха или таймаут).
Альтернатива за ноль рублей: если у микроконтроллера есть свободный UART, можно выводить отладочную информацию, но шину так не увидеть.
Цена вопроса: клон на 8 каналов стоит 500–1500 рублей. Это одна из самых полезных покупок после мультиметра, если планируешь работать с шинами.
Без анализатора отладка I2C/SPI превращается в угадывание: код выглядит правильным, а шина молчит.
Если анализатора нет — посмотри в сторону клона на 8 каналов и Sigrok. Проверь, что твой дистрибутив его поддерживает.
Проверь себя
Почему анализатор надо обязательно соединять землёй со схемой?
Без общей земли уровни сигналов измеряются относительно разных точек, и анализатор увидит мусор или ничего. Земля — опорная точка для всех входов.
-
Wikipedia: I²C
декодирование протокола
-
SparkFun: I2C
разбор обмена