Как пользоваться логическим анализатором
Перейти к содержимому

Как пользоваться логическим анализатором

  • автор:

Записки программиста

Знакомимся с Sigrok и логическим анализатором DSLogic

Допустим, мы хотим отлаживать цифровую электронику. В предыдущих статьях я рассказывал об осциллографе Rigol DS1054Z, логическом анализаторе SUMP2 на базе iCEstick, а также плате Bus Pirate. Каждое из этих устройств поможет справится с задачей, но не то, чтобы слишком успешно. DS1054Z имеет всего 4 канала и его возможности по декодированию протоколов довольно скромны. Bus Pirate лучше может в протоколы, и каналов у него побольше, но он медленный. SUMP2 быстрый и имеет 16 каналов, но с ним вам придется самим считать единички и нолики. Неужели никак нельзя объединить сильные стороны этих устройств? Разумеется, можно! Иначе стал бы я начинать пост таким введением?

Что такое Sigrok?

Sigrok — это проект, ставящий перед собой целью разработку открытого ПО для анализа сигналов. Sigrok поддерживает различные устройства, такие, как осциллографы, логические анализаторы, мультиметры, и не только. Исходный код проекта распространяется под лицензией GPL.

Sigrok состоит из следующих частей:

  • libsigrok, ядро проекта, написанное на языке C, и состоящее в основном из драйверов для поддерживаемых устройств;
  • libsigrokdecode, библиотека, которая реализует декодирование различных протоколов (декодеры пишутся на Python);
  • sigrok-cli, консольная утилита, являющаяся фронтэндом к предыдущим двум библиотекам;
  • pulseview, GUI-фронтэнд, написанный на C++ и Qt;
  • sigrok-meter, GUI-фронтэнд для более удобного отображения медленно изменяющихся данных, например, температуры;
  • sigrok-dumps, коллекция записанных сигналов (файлы .sr) для тестирования декодеров и прочих целей;
  • sigrok-test, регрессионные тесты;

В рамках этой заметки Sigrok будет интересен нам, главным образом, как ПО для работы с логическими анализаторами. Однако не следует забывать, что Sigrok также может работать с другими устройствами, если они отдают полезные данные, и если кто-то написал драйверы для этих устройств.

Выбираем логический анализатор

Sigrok поддерживает многие логические анализаторы. Вот некоторые интересные в смысле цены/качества устройства:

    . 8 каналов, частота дискретизации 24 МГц, не имеет встроенной памяти, триггеры не поддерживаются (Sigrok попытается эмулировать их программно). Может быть неплохим вариантом, если вы не работаете с высокочастотными сигналами (скажем, разрабатываете только под AVR), или, если если вам нужно 20 недорогих устройств для обучения студентов. На eBay можно найти по запросу «24mhz 8 channel logic analyzer». Цена составляет около 7$. . 16 каналов, до 100 МГц (в зависимости от числа используемых каналов), есть сжатие передаваемых данных, памяти и триггеров нет. На eBay можно найти по запросу «100mhz 16ch logic analyzer». Устройство обойдется вам где-то в 40$. . 16 каналов, до 400 МГц при использовании 4 каналов, встроенная поддержка триггеров, по 2 мегабайта памяти на канал. Устройство появилось благодаря кампании на Kickstarter и является открытым железом. На eBay вы найдете его по запросу «dslogic». Цены на железку начинаются от 70$.

Fun fact! Еще есть проект очень маленького и полностью открытого логического анализатора Fx2grok. В готовом виде он нигде не продается, но вы можете изготовить его самостоятельно. Устройство имеет 8 каналов и частоту дискретизации 24 МГц. Как и Noname Saleae Logic Clone, устройство основано на чипе Cypress FX2.

Как вы уже догадались, себе я решил взять DSLogic. Поэтому далее будет приведены примеры именно для этого логического анализатора. Впрочем, работа с другими устройствами будет мало чем отличаться.

Дополнение: На самом деле, существует две версии DSLogic — DSLogic Basic и DSLogic Plus. Отличие заключается в наличии у последнего встроенных 256 Мбит памяти SDRAM, в которую могут быть быстро записаны сэмплы перед отправкой по USB. При написании данного поста я использовал DSLogic Basic. Интересно, что он может быть достаточно просто обновлен до версии Plus. Подробности ищите в статье Превращаем DSLogic Basic в DSLogic Plus за авторством User420.

Эксперименты с DSLogic

Итак, нам понадобятся следующие пакеты:

Здесь приведены названия пакетов для Arch Linux. В других операционных системах и дистрибутивах Linux установка может отличаться. В крайнем случае, Sigrok не сложно собрать из исходников.

Важно! Приведенные пакеты могут быть не очень стабильны, поскольку они собираются из master-веток. Я лично решил собрать их в не самый удачный момент, в результате чего PulseView часто крэшился. Но уже через пару дней все починили. В случае чего попробуйте собрать чуть более старый код или попросите помощи в рассылке.

Далее подключаем логический анализатор по USB и проверяем, что Sigrok его видит:

В моем случае ответ был следующим:

Для решения проблемы говорим:

Переподключаем устройство и проверяем, что теперь все работает.

Для просмотра всех доступных опций конкретного устройства (оно должно быть подключено) говорим:

Хорошо, давайте уже наконец запишем каких-нибудь сигналов! Я решил начать с сигналов, передаваемых между отладочной платой Nucleo-F411RE и OLED-экранчиком на базе SSD1306, работающего по 4-wire SPI:

Логический анализатор DreamSourceLab DSLogic

Как видите, устройства и провода зафиксированы на столе при помощи изоленты. Это существенно снижает вероятность того, что какой-то проводочек где-то случайно отойдет, и потом придется час разбираться, почему вместо ожидаемого сигнала мы видим какой-то мусор. Впервые этот прием я увидел на YouTube-канале OpenTechLab. Канал, к слову, совершенно топовый, и я всячески рекомендую на него подписаться. В частности, про Sigrok я узнал из этого канала. Что не удивительно, так как канал ведет Joel Holdsworth, автор PulseView.

Для записи сигналов я бы советовал использовать sigrok-cli. PulseView это тоже умеет, но не слишком хорошо (есть некоторые баги), во всяком случае, на момент написания этих строк. Уверен, со временем его доведут до ума, но пока проще сделать запись с помощью sigrok-cli и посмотреть результат в PulseView.

Выполняем следующую команду:

Пока она выполняется, нажимаем Reset на плате Nucleo, чтобы перезапустить код. Затем останавливаем команду с помощью Ctr+C и смотрим результат:

Декодирование SPI в PulseView

Сразу после открытия PulseView он не будет пытаться декодировать SPI. Соответствующий декодер нужно включить, кликнув по иконке с желтым и зеленым сигналами (справа от иконки с красным щупом). Смотрите, как здорово! Больше не нужно считать битики — программа все делает за нас. Само собой разумеется, если вы откроете код библиотеки, использованной для общения с экранчиком, то именно эти байты и увидите в коде процедуры ssd1306_Init.

А что, если мы хотим сохранить декодированные данные или, скажем, скормить их какому-то скрипту? Эту задачу можно решить с помощью sigrok-cli таким образом:

/ temp / ssd1306-spi.sr \
-P ‘spi:mosi=MOSI:clk=CLK:cs=CS’ -A ‘spi=mosi-data’

Само собой разумеется, если бы экранчик использовал протокол I2C, с задачей мы справились бы ничем не хуже. Запись данных:

Просмотр полученных данных в PulseView:

Декодирование I2C в PulseView

Декодирование при помощи sigrok-cli:

/ temp / ssd1306-i2c.sr \
-P ‘i2c:scl=SCL:sda=SDA’ -A ‘i2c=address-write:data-write’

Легко убедиться, что это те же самые данные, что передавались по SPI.

Наконец, посмотрим на данные, передаваемые между платой Nucleo и SPI flash чипом AT45DB161E:

Данные в PulseView:

Декодирование протокола SPI flash в PulseView

Заметьте, что здесь был декодирован протокол SPI, после чего был декодирован работающий поверх него протокол SPI flash. То есть, декодеры можно объединять. Сделать это можно в свойствах протокола (в данном случае SPI), в выпадающем списке Stack Decoder.

Интересно, что декодер SPI flash не понимал некоторые команды данного конкретного чипа. Однако мне не составило большого труда написать патч, добавляющий поддержку недостающих команд (UPD: патч приняли). Писать декодеры оказалось весело, советую попробовать!

Заключение

Я в восторге как от Sigrok, так и от логического анализатора DSLogic. Это совершенно незаменимые инструменты, если вам часто приходится разрабатывать / отлаживать цифровую электронику. Есть, конечно, некоторые шероховатости. Sigrok определенно нельзя назвать зрелым, стабильным проектом. Чтобы все работало, как надо, нужно уметь «держать его правильно». С другой стороны, здесь открываются большие возможности в плане самореализации!

А пользуетесь ли вы логическим анализатором, и если да, то каким?

Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.

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


Часто при разработке или отладке радиоэлектронных устройств состоящих из нескольких компонентов(микроконтроллер, АЦП, I2C память, итд) хочется посмотреть на общение этих компонентов между собой. Чтобы наконец понять почему всё написано «правильно», но ничего не работает. В целом для этого можно использовать цифровой осциллограф, но осциллографы с 4 каналами стоят достаточно дорого, да и не очень это удобно. Гораздо приятней такая задача решается при помощи логического анализатора. Логический анализатор по сути похож на осциллограф, но если основная задача осциллографа отображение изменение аналогового сигнала с чем он замечательно справляется, то цель логического анализатора запись цифрового(но не всегда только цифрового) сигнала с последующим его анализом в удобных программах.

Ниже я опишу опыт работы с логическими анализаторами Logic Pro 8 от Saleae ценой около 480$ и DSLogic Pro от DreamSourceLab(скорей всего копия) ценой $99 мне достался за 73$.
Кому стало интересно добро пожаловать под кат.

Технические характеристики

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

Число цифровых каналов 8 16 Чем больше тем лучше, но за год использования больше 4 пока было не особо нужно
Число аналоговых каналов 8 0 Для аналога предпочтительней всё же осциллограф, но иногда бывает удобно увидеть, что творится не только в цифре на канале, но и в аналоге.
Интерфейс USB 2.0 / USB 3.0 USB 2.0 USB 3.0 предпочтительней если он у вас есть конечно. Хотя момент спорный, ниже опишу почему.
Частота сэмплирования цифровых каналов Чем больше тем лучше, но в случае есть один нюанс, но об этом ниже.
Частота сэмплирования аналоговых каналов Чем больше тем лучше.
Диапазон напряжений цифра/аналог: Тут у Logic Pro 8 на выбор три пороговых напряжения 1.2V/1.8V/3.3V.
У DSLogic Pro выбор от 0V до 5V с шагом 0.1V также у него значится защита от перенапряжение -30V — +30V.
Внутреннее сопротивление каналов 1,8 MOm 250 кOm Чем больше тем лучше, меньше оказывается наводок на исследуемую схему.
Буфер 256Mbits Чем больше тем лучше, от этого параметра зависит сколько сэмплов может захватить анализатор не передавая их в компьютер. Вещь крайне полезная особенно для UBS 2.0
Глубина выборки в теории не ограничена 16MS на канал Чем больше тем лучше, Logic Pro 8 использует память PC глубина выборки может быть очень большой, однако буфера DSLogic Pro тоже хватает.

В общем по многим характеристикам Logic Pro 8 имеет перевес, особенно в плане аналоговой части. Однако отсутствие буфера сказывается отрицательно, во-первых скорость падает в два раза при использовании 4 каналов, и в 4 раза при использовании 6 и больше каналов. Но это не все, так как скорость плотно завязана на USB шину то казусы случаются если эта шина загружена, иногда достаточно подключить к одному USB хабу UART кабель, чтобы программа ругнулась и сказала, что скорости USB не хватает и скорость захвата будет снижена. Не то, чтобы это бывает часто и сильно мешает, но помнить про такое стоит.
Из особенностей DSLogic Pro хочется отметить ещё наличие внешней линии клока, и сигналов внешнего входа триггера, и выхода триггера.

Внешний вид и комплектация

Комплект Logic Pro 8:

  • сам анализатор
  • два коннектора с разноцветными проводами, по 4 канала на коннектор
  • 16 клипс для соединения с ногами микросхем, проводами, итд
  • USB 3.0 кабель USB-A to MictoUSB 3.0

Комплект DSLogic Pro:

  • сам анализатор
  • широкий коннектор на 16 каналов плюс дополнительные сигналы,
  • 16 разноцветных клипс для соединения с ногами микросхем, проводами, итд
  • USB 2.0 кабель USB-A to MictoUSB

Сравнение

Программное обеспечение

Какой бы не был хороший логический анализатор, без хорошего софта удобства работы с ним не будет. Хороший софт должен быстро отображать захваченные данные, позволять смотреть их характеристики такие как частоту, скважность. И очень хорошо, что бы он умел расшифровывать общеизвестные протоколы. Это невообразимо удобно указать где находятся ноги I2C и увидеть, что же именно происходило на шине с точки зрения I2C протокола, а не сидеть и чесать затылок вглядываясь и пытаясь понять так ли оно всё и какой здесь записался адрес. Каждый анализатор комплектуется своей программой:

Saleae Logic

Анализаторы Saleae комплектуются Saleae Logic

Программа мультиплатформенная, поддерживаются все версии Windows начиная с XP(год назад были проблемы с Win 7 и выше, в новой версии Win 7 работает без нареканий, выше не тестировал), Mac OS X 10.7 Lion+ устанавливалась и работала без нареканий, Ubuntu 12.04.2+ у меня так и не заработала(тестировал год назад на старой версии программы сейчас может работает), но я особо и не пытался.

Поддерживает большой список протоколов для анализа I2C/SPI/UART/CAN, работают без нареканий. Возможен захват как по ручному старту так и по триггеру на одном из каналов. Из недостатков на длинных выборках начинает достаточно сильно тормозить.

Из фич программы стоит отметить, возможность управление по telnet-подобному протоколу, наличие SDK для написания своих декодеров протоколов. Протоколы пишутся на C++, что усложняет процесс их написания.

DSView

DSLogic Pro комплектуется программой DSView:

Тоже мультиплатформенная программа поддержка Windows начиная с XP, Mac OS X 10.11.4, Linux(прога идёт в исходниках). По возможностям программа превосходит Saleae Logic, имеются более продвинутые триггеры с поддержкой сразу нескольких каналов, список протоколов достаточно обширен. Но тут разработчики пошли дальше и на протокол можно ещё навесить возможность расшифровки работы с конкретной реализацией этого протокола. Например Можно выбрать протокол I2C и реализацию 24СXX и после этого сразу прочитать, что именно происходило на шине с точки зрения данной микросхемы. Как протоколы так и их реализации пишутся при на Python, что по идее должно упростить написание и отладку. Тормозов в работе замечено не было.

Также стоит отметить, что проект является частично OpenSource и на GitHub выложены исходники софта, и HDL части. А на Wiki приведена схематика. Поэтому возможно скоро будет куча клонов данного устройства(возможно у меня тоже клон).

Простое тестирование

Для простой проверки анализаторов была использована дев.плата DE0-Nano-SoC на которой были сгенерированы меандры от 200Mhz каждый следующий получен делением на 2 предыдущего (200/100/50) попробую захватить их имеющимися анализаторами.

На DSLogic Pro удалось захватить 200Mhz/100Mhz/50Mhz ниже и так понятно, что всё идёт отлично. Сказать, что 200 и 100 были захвачены идеально нельзя иногда есть небольшое уплывание частоты и скважности, но в целом нормально, на 50 уже всё идеально.

И всё-таки к таким замерам я бы серьёзно не относился, 200Mhz замерять просто «накидными» проводами наверное перебор, но попробовать стоило.

Для эксперимента попробуем захватить передачу данных по I2C(передачи разные поэтому данные не сходятся).

Всё отлично читается, понятно где какое событие наступило, какие адреса и данные были переданы. Никакой возни.

Тоже самое для CAN:

Результат такой же как и в I2C всё наглядно понятно за минимальный промежуток времени.

Выводы

Оба логических анализатора отлично справляются со своими задачами. Не смотря на разницу в цене выделить кого-то в лидеры я бы не смог, у них есть и плюсы и минусы. На стороне Saleae внешний вид, удобные провода, качественные клипсы, USB3.0 и аналоговые каналы, стоит ли за это отдавать 400$ вопрос сложный, если есть возможность то почему бы и нет. На стороне DSView больше каналов, вход для внешнего клока и триггеров, буфер внутри анализатора, OpenSource софт, и цена. И тот и другой может очень сильно облегчить и ускорить работу по наладке своих или чужих схем, и изучению.сторонних протоколов.

Если есть вопросы – спрашивайте.

PS. Seleae используется у нас около года проблемы были только с ранними версиями софта под Win7 и выше, DSView купил для личного пользования около недели назад по пока нареканий нет, но и время пользования небольшое…

Работа с логическим анализатором Saleae Logic Analyzer

Логический анализатор – незаменимый помощник при отладке цифровой схемотехники. Давайте рассмотрим основные приёмы работы с логическим анализатором Saleae Logic Analyzer и его китайскими аналогами.

Для работы нам понадобится:

    ; ; ;
  • соединительные провода (рекомендую вот такой набор); (breadboard).

1 Технические характеристики логического анализатора Saleae logic analyzer

Логический анализатор – это инструмент для временного анализа цифровых сигналов. Это незаменимый, действительно незаменимый инструмент при отладке цифровой электроники. Оригинальные анализаторы от именитых производителей стоят больших денег. У наших китайских друзей можно купить такое устройство за копейки. Поэтому если у вас его ещё нет – обязательно приобретите. Возможности данного небольшого устройства весьма внушительны.

В таблице перечислены основные параметры логического анализатора, моей китайской копии анализатора фирмы Saleae.

Параметр Значение
число цифровых каналов 8
частота оцифровки на канал до 24 МГц
количество сэмплов в выборке до 1G (зависит от количества памяти ПК)
входное сопротивление 100 кОм
диапазон рабочих напряжений –0,5…5,25 В
напряжение логического «0» –0,5…0,8 В
напряжение логической «1» 2,0…5,25 В
защита от статики
защита по превышению напряжения +/−15 В

2 Установка драйверадля логического анализатора Saleae

Для данного логического анализатора – китайской копии – к счастью, подходит драйвер от оригинала. Заходим на официальный сайт, скачиваем программу для своей операционной системы и устанавливаем её. Драйверы будут установлены вместе с программой. Кстати, обзор возможностей программы в виде инструкции на английском языке приложен в конце данной статьи.

Скачиваем программу и драйверы для логического анализатора Saleae Logic Analyzer Скачиваем программу и драйверы для логического анализатора Saleae Logic Analyzer

Если у вас копия другой фирмы, например, USBee AX Pro, то с большой долей вероятности для него также подойдут драйверы от производителя анализатора-оригинала.

3 Примеры работы с логическим анализатором

Для первого эксперимента возьмём преобразователь USB-UART на микросхеме FTD1232. Подключим анализатор к порту USB. Выводы каналов с 1 по 6 подключим к выводам USB-UART преобразователя. По большому счёту, больше всего нас интересует только две линии – Rx и Tx, можно обойтись только ими. Преобразователь определился в системе как COM-порт. Запустим любую терминалку (вот, например, неплохая программа для работы с COM-портом) и подключимся к порту.

Подключение FTD1232 к логическому анализатору Подключение USB-UART конвертера на микросхеме FTD1232 к логическому анализатору

Запускаем программу Saleae Logic. Если драйверы для анализатора установлены корректно, в заголовке программы будет указано Connected – подключено. Допустим, мы не знаем на каком канале будет сигнал, а на каком нет, поэтому не будем выставлять триггер для начала захвата сигнала. Просто нажмём на стрелки большой зелёной кнопки Start (Старт) и выставим в поле Duration (Длительность), скажем, 10 секунд. Это время, в течение которого логический анализатор будет собирать приходящие по всем 8-ми каналам данные после нажатия кнопки «Старт». Запускаем захват и одновременно отправляем в COM-порт какое-нибудь сообщение. Через 10 секунд анализатор закончит сбор данных и выведет результат в поле просмотра сигналов. В данном случае сигнал будет лишь на одном канале, который присоединён к выводу Tx (передатчик) USB-UART преобразователя.

Последовательный сигнал, захваченный логическим анализатором Последовательный сигнал, захваченный логическим анализатором

Для наглядности можно настроить декодер перехваченных данных. Для этого в правом столбце находим поле Analyzers, нажимаем иконку в виде плюса – «Добавить», указываем тип – Async Serial. Появится окно с выбором настроек. В первое поле вводим номер канала, на котором у вас данные. Остальное оставим как есть. После нажатия кнопки Save (Сохранить), над полем соответствующего канала появятся метки голубого цвета с отображением значений байтов, которые были перехвачены. Нажав на шестерёнку в данном дешифраторе, можно задать режим отображения значений – ASCII, HEX, BIN или DEC. Если вы передавали в COM-порт строку, выберите режим ASCII, и увидите тот текст, который был вами передан в порт.

Настройки декодера данных Настройки декодера данных

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

Аналогичным образом подключим логический анализатор к преобразователю USB-RS485. Линии данных всего две, поэтому можно установить триггер срабатывания по фронту любого из каналов: сигнал в протоколе RS-485 дифференциальный и фронты импульсов появляются одновременно на каждом из каналов, но в противофазе.

Подключение конвертера USB-RS485 к логическому анализатору Подключение конвертера USB-RS485 к логическому анализатору

Нажмём кнопку «Старт» в программе анализатора. С помощью нашей терминалки подключимся к USB-RS485 конвертеру и передадим какие-нибудь данные. По срабатыванию триггера программа начнёт собирать данные, по завершению выведет их на экран.

Последовательный сигнал RS485, захваченный логическим анализатором Последовательный сигнал RS485, захваченный логическим анализатором

Программа Saleae Logic позволяет экспортировать сохранённые данные в виде изображений и текстовых данных, сохранять настройки программы, аннотации и декодеры каналов.

Последний пример в данном небольшом обзоре – захваченный кадр данных, переданный по последовательному протоколу SPI. В канале 2 виден сигнал выбора ведомого, в канале 0 – тактовые импульсы, а в канале 1 – собственно данные от ведущего устройства к ведомому.

Последовательный сигнал SPI, захваченный логическим анализатором Последовательный сигнал SPI, захваченный логическим анализатором

Выводы

Логический анализатор может быть очень полезен при разработке и настройке всевозможных электронных устройств, при написании программного обеспечения, работающего в связке с железом, при работе с микроконтроллерами, ПЛИС и микропроцессорами, для анализа работы различных устройств и протоколов обмена данными, и для многих других применений. Кроме того, он портативен и не нуждается в отдельном питании.

Инструкция по работе с программой для логического анализатора Saleae

По ссылкам ниже можно скачать инструкцию с файлообменников, либо напрямую с сайта.

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

Подробности под катом.

Зачем я его купил? Ну конечно же занимать логическим анализом ))). А точнее анализом логических уровней разных микроконтроллеров и периферии к ним. То что принято называть реверс инжинирингом.

Недавно разбирался с двумя ультразвуковыми датчиками DYP-ME007Y, на вид абсолютно одинаковыми, но работающими совершенно по разному. И, когда в очередной раз захотелось посмотреть, какие сигналы бегают от датчика к микроконтроллеру и обратно, вспомнил о таком чудном приборе. И тут подвернулся ОН по цене менее $6.

Всегда думал, что устройства такого типа стоят намного дороже, но отзывы были хорошими, решил, что нужно брать.

Характеристики прибора такие:

  • Число цифровых входов — 8
  • Два индикатора — питания и состояние логических входов
  • Входное сопротивление 100КОм, входная емкость 5пФ
  • Питание через USB
  • Поддерживаемые частоты дискретизации:
  • 24МГц,16МГц, 12МГц, 8МГц, 4МГц, 2МГц, 1МГц, 500КГц, 250КГц, 200КГц, 100КГц, 50КГц, 25КГц;
  • Количество сохраняемых значений одного измерения — 10000

На вид прибор такой же как на картинке в описании товара. В комплекте сам анализатор, разъем miniUSB с проводом 70см и 10 соединительных проводков на штырьковые контакты.

Анализатор представляет собой маленькую пластмассовую коробочку

С одной стороны разъем на 10 штырьков и распиновкой на корпусе

С другой разъем miniUSB (извините, фокус слегка ушел)

Сразу прикупил таких вот клипс-зажимов

Качество зажимов не очень — очень хлипкая пластмасса и проволочка на конце. Но на первое время сойдет.



На входе анализатора стоят токоограничивающие резисторы 100 Ом, подтягивающие к земле резисторы 100 КОм и конденсаторы 5 пФ. Все честно, как в описании.

Самое вкусное в данном анализаторе это то, что подходит фирменный софт Saleae Logic .
Доступны версии для OSX, Linux и Windows на 32 и 64 бита.
Saleae Logic 1.2.3 под Windows 7 заработал с пол пинка, софт запустился, железо опозналось, не смотря на надпись версии «Beta».

  • На изменения логического уровня в «0»
  • На изменение логического уровня в «1»
  • На положительный импульс заданной длительности
  • На отрицательный импульс заданной длительности

Декодирования протоколов: Async Serial, I2C, SPI, Hide, 1-Wire, Atmel SWI, BISS C, CAN, DMX-512, HD44780, HDLC, HGMI CEC, I2S/ PCM, JTAC, LIN, MDIO, Manchester, Midi, Modbus, PS/2 Keyboard/Mouse, SMBus, SWD, Simple Parallel, UNI/O, USB LS и FS

Ведение журнала по декодируемому протоколу

Позанимаемся логическим анализом.

Для начала разбираюсь с ультразвуковыми датчиками, о которых писал в начале обзора.
Если один работает точно по даташиту: короткий импульс на «триггер» запускает ультразвуковой импульс и по длительности эхо измеряется расстояние. То второй и третий (с мигающим светодиодом) примерно раз в 100мс без каких либо внешних пинков сам мерит расстояние и посылает его на скорости 9600 в виде четырех байт (включая контрольную сумму). Программа Saleae Logic позволяет включить декодирование сигнала последовательной шины в последовательность байт. Датчики второго типа отлично работают с отключенным выводом «TRIG», хотя может и ждут какой нибудь команды на этом входе, но сие даже волшебный приборчик не покажет.

Далее захотелось посмотреть ШИМ сигнал Aтмеги 168? Включил все шесть каналов поддерживающих PWM на разный уровень и с удивлением обнаружил, что частота двух каналов ШИМ отличается от 4-х других. Задействованы разные таймеры?

Далее посмотрел работу шины I2C. И опять софт нормально справился с декодированием.Можно видеть пакеты записи в регистры при работе драйвера дисплея TM1637

Подключил ленту с диодами WS2812 — анализатор нормально проглотил 800КГц и успешно расшифровал протокол DFX-512

RF-приемник на 315МГц, подключенный напрямую к анализатору, получил сигнал с радиовыключателей, и выдал манчестреский код. После подбора скорости манчестреский код превращается умной программкой в последовательность байт.

Интересно, а как с точностью измерения временных интервалов? Точного генератора импульсов у меня под рукой не оказалось, но Ардуиновская tone(1000) на 1000Гц

и tone(20000) на 20КГц дают довольно точный результат.

Небольшой итог

  • Привлекательную цену
  • Совместимость с довольно удобным софтом Saleae Logic
  • Защита на входе в виде шинного формирователя LVC245A
  • Малые габариты

Сейчас стоит задача анализа логических уровней на 12В, давно хотел разобраться с датчиками ABS своего авто. Думаю, что резисторный делитель и 5-ти вольтовый стабилитрон на каждом входе будет в самый раз.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *