Хоть и изредка, но возникает нужда отследить что происходит на каких-то логических линиях, причем синхронно на 4-8. Давно хотел заиметь для этих целей логический анализатор (дальше — ЛА) и наконец созрел.
Коротко для нетерпеливых — брать можно. Полностью соответствует заявленным характеристикам, софт вполне юзабельный. Подробнее — под катом :)
Что такое логический анализатор и для чего он нужен
Если коротко, то это что-то вроде очень грубого многоканального осциллографа. Очень грубого — он показывает лишь два уровня, 0 и 1, то есть превысил ли наблюдаемый сигнал заданный уровень или нет. Поэтому он и называется логическим, его предназначение — наблюдать логические сигналы, то есть логические нули и единицы.
Это бывает нужным, например, при отладке какого-то интерфейса с несколькими линиями — работа с памятью, синхронное управление чем-то, многопроводные интерфейсы и т.п. Его используют так же при реверс-инжиниринге, когда нужно изучить работу какого-то устройства, определить используемый протокол связи и даже получить дамп данных, передаваемых, например, по синхронному UART.
Многие ЛА кроме непосредственно записи сигналов могут их декодировать по определенным протоколам, хотя это и не является обязательным свойством ЛА. Особо навороченные могут даже с достаточной уверенностью автоматически определить используемый протокол, но это уже зависит от софта, прилагаемого к ЛА.
Доставка
Дошел просто мгновенно — 29 марта я заказал, а 11 апреля он уже лежал у меня в отделении. Шел обычной почтой, упакован был в стандартный желтый пакет с пупыркой. Ничего экстраординарного :)
Характеристики со страницы продавца
Особенности:
— маленький и легкий
— максимальная частота сэмплов: 100MHz на 3 каналах, 50MHz на 6 каналах, 32MHz на 9 каналах, 16MHz на 16 каналах
— большой объем сохраняемых сэмплов, поддержка сжатия
— встроенный ШИМ-генератор
— совместим с USB2.0/3.0
— мощный и легкий в использовании софт
— поддержка автоматического обновления онлайн
Характеристики:
— число каналов: 16
— максимальная частота сэмплирования: 100MHz
— ширина полосы измерения: 20MHz
— минимальная ширина захватываемого импульса: 20ns
— максимальный размер сохраняемых сэмплов: 10G/канал
— допустимое входного напряжение: -50V / +50V
— входное сопротивление и емкость: 220KΩ, 12pF
— настраиваемый уровень триггера: -4V ~ +4V, шаг: 0.01V
— количество каналов ШИМ-генератора: 2
— диапазон частот ШИМ: 0.1 ~ 10MHz
— шаг настройки частоты ШИМ-генератора: 10ns
— шаг настройки ширины импульса ШИМ-генератора: 10ns
— выходное напряжение ШИМ-генератора: +3.3V
— выходное сопротивление ШИМ-генератора: 50Ω
— потребление в режиме ожидания: 100mA
— максимальный потребляемый ток: 150mA
— размеры: 95mm * 55mm * 23mm
— поддерживаемые операционные системы: Windows XP, Vista, Windows 7/8/10(32/64bit)
— поддерживаемые стандартные протоколы: UART/RS-232/485, I2C, SPI, CAN, DMX512, HDMI CEC, I2S/PCM, JTAG, LIN, Manchester, Modbus, 1-Wire, UNI/O, SDIO, SMBus, USB1.1, PS/2, NEC InfraRed, Parallel, и т.д.…
Комплектация
Комплект состоял из двух пакетов — в одном был кабель USB, в другом сам анализатор со всеми причиндалами:
Кабель на вид очень неплох, толстый, но довольно мягкий. Оценить сечение проводов питания в нем мне нечем, да это и неважно при заявленном потреблении анализатора. А вот его мягкость — это большой плюс при работе с такой небольшой и легкой коробочкой.
Среди причиндалов было: сам анализатор, три гребенки по девять проводов разного цвета, две гребенки по два провода, клипсы 20 штук, диск с программой и бумажка с адресом откуда качать свежий софт:
Вот бумажка покрупнее:
Сам анализатор выполнен в симпатичном корпусе вполне оригинального дизайна (по сравнению с набившими оскомину квадратными коробками, в которые китайцы лепят все что могут). Хотя кажется у Гаинты (Gainta) я видел среди типовых корпусов такой… Тем не менее смотрится очень хорошо. Сделано все очень аккуратно, нигде нет лишних зазоров, ничего не перекошено :)
На лицевом шильдике обозначено название модели, приведены краткие характеристики и разрисовано назначение пинов входного разъема. Кроме того есть индикатор, показывающий статус анализатора — в простое он плавно загорается и гаснет, во время сэмплирования часто мигает.
На одном из торцов входной разъем на 20 контактов — 16 каналов, две земли и два выхода ШИМ-генератора. На другом торце — USB-разъем:
В комплекте идут три гребенки по 9 проводов и две по два провода. Если с двухпроводными еще можно придумать что-то — например, одна для земли, вторая для двух каналов или для ШИМ-генератора, то зачем ТРИ большие гребенки — непонятно… Не иначе, одна из них запасная :)
При подключении двух девятиконтактных гребенок мы получаем все 16 каналов и две земли. Длина проводов на всех гребенках — 20 см, все провода оканчиваются изолированными термоусадкой «мамами» для подключения клипс. На каждой гребенке один провод имеет белую термоусадку — предполагается, что это земля, чтобы труднее было перепутать, остальные с черной термоусадкой:
Клипс — ровно 20 штук. То есть можно ими подключить все 20 контактов входного разъема — 16 каналов, 2 земли и 2 ШИМ-генератора. Вряд ли такое когда-то понадобится, но за нежадность китайцам плюс :) Цвета клипс особым разнообразием не страдают, в отличии от проводов:
С другой стороны, если проявлять минимальную внимательность, то можно и не перепутать ничего, глядя не только на клипсы, но и на провода, подключенные к ним.
Сзади у клипс торчат обычные четырехгранные штырьки как на IDC-разъемах:
«Мамы» проводов одеваются на эти штырьки довольно туго и сами соскакивать не проявляют желания, соединение довольно надежное.
Устройство клипс элементарное:
Никаких фиксаторов или защелок, задняя часть просто стягивается, а внутренняя пластина вынимается после поворота на 90 градусов. Штырек просто припаян, что не может не радовать в плане ремонтопригодности :)
Для подключения к проводу нужно надавить на заднюю часть, из носика выходит и раскрывается миниатюрный зажимчик. Задняя часть отпускается и под действием пружины зажимчик входит обратно, одновременно закрываясь:
Держит провод уверенно, как достаточно толстый, около 1.5мм, так и тоненький, где-то 0.3мм:
В целом качеством эти клипсы не блещут, но вполне работоспособны в большинстве случаев.
Работа анализатора, софт
Предварительно сразу нужно оговорить один момент: этот анализатор не имеет собственной памяти, все сэмплы сразу же передаются на компьютер, где и сохраняются. Правда, в характеристиках имеется упоминание о сжатии, так что, скорее всего, он не передает тупо 100 мегабит на канал при частоте сэмплирования 100 МГц. Тем не менее, при высоких частотах он очень требователен к качеству канала USB. В идеале корневой хаб, к которому подключен анализатор, не должен обслуживать никаких других клиентов. У меня, например, он заработал на полной скорости только в разъеме на передней панели компа. А на нетбуке он так и не смог обеспечить 50 МГц на 6 каналов, хотя на 5 каналов уже работал, и 100 МГц на три канала обеспечивал.
Итак, софт. Изначально я не обратил внимание на бумажку, где был адрес сайта с софтом, поэтому достал из закромов внешний DVD и честно попытался поставить программу с него. Программа поставилась, но вот драйвера не захотели вставать (Windows XP). Поиском в инете вышел на этот сайт, указанный в бумажке, и скачал оттуда чуть более свежую версию программы. Хотя драйвера в ней были вроде бы такими же, но из новой версии они встали нормально и анализатор ожил :)
Интерфейс программы на первый взгляд очень простой (да и на второй тоже, если честно). Сначала даже непонятно каким образом вообще можно делать в ней что-то полезное :) Но по мере углубления уважение к нему начинает расти :) В целом у меня сложилось такое впечатление от программы: совершенно ненавязчива, ничего лишнего, но вполне достаточна для большинства задач. Есть и мелкие недочеты, конечно, но они не сильно портят впечатление.
Вот так выглядит окно программы:
Быстрыми кликами можно настроить частоту сэмплирования и глубину (количество) сохраняемых сэмплов:
С выбором больших частот сэмплирования автоматически будет ограничиваться и число доступных каналов.
В самих каналах можно выбрать для каждого из них его имя, расположение, размер по вертикали. Для одного из каналов можно установить условие триггера — по фронту, по спаду, по высокому уровню, по низкому уровню или без триггера. Если триггер до этого был установлен на другом канале, он там сбросится, то есть триггер возможно установить на любом канале, но только на одном.
В общих настройках можно убрать лишние каналы и установить граничное напряжение, относительно которого будут считаться нули и единицы:
Под рукой у меня была платка, в которой можно было обнаружить лишь SPI и USB, вот их я и решил посмотреть. На скриншотах будут уже настроенные каналы, изначально же никаких данных на сигналах нет и каналы называются просто — Chanel 0, Chanel 1 и т.д.
Первые два канала я подключил к USB, 4 следующих — к SPI и запустил анализатор. Вот что получил в целом:
Это все 2 секунды наблюдения :) Теперь нужно подключить декодирование. Выбираем в списке нужный протокол:
И появляется окно настройки этого протокола.
Для USB:
Для SPI:
Как видно, у SPI довольно богатые настройки, позволяющие смотреть этот протокол во всех его проявлениях.
После назначения каналов сигналам протокола программа предлагает автоматически переименовать каналы по названиям сигналов, это у меня на скриншотах уже как раз и сделано. И теперь над графиками при достаточном увеличении будут показываться данные согласно протоколу. Например, вот один их фреймов USB:
Как видно, программа не просто показывает численные значения передаваемых байтов, но и их внутрипротокольное значение — CRC, SYNC, ACK и т.д. Правда, есть места, которые мы с программой не поняли, такое ощущение, что скорость USB резко замедляется в какие-то моменты:
А вот кусок обмена по SPI:
Захваченные сэмплы можно сохранить в нескольких форматах:
Вот так это будет выглядеть в файле:
Кроме того, можно сохранять не сэмплы, а данные декодированного протокола. Вот, например, кусок сохраненного обмена по CAN в моей машине (скриншотов, к сожалению, не делал):
Time [s],Packet,Type,Identifier,Control,Data,CRC,ACK
0.0002935s,0,DATA,0x0591,0x08,0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00,0x284A,ACK
0.0016248s,1,DATA,0x05D1,0x02,0x10 0x00,0x0249,ACK
0.0023359s,2,DATA,0x0635,0x03,0x00 0x00 0xFD,0x0D93,ACK
0.0033871s,3,DATA,0x0470,0x08,0x40 0x01 0x00 0x46 0x00 0x00 0x00 0x1F,0x5D2D,ACK
0.0046378s,4,DATA,0x0531,0x04,0x01 0x40 0xF0 0xB1,0x40D3,ACK
0.005489s,5,DATA,0x05C1,0x04,0x00 0x00 0x00 0x20,0x0AA2,ACK
0.0063502s,6,DATA,0x065F,0x08,0x01 0x5A 0x5A 0x5A 0x36 0x31 0x5A 0x43,0x3840,ACK
0.0075009s,7,DATA,0x0651,0x08,0x80 0x02 0x50 0xAF 0x38 0x57 0x00 0x00,0x50D4,ACK
0.0086621s,8,DATA,0x0621,0x08,0x20 0x2C 0x69 0x18 0x81 0x64 0xFD 0x00,0x4FE1,ACK
0.0233258s,9,DATA,0x0291,0x05,0x00 0x00 0x00 0x00 0x00,0x1DE1,ACK
0.0333432s,10,DATA,0x03E1,0x08,0x20 0x00 0x30 0x01 0xA2 0x00 0x84 0x00,0x50DB,ACK
0.0432946s,11,DATA,0x03C3,0x08,0xAB 0x00 0x00 0x00 0xA8 0xF0 0x00 0x64,0x0F7B,ACK
0.0444855s,12,DATA,0x040C,0x08,0x00 0x01 0x01 0x01 0x00 0x00 0x00 0x00,0x290F,ACK
0.053637s,13,DATA,0x0470,0x08,0x40 0x01 0x00 0x46 0x00 0x00 0x00 0x1F,0x5D2D,ACK
0.0548882s,14,DATA,0x0531,0x04,0x01 0x40 0x00 0x41,0x191A,ACK
0.0632503s,15,DATA,0x0291,0x05,0x00 0x00 0x00 0x00 0x00,0x1DE1,ACK
0.0666019s,16,DATA,0x0497,0x08,0x00 0x00 0x00 0x00 0x64 0x00 0x00 0x20,0x501A,ACK
0.0733737s,17,DATA,0x0151,0x04,0x00 0xE0 0xB0 0x50,0x5718,ACK
0.0833265s,18,DATA,0x02C1,0x06,0x00 0x00 0x00 0x00 0x06 0x00,0x5677,ACK
0.0843872s,19,DATA,0x0359,0x08,0xB8 0x01 0x00 0x00 0x00 0x2B 0x40 0x00,0x4875,ACK
0.0856485s,20,DATA,0x035B,0x08,0x08 0xB4 0x0C 0xB5 0x0B 0xFF 0x02 0x80,0x157E,ACK
0.0868492s,21,DATA,0x0369,0x08,0x3F 0x00 0x00 0x00 0x00 0x00 0x00 0x00,0x45C9,ACK
0.0881104s,22,DATA,0x0381,0x06,0x01 0x00 0x00 0x00 0x00 0x00,0x18D3,ACK
0.0892516s,23,DATA,0x0397,0x08,0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,0x4293,ACK
0.0905824s,24,DATA,0x03B5,0x06,0x00 0x00 0x00 0x00 0x00 0x00,0x007C,ACK
0.0916936s,25,DATA,0x0457,0x03,0x01 0x40 0x00,0x6539,ACK
0.0925447s,26,DATA,0x04B9,0x06,0x00 0x00 0x00 0x00 0x00 0x00,0x11A3,ACK
0.0936154s,27,DATA,0x0400,0x08,0x0C 0x01 0x09 0x05 0xAC 0x00 0x00 0x00,0x3DDD,ACK
Что еще есть? при ведении курсора по графику канала автоматически показывается ширина текущего импульса, период, частота и заполнение (актуально для ШИМ). Можно вывести два или три маркера и таскать их по графику, при этом они будут притягиваться к ближайшим фронтам и спадам. Справа будет выводиться информация о точном времени маркера и временном промежутке между ними:
Тут маркеры стоят на началах фреймов USB, которые, как известно, с довольно высокой точностью следуют каждую миллисекунду, что анализатор и подтверждает. Или, скорее, подтверждает свою достаточно хорошую точность :)
ШИМ-генератор
Ну, тут все просто. Он есть, оба канала, все работает. Быстро включить-выключить каждый из каналов можно прямо в главном окне наверху, нажав на соответствующую надпись (PWM1 PWM2). Зеленая — активен, красная — отключен. Настройки генератора вызываются в отдельном окне:
Что еще про него сказать — не знаю даже :)
Внутренности
Построение, как я подозреваю, классическое — входное согласование, компараторы триггера, ПЛИС и контроллер с USB. Я вообще подозреваю, что это клон того же Saleae :)
Вторая сторона платы совершенно пуста.
Все очень аккуратно, никаких соплей, неотмытого флюса и т.п. Внутренности не нарушают гармонию внешности :)
Итог
Аппарат мне понравился. Все, что в нем заявлено — работает. Софт произвел очень приятное впечатление. Честно говоря, даже не ожидал от китайцев такой работы :) Есть и недостатки, но мелкие — хотелось бы, например, присваивать сигналам разные цвета. Но это уже скорее придирки.
ЗЫ: почему взял именно этот анализатор, а не Saleae? Не помню, честно. Почему-то с год назад выбрал именно эту модель, так она у меня в желаниях и лежала. Да, дороже, знаю. Но не помню почему положил глаз на нее :)
А что там у Сэли такого цельно лабораторного?
aliexpress.com/item/1sets-New-Arrival-USB-Logic-Analyze-24M-8CH/2020974930.html
и отдельно щупы за 1.69:
aliexpress.com/item/10PCS-lot-Quality-test-of-the-quality-test-hook-clip-Logic-analyzer-test-folder-For-USB/1048288421.html
Допаивать и что-либо перешивать не требуется, работает с saleae софтом из коробки.
Все знают, что такое электрокардиограф. В поликлиниках применяют в основном 2х канальные, а электродов 8. Медсестра переключает входа (каналы) на электроды (отведения) в разное время. В НИИ на человека вешают 16 электродов. И там нет времени переключать их. Поэтому применяют 16-ти канальные кардиографы. Т.е. врач видит сигналы всех электродов, причем синхронно. Здесь мы имеем аналоговый сигнал, а ТС обозрел тот — же кардиограф, только для логических сигналов,
вот ссылка на другого продавца, если что, на распродажах цена меньше бывала
Тот же клон Saleae за меньше чем 30 долларов вполне оправданная покупка если иногда нужно делать отлаживать вещи. Или даже более дешевый вариант с меньшей частотой и каналами, если это устраивает.
Это китайцы понаписывали что-то не то или я читаю неправильно?
20ns — это значит не больше 50MS/s
Сколько на самом деле? Если просто меандр
Для дискретного (в теории!) — достаточно чтоб частота сэмплировния была просто хоть немного больше.
Ну а вообще, 220KΩ, 12pF на 100МГц — уже очень печально, причем, не столько для измерения, сколько влиянием такой нагрузки на измеряемую цепь.
Если честно, мне и 1-2МГц пока хватает, просто интересно как тут дела обстоят и действительно ли можно таким прибором что-то мерить в сигналах от 5-10МГц
Ну вот Вам картинка 50МГц сигнала на нагрузку 12пф 220кОм (выходное сопротивление источника — 50 Ом):
Красным — идеал, синим — результат.
График у вас красивый, но если брать любой практический пример (пусть это будет общение микроконтроллера с SD-картой) — там есть что-то близкое к 50 омам на выходе?
Где-то около того и есть, по-моему, а то и меньше еще :)
А, не, наврал… есть вроде SDK и к Saleae :)
Цена конская, клипсы любят отстегнутся, софт кривоват но можно экспортировать и дальнейшую обработку проводить в альтернативном софте например в sigrok pulse view.
клипсы от стандартной расчёски из pin header 2,54 отсчёлкиваются только в путь.
Даже опенсоурсные программки есть готовые. Я для Lacetti находил. Даже датчики ABS нормально считывают, если провод OBD доработать
Я к своему субарику так и не нашел. Пришлось ломанную программку ставить.
Есть профили к TORQUE под андроид. Там очень много интересного. Но они все раскиданы по тематическим автомобильным форумам.
Как правильно заметили, на профильных форумах много чего есть. Не везде, но есть.
Им тоже нужна минимальная конкуренция, иначе застой и хана, вылет с рынка.
счас за 22 не вижу но есть по 28
aliexpress.com/item/USB-Logic-Analyzer-100M-max-sample-rate-16Channels-10B-samples-MCU-ARM-FPGA-debug-tool/32285979458.html,searchweb201602_4_10017_10005_10006_10034_10021_507_10022_508_10020_10018_10019,searchweb201603_9&btsid=1aea25ab-6904-452b-b135-de5254a8bc45
Главное требование — писать SPI, частота до 40мгц, притом писать без буфера, т.е. в реалтайм, скидывать прямо в файл. И вообще классно будет, если эту саму запись потом «проиграть» на выходе можно будет, но ничего такого не нашёл.
В Вашем случае проще сделать специализированый девайс :)
Вполне годный прибор за свои деньги
По хорошему хочу типа АКИП-9101 и что бы не дорого :-)
Знаю что хотеть не вредно, да и жаба делает своё дело.
Может кто знает альтернативу у китайцев но подешевле?
aliexpress.com/item/USB-Logic-Analyzer-100M-max-sample-rate-16Channels-10B-samples-MCU-ARM-FPGA-debug-tool/32285979458.html
Я пользуюсь уже полгода, нареканий нет.