Логические анализаторы

Сейчас многие начинающие отлаживают свои устройства в Proteus ISIS, а старики от паяльника брюзжат и выказывают свое негативное отношение к этому методу, не учитывая, что их у новичков нет, ни их опыта, ни (как правило) нужного оборудования. Опыт приходит с годами, а вот второй пункт мы и рассмотрим.

Логический анализатор – что за зверь?


Логический анализатор – это инструмент, предназначенный для перехвата, записи и последующего анализа состояний цифровых схем. Инструмент в цифровой электронике такой же нужный, как осциллограф при проектировании аналоговых схем. Собственно лог. анализатор можно назвать «сводным братом» осциллографа, функции у них очень похожи – отображение напряжения на сигнальной линии в зависимости от времени. А вот подход и приоритеты разные. Количество входных линий простейшего анализатора чуть ли на порядок больше, чем у самых дорогих моделей осциллографов. Разрешающая способность собранного на коленке анализатора сравнима с характеристиками осциллографов стоимостью в килобаксы. Объем перехватываемых семплов больше на несколько порядков. И все эти плюсы происходят из-за одного отличия – в отличии от осциллографа, логический анализатор видит и запоминает только два состояния сигнальной линии – логическая единица и логический ноль. Минусом это назвать сложно, для отладки цифровых схем большее в 99% случаев не требуется.

Но самое главное достоинство этого чудо-прибора кроется во втором слове названия. Логический анализатор не только рисует диаграммы сигнальных линий, но и анализирует их, переводя в понятный человеку язык. Конечно, для этого протокол передачи должен быть известен анализатору, но об этом поговорим немного позже.

Так вот ты какой, Северный Олень!

Логические анализаторы бывают нескольких видов:

  • Самостоятельные приборы
  • Модули для цифровых осциллографов
  • Приставки для персонального компьютера.

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

А вот на приставках к компьютеру остановимся подробнее, цена этих устройств минимальна, возможности вполне серьезные, а единственный недостаток, подключение к компьютеру, не такой уж и серьезный.
Кроме того, к большинству подобных приставок прилагается документация и API (Application Programming Interface), что позволяет добавить новые протоколы к уже известным анализатору.

Итак, перейдем к практике: сегодня в программе USB-анализаторы Logic-U и Open Logic Sniffer

Logic-U

Логический анализатор Logic-U

Логический анализатор от украинской команды 6-lab. Аппаратно является клоном USBee AX(в который переделывается с помощью одного джампера) и полным клоном (причем с разрешения, как сообщает 6-lab) прибора от Saleae, чей софт Logic-U и использует.

Выполнен он на чипе CY7C68013 от Cypress.com и имеет аппаратную поддержку USB2.0, что позволяет передавать данные на больших скоростях и как следствие Logic-U умеет записывать достаточно большое количество семплов (до 2000.000.000). Записывает данные с 8 входов. А частота семплирования от 25kHz до 24MHz. Программа обработки Saleae Logic позволяет группировать входы произвольным образом, одновременно расшифровывать несколько протоколов.
Протоколы, поддерживаемые из коробки:

  • Параллельная шина
  • UART
  • I2C
  • SPI
  • 1-Wire
  • CAN
  • А так же I2S, UNI/O, DMX-512, Manchester

Saleae Logic работает без подключения приставки — только захват данных заменяется на симуляцию, так что можно скачать и посмотреть как оно выглядит на самом деле

Еще один небольшой бонус — версия Logic-U Plus может стать клоном USBee, для это нужно просто переставить джампер. USBee это не столько логический анализатор (если честно, то Seleae Logic мне больше понравилась), сколько чудо примочка: генератор сигналов, простенький, но вполне рабочий одноканальный осциллограф, 8-и канальный частотомер, ШИМ-модулятор, счетчик импульсов, вольтметр, контроллер I2C.

На сайте доступны для покупки модули – переходник BNC для щупа, гальваническая развязка входов, преобразователи уровней RS-232/RS-422/CAN
Причем как сам прибор, так и модули-переходники можно приобрести как в собранном виде, так и в виде печатной платы и набора необходимых деталей для самостоятельной сборки

Цена в 70 баксов (за версию Logic-U Pro) или $39 (за набор для самостоятельного изготовления) вполне адекватная и бюджетная.

Посмотрим, как все это выглядит в деле:

Обмен данными с DS1307

I2C как в учебниках, Старт, рестарт, стоп

Окно настройка анализатора I2C

Пример экспорта в CSV: logic-export.csv

Open Logic Sniffer

OLS: поддерживает до 32х каналов и до 200Ms/s

Открытая разработка – собирается самостоятельно или заказывается уже собранный (seeedstudio.com). Плату под Xilinx Spartan 3E в домашних условиях сделать сложно, а уже собранный на seeedstudio стоит смешных $50 вместе с почтовыми расходами. Так что, я решил купить готовый, тем более, что по нашим ценам на тот же spartan3E готовый прибор выходит еще и дешевле.

Зачем еще один? Иногда возможностей Logic-U не хватает. И главный недостаток – 8 входов в OLS решен радикально: 16 буферизованных входов с толерантностью к TTL и еще 16 не буферизованных (не распаяны, но запаять совсем не сложно) входов на 3.3V. (такой кучей входов вообще мало кто может похвастать). Линии включаются группами по 8 и соответственно кушают память, которой хватает максимум на 24k семплов. Но настройки триггера позволяют обходится даже таким небольшим количеством памяти и не чувствовать ограничений.

А вот второе достоинство – использование Spartan 3E для захвата данных позволило увеличить частоту семплирования до 200MHz. Что для приборчика ценой в $50 очень и очень много.
Продается этот шедевр в виде печатной платы, никакого корпуса китайская промышленность пока не придумала. Впрочем, для умельцев напильника и клея сделать корпус не составит больших трудов. Соединительные провода (miniUSB, сигнальные) в комплект так же не входят (о чем я, к сожалению, узнал не сильно сразу) и могут приобретаться отдельно (на том же seeedstudio.com).

Распаянная гребенка на 16 входов очень удобно устанавливается на макетные платы breadboard, так что сделать (или заказать) провода у меня до сих пор не возникало достаточно желания.
Подробная документация, схемы, и программное обеспечение dangerousprototypes.com и

Те же часики, то же время, другой анализатор:

Перехватили данные, анализируем

Все что пролетало по шине I2C записано и расшифровано
Окно курсорных измерений, частота, длительность импульсов
А вот ACK/NACK видно плохо, в сравнении с Logic-U

И конечно же присутствует экспорт в CSV и HTML:
ols-export-i2c.html
ols-export-i2c.csv

P.S.

Как видно из некоторых скриншотов — оба прибора отлично работают в Linux, а вот ситуация с драйверами в Windows 7 x64 печальна — драйвера имеются, но из-за жесткой политики неназываемой компании в отношении не сертифицированных драйверов приходится переводить систему в режим тестирования (F8 при загрузке). Да и то, не всегда работает как хотелось бы. С Windows XP (x86) проблем не замечено.