Логические анализаторы
Часто при разработке или отладке радиоэлектронных устройств состоящих из нескольких компонентов(микроконтроллер, АЦП, 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 купил для личного пользования около недели назад по пока нареканий нет, но и время пользования небольшое…
Обзор китайского логического анализатора
Крутая штука однако! Для тех, кто не в теме, эта штука подобна осциллографу, только для работы с цифровыми сигналами. Строго нолики и единички.
Не знаю, как я раньше жил без него. Давно задумывался над покупкой хотя бы осциллографа, но в целом справлялся без него.
Одновременно можно смотреть до 8 сигналов! Это очень удобно для отладки. Выводить отладочные сигналы пачками и смотреть их.
С аналоговыми сигналами дел я не имею, а вот с цифровыми частенько возникали траблы. К примеру ws2812b… ну никак не удавалось оживить этот протокол. И тут с DX.com мне пришло это маленькое чудо. Стоит копейки. Это китайский клон анализатора Saleae LOGIC. А вот ПО подходит родное, с оффициального сайта.
Несколько слов про ПО. Программа настолько простая, что сначала я даже расстроился. Но немного поработав, она мне понравилась. Очень шустрая и отзывчивая, все данные по временным интервалам показывает по наведению мышки. Есть анализатор различных протоколов. Правда, признаюсь, еще не пользовался этим.
Внутри все вполне прилично. На we.easyelectronics.ru был обзор аналога, так там все было грязно и криво припаяно. Здесь же отмечу только капельку неотмытого флюса, но для китая это норма.
Советую данную штуку всем. Особенно начинающим путь джедая-электронщика. Во многом облегчит отладку МК.
К слову — он очень мал.
Вот еще скрины ПО.
Добавлено от Petro-ws :
Прибор отлично работает в Linux, что не может не порадовать любителей свободного ПО. На сайте вендора можно скачать: www.saleae.com/downloads
Так же есть сторонние программы и прошивки для него. Я свой перешил на Sigrok, тогда можно использовать мощный инструмент PulseView для работы.
Метки: logic analyzer, saleae, saleae logic, анализатор, клон, логический анализатор
Комментарии 45
Хорош прибор, тоже себе взял ) еще не тестил.
Супер инструмент! Уже загорелся… Хочу…
Блин, вещь классная сам недавно получил, подобное))) Заказал после прочтения подобного обзора)))
а параметр считываемого сигнала он показывает, ну например 0.3в и прыгает от и до ? лямбду если тестить к примеру.
нет, промежуточные значения он не показывает, только нули (к примеру, сигнал меньше 1.4В) и единицы (больше 1.4В). Значения выдуманные, смысл такой.
а значения "0" можно как то выставлять программно? я к тому, есть подозрения что имеются пропуски в зажигании, свечах или форсунках на определенных оборотах, этим приборчиком данную проблему думаю "подсечь"
не думаю, что можно.
жаль, значит будем "гасить" сопротивлением…
да, подобрать делитель таким образом, чтоб этот анализатор срабатывал как надо. Да и уровни я написал от фонаря, возможно они другие будут.
Интересный гаджет, спасибо за обзор и ссылки, заказал себе тоже… интересно, а под андроид есть приложения?
Весьма интересная вещь! Мне и для работы (авиаремонт) пригодится.
Отличный девайс, недавно тоже разжился. Добавлю информации — прибор отлично работает в Linux, что не может не порадовать любителей свободного ПО. На сайте вендора можно скачать: www.saleae.com/downloads
Так же есть сторонние программы и прошивки для него. Я свой перешил на Sigrok, тогда можно использовать мощный инструмент PulseView для работы.
Добавил в обзор, спасибо.
Отличная весчь! Сам таким пользуюсь.
Спасибо, тоже давно хотел такую штуку (балуюсь с PIC контроллерами). А после вашей статейки — решился и заказал 🙂
Всегда пожалуйста 🙂
Следите, буду писать переодически о всяких мульках)
Эт бобр или бобриха?))) У меня бобр!
Кастрированный толстый бобр
ничё не понял но штука крутая)))))
не те нынче бобры пошли! А вещь замечательная
халеный бобр однако)))))
классная штуковина! а вопрос есть: существуют ли программы-интерпретаторы, в которых можно к полученным логические состояниям — присвоить определенный код название (ну или действие наконец)?
не думаю, он просто протоколирует. Анализировать должен уже человек.
понял спасибо за ответ)) вопрос поднимался исключительно к "прикрутить" автоматизацию распознования (чуть раньше, про чтение ошибок (блинк-кодов), спрашивал MolEvg)
котэ! :)) остальное мне ниасилить :)))
интересная штукенция?
где приобреталась? почем?
о какая весч! а можно её дли считывания блинк-кодов прицепить к стареньким автомозгам? ухитряюсь сбиться при подсчёте морганий диода…
Думаю без проблем.
Кот порадовал))) Лучше бы про него написал что нибудь))) Чего он такой довольный? Чем кормил? или пузо чесал?))
Ну а что… у кота жизнь прекрасна… ест да спит)) Чешу его специальной расчёской, только так даётся. Поглаживание рукой долго не терпит, может укусить))
НИХЕРА НЕ ПОНЯЛ… ЧТО ЭТО?, ДЛЯ ЧЕГО ЭТО?, ЧТО ОНО ДЕЛАЕТ? МНОГА БУКАВ — ТОЛКУ НУЛЬ…
Слова "Логический анализатор" в шапке уже все сказали.
Из wiki: Логический анализатор (англ. Logic Analyzer) — электронный прибор, который может записывать и отображать последовательности цифровых сигналов.
То, что написал я: Для тех, кто не в теме, эта штука подобна осциллографу, только для работы с цифровыми сигналами. Строго нолики и единички.
Если из этих двух предложений вы ничего не поняли, проходите мимо)) Это не для вас.
ВОТ И Я НЕ ПОЙМУ, СООБЩЕСВО ВРОДЕ НАЗЫВАЕТСЯ… DIY (Сделай Сам)… ГЕ ВЫ ТУТ САМИ ЧЕГО СДЕЛАЛИ? ЭТО НЕ Я ПРОХОДИ МИМО, ЭТО ВЫ ПРОХОДИТЕ НА СООБЩЕСТВА ЭЛЕКТРИКОВ И ТАМ СВОИ АНАЛИЗАТОРЫ АНАЛИЗИРУЙТЕ ХОТЬ ДО АНАЛИЗАЦИИИ…
На клавиатуре есть кнопочка CapsLock, если ее нажать, то потухнет один из индикаторных светодиодиков и буковки перестанут такими большими получаться. В сообществе допускается публикация обзоров инструмента и для некоторых эти приборы являются инструментом, чтобы делать что-то своими руками. Автор подробно описывает уже второе устройство, которое, я думаю, многие сомневаются стоит покупать или нет, за что ему большое спасибо.
Я ВСЕГДА ПИШУ ТАК ЧТОБ В ЧАТЕ ЯСНО ВИДЕТЬ СВОЮ ПИСАНИНУ, ТАК ЧТО НЕНАДО МЕНЯ УЧИТЬ, ПО ТЕМЕ УСТРОЙСТВА, Я ОТВЕТИЛ АВТОРУ, ЧТО НУЖНО ПРОЯВЛЯТЬ УВАЖЕНИЕ К ЧИТАТЕЛЯМ И ПИСАТЬ ЯСНО И ПОНЯТНО, ЕСЛИ НАДО, ТО РАЗЖЕВЫВАТЬ ИНФОРМАЦИЮ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ, А НЕ КОРЧИТЬ ИЗ СЕБЯ САМОГО УМНОГО: не поняли — проходите мимо… это че за разговоры, да кто он такой чтоб мне указывать что мне делать. нет чтоб человеком быть, и описать, что это для того и того и все!
Автор не виноват в Вашем нежелании какую-то часть информации найти самостоятельно. По Вашей логике при описании логического анализатора надо начинать принципа работы pn-перехода, а еще лучше — со школьного курса природоведения, чтобы на базе этого через изучение закона Ома перейти к физике процессов в полупроводниках. А еще лучше — с изучения алфавита. Автор кратко дал очень полезную информацию по конкретному устройству и, если Вы не знаете для чего этот прибор, спросите у поисковой системы или пройдите мимо.
короче в дальнейшем продолжении дискуссии смысла не вижу, я вам про Ивана, вы мне про Болвана.
Совершенно верно, не надо больше разводить бессмысленную полемику, лучше займитесь самообразованием, если интересна работа с электроникой. Будут вопросы по сути — обращайтесь, по мере сил помогу.
ВОТ И Я НЕ ПОЙМУ, СООБЩЕСВО ВРОДЕ НАЗЫВАЕТСЯ… DIY (Сделай Сам)… ГЕ ВЫ ТУТ САМИ ЧЕГО СДЕЛАЛИ? ЭТО НЕ Я ПРОХОДИ МИМО, ЭТО ВЫ ПРОХОДИТЕ НА СООБЩЕСТВА ЭЛЕКТРИКОВ И ТАМ СВОИ АНАЛИЗАТОРЫ АНАЛИЗИРУЙТЕ ХОТЬ ДО АНАЛИЗАЦИИИ…
Вы хотя бы шапку сообщества прочитайте целиком… Я вот даже сюда ее скопирую, для Вас.
Тематика: • Обустройство рабочего места • Строительные работы • Столярные работы, изготовление и ремонт мебели • Слесарные и токарные работы • Ковка и плавка металлов
• Электрика и работы по проводке • Обзоры ручного и электрического инструментов • Доработка/модификация/ремонт инструмента • Обзоры приборов и средств измерения • «Кулибинские» доработки и приспособления • Поделки, сувенирная продукция, модели
Хорошо, обьясню по другому … не надо делать вид что вы умнее всех, пишите четко и ясно, что это и для чего а уж потом как вам эта вещ помогла или нет это называется уважением к читателям.
ВОТ И Я НЕ ПОЙМУ, СООБЩЕСВО ВРОДЕ НАЗЫВАЕТСЯ… DIY (Сделай Сам)… ГЕ ВЫ ТУТ САМИ ЧЕГО СДЕЛАЛИ? ЭТО НЕ Я ПРОХОДИ МИМО, ЭТО ВЫ ПРОХОДИТЕ НА СООБЩЕСТВА ЭЛЕКТРИКОВ И ТАМ СВОИ АНАЛИЗАТОРЫ АНАЛИЗИРУЙТЕ ХОТЬ ДО АНАЛИЗАЦИИИ…
При много извиняюсь… Но когда я виду такие буквы, то мне кажется что у человека Спермотоксикоз =)
А теперь по теме… Для старых не доступных читанию мозгов вещь оболденная…
Если свои не осилю прочитать, то надо будет обзавестись таким анализатором =)
Большое спс за Ваше БЖ … Очень поможет в будущем…
Только вот 1 маленький вопрос… программа записывает протокол и можно ли его изменить?
Позанимаемся анализом
Как раз разбирался с подключением ультразвуковых датчиков DYP-ME007Y, на вид абсолютно одинаковыми, но работающими совершенно по разному.
Если один работает точно по даташиту: короткий импульс на «триггер» запускает ультразвуковой импульс и по длительности эхо измеряется расстояние. То второй и третий (с мигающим светодиодом) примерно раз в 100мс без каких либо внешних пинков сам мерит расстояние и посылает его на скорости 9600 в виде четырех байт (включая контрольную сумму). Программа Saleae Logic позволяет включить декодирование сигнала последовательной шины в последовательность байт. Датчики второго типа отлично работают с отключенным выводом «TRIG», хотя может и ждут какой нибудь команды на этом входе, но сие даже волшебный приборчик не покажет.
Далее захотелось посмотреть ШИМ сигнал Aтмеги 168? Включил все шесть каналов поддерживающих PWM на разный уровень и с удивлением обнаружил, что частота двух каналов ШИМ отличается от 4-х других. Задействованы разные таймеры?
А что там на шине данных у моих любимых WS2812?
Волшебный приборчик и программа нормально декодировали последовательность, выдаваемую на светодиоды. Даже цвета светодиодов нарисовались.
С анализом шины I2C тоже никаких проблем. Софт нормально справился с декодированием.Можно видеть пакеты записи в регистры при работе драйвера дисплея TM1637
RF-приемник на 315МГц, подключенный напрямую к анализатору, получил сигнал с радиовыключателей, и выдал манчестреский код. После подбора скорости манчестреский код превращается умной программкой в последовательность байт.
Интересно, а как с точностью измерения временных интервалов? Точного генератора импульсов у меня под рукой не оказалось, но Ардуиновская tone(1000) на 1000Гц
и tone(20000) на 20КГц дают довольно точный результат.
Для проверке высокой частоты на скорую руку собрал генератор на NE555. Удалось выжать из него 8МГц. Анализатор проглотил эту частоту нормально. На 20МГц проверить не удалось, но 8 для такой дешевой железки тоже очень хороший результат.
Небольшой итог
Логический анализатор очень нужная и полезная вещь для тех, кто занимается раскапыванием китайской периферии к микроконтроллерам (Назовем красиво — реверс инжинирингом)
Из достоинств данной железки хочу отметить:
- Привлекательную цену
- Совместимость с довольно удобным софтом Saleae Logic
- Защита на входе в виде шинного формирователя LVC245A
- Малые габариты
Явных недостатков у этой железки для себя не нашел. Жаль, что я не приобрел логический анализатор раньше — сколько времени бы я сэкономил во многих проектах. Несомненно, кому то возможностей данной железки окажется мало. Есть масса более навороченных моделей, но по цена $100-200 делает эти приборы гораздо менее доступными для радиолюбителей.
Работа с логическим анализатором
Расскажу о работе с логическим анализатором на примере моего логического анализатора и программы Saleae Logic 1.1.15. Итак, при установке и запуске программы мы увидим такое окно.
Это рабочая область программы. В самом верху мы можем видеть статус анализатора (Disconnected/Connected), а также два поля: Samples и MHz. В первом задаем размер памяти под чтение, а во втором скорость семплирования. Например при выборе 5M Samples (5 млн. выборок), и скорости 1 MHz, длинна записи составит: 5/1=5 секунд. Если скорость — 200 KHz, то: 5/0,2= 25 секунд. То есть чем выше скорость, при одинаковом размере памяти тем быстрее ее заполнит, но и тем точнее будет анализ. В общем настраивается под конкретный проект. Ниже мы видим все 8 линий логического анализатора. Для удобства их можно подписывать как угодно, как видите у меня они переименованы все кроме 7-ой. Там же есть настройка триггеров.
Это тоже очень удобно так как запуск записи происходит по событию на одном из портов. Слева расположена кнопка «Опции», там можно сохранять наши осциллограмы, а также вкладка «Measurements» и «Analyzers». Вторая это самая основная. Если вы отслеживаете работу какого-то модуля, то вам несомненно пригодятся встроенные анализаторы.
Как видно, присутствуют все возможные интерфейсы. Настраиваются они легко. Например у меня на 2 и 3 линии находятся RX и TX Uart интерфейса. Чтобы их настроить нужно нажать на плюсик рядом с Analyzers, выбрать Async Serial, и дальше ввести нужные настройки.
Программа простая, но очень функциональная и удобная. Ну а теперь покажу на примере. Сейчас у меня логический анализатор подключен к двум Uart портам микроконтроллера Stm32f103c8t6. На один поступают данные, а с другого они выходят, но с опозданием. Сейчас я передам на него строку и посмотрим как это будет выглядеть в анализаторе. Так выглядит строка адреса одной из статей сайта:
Видим какие-то данные на 2 линиях. Увеличиваем:
Видим что принятые данные одним портом были переданы другим, но с опозданием.
Над каждым принятым байтом программа поставила раскодировку.
Если же отключить на этих линиях анализатор, то увидим просто осциллограммы.
Кстати можно оперативно видеть ширину между «0» и «1», или измерять нужные участки с помощью курсоров.