Логический анализатор из компьютера своими руками. Доработка логического анализатора из китая

Что такое логический анализатор? Это такой прибор… для логического анализа))) Сразу приходит на ум фильм с Робертом Де Ниро

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

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




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

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

Интересные плюшки в программе Saleae Logic

Триггер срабатывания записи логической последовательности на каждый канал

  • На изменения логического уровня в «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. И опять софт нормально справился с декодированием.Можно видеть пакеты записи в регистры при работе

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

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

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


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

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

Логический анализатор очень нужная и полезная вещь для тех, кто занимается раскапыванием китайской периферии к микроконтроллерам (Назовем красиво - реверс инжинирингом)
Из достоинств данной железки хочу отметить:
  • Привлекательную цену
  • Совместимость с довольно удобным софтом Saleae Logic
  • Защита на входе в виде шинного формирователя LVC245A
  • Малые габариты
Явных недостатков у этой железки для себя не нашел. Жаль, что я не приобрел логический анализатор раньше -сколько времени бы я сэкономил во многих проектах.

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

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

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

Итак - китайский клон 16 канального логического анализатора на 100МГц. Версия 2 поддерживает оригинальный софт Saleae Logic последней версии 1.1.15.

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


Анализатор построен на МК Cypress CY7C68013A (юсб драйвер, на нем строят 10МГц анализаторы на 8 каналов), плис Xilinx Spartan3 (им видимо буферизируют на 100МГц) и логическом конвертере ALVC164245. Тут очень важно наличие последней МС, поскольку на али анализаторы со входом подключенным к Плиске через простой делитель, что при превышении допустимого напряжения наверняка ее убьет.

Я не очень хочу морочиться с проверкой всех каналов, ограничимся тремя, тем более, что больше щупов у меня нет:)

Первый тестовый стенд - моушн контроллер на 100кГц, анализируем сигналы enable\step\dir на частоте 500кГц и длинне 10млрд семплов.



В лог влезло включение контроллера, подача enable, переключение dir и импульсы step, всего около 20 секунд и еще куча времени оставалось (я даже затрудняюсь сказать сколько точно, полоска прогресса не заполнилась не на деление). Софт анализатора позволяет писать неограниченное кол-во времени, сколько хватит ОЗУ.

Отрезок ускорения.

Ход на полной скорости. Видно, что контроллер генерирует сигнал недостаточно качественно.

Второй стенд собран на ардуине дуе. К сожалению мне никак не удалось выжать с нее больше 10МГц, скетч получился вот такой:
void setup() { pinMode(23, OUTPUT); digitalWrite(23, LOW); } void loop() { /* 300kHz */ //digitalWrite(23, HIGH); //digitalWrite(23, LOW); /* 10MHz */ noInterrupts(); tst: REG_PIOA_ODSR = 0xFFFF; __asm__("nop\n\t"); REG_PIOA_ODSR = 0x0000; goto tst; }

И сразу затык - анализатор отказался работать на скорости выше 40МГц, сообщая что сигнал на заданной скорости получит не удалось. Владельцы пишут что проблемы скорее всего в юсб кабеле, однако я перепробовал все имеющиеся и не один не подошел. Т.е. скорее всего на скорости >40МГц лучше не рассчитывать.

Выводов делать не буду, покупка для меня не однозначная. С одной стороны получить 100МГц мне не удалось, с другой такая частота мне и не нужна вовсе. Учитывая стоимость анализатора думаю ему это можно простить.

UPD1!

Удалось захватить 2 канала на 50МГц и 1 на 100МГц



UPD2!

Vassilis Serasidis

Логический анализатор - это инструмент, который позволит увидеть и проанализировать последовательность логических 0 и 1 в цифровом сигнале. К примеру, можно изучить цифровой сигнал с ИК приемника-демодулятора типа TSOP-1736 , выходные и входные сигналы микросхемы , а также шину I2C (линия тактирования и линия данных) во многих электронных устройствах.

В статье мы рассмотрим конструкцию миниатюрного 4-канального логического анализатора с ЖК дисплеем от мобильного телефона Nokia 5110/3110. Основой конструкции является микроконтроллер , помимо него используются еще несколько дискретных компонентов.

Основные характеристики прибора:

  • 4-канальный логический анализатор;
  • возможность исследования сигналов с частотой до 400 кГц;
  • входное напряжение до +5 В;
  • ЖК дисплей с разрешением 84 × 48 точек;
  • питание от 4 аккумуляторов 1.2 В, максимальное напряжение питания 4.8 В;
  • память: от 3.7 мс для высокоскоростных сигналов до 36 с для низкоскоростных сигналов;
  • кнопки управления;
  • простая конструкция.

Принципиальная схема

На Рисунке 1 представлена принципиальная схема прибора. Сразу следует отметить, что прибор питается от 4 аккумуляторов с напряжением 1.2 В каждый.

Внимание!!!

Питание от 4 батареек с напряжением 1.5 В недопустимо, при данной схеме прибора, так как напряжение 6 В может вывести из строя микроконтроллер и ЖК дисплей.

Выключатель S1 предназначен для подачи питания. Подтягивающие резисторы R2-R5 установлены с целью исключения появления ложных данных на цифровых входах прибора из-за влияния электромагнитных полей или при касании пальцами сигнальных щупов. Светодиод LED1 предназначен для индикации наличия сигнала на цифровых входах прибора и, следовательно, начала записи сигналов в память.

В схеме используется ЖК индикатор от мобильного телефона Nokia 3310/5510, он рассчитан на работу при напряжении питания 3.3 В - 5.0 В, однако максимальное напряжение для подсветки дисплея - 3.3 В, поэтому в схеме установленo три последовательно включенных диода (D1-D3) по линии питания подсветки дисплея. Благодаря диодам напряжение снизится до 2.7 В и его вполне будет достаточно для питания подсветки.

Процесс захвата данных и программное обеспечение

Следует отметить, что автором подготовлены две версии прошивки микроконтроллера. Изначально, для версии 1.00 логического анализатора, использовалась интегрированная среда разработки AVR Studio 4.18, но затем автор перекомпилировал исходный код и для AVR Studio 5 - версия 1.01. После перекомпиляции под 5 версию среды разработки и дальнейшего тестирования прибора, было замечено улучшение стабильности захватываемых сигналов.

Запись сигналов ведется во внутренний буфер памяти ОЗУ, который рассчитан на 290 отсчетов. Буфер данных образован 870 байтами (для 1 версии программы микроконтроллера) из которых 2 байта используются для счетчика и 1 байт для информирования о входном канале. В версии 1.01 буфер данных был сокращен до 256×3=768 Байт с целью увеличения скорости захвата данных, т.к. переменная размера буфера является 8-битной, вместо 16-битной, которая использовалась в первой версии ПО.

После подачи питания, микроконтроллер переходит в режим ожидания импульса на любом из 4 входов прибора. По определению входного импульса микроконтроллер начинает подсчет времени до поступления следующего импульса на любом из 4 входов. Длительность выборки хранится в 16-битной переменной «counter». После переполнения этой переменной информация о состоянии 4 входов и значение счетчика сохраняются в буфере и значение его адреса увеличивается на три (2 байта для счетчика и 1 байт - информация о входной линии). Этот процесс повторяется пока микроконтроллер не заполнит весь буфер (870/3=290 выборок или импульсов). Процесс записи сигналов в память микроконтроллера изображен на рисунке 2.

После заполнения буфера, все накопленные данные отображаются на ЖК дисплее в виде осциллограммы. Пользователь может управлять осциллограммой - передвигать влево (кнопка S3) или вправо (кнопка S4), чтобы просмотреть всю сохраненную последовательность импульсов. Если были записаны низкоскоростные сигналы, то пользователь может изменить масштаб в пропорции 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096 или 8192 нажатием на кнопку S2.

При программировании микроконтроллера необходимо установить Fuse-биты в соответствии с рисунком.

Вид печатной платы и расположение компонентов

Демонстрация работы прибора

Загрузки

Принципиальная схема, рисунок печатной платы, исходный код и файл для прошивки микроконтроллера (v1.0, AVR Studio 4.18) -

Исходный код и файл для прошивки микроконтроллера (v1.01, AVR Studio 5) -

  • Как я понял, ваш дисплей с "резинкой", установлен он на самодельную платку, т.е. токопроводящая резинка касается дорожек которые вы нарезали на платке. Если так, то учтите - это самое слабое место конструкции... Fuse-биты проверяли (считывали)? Правильно установлены? Я не исключаю и проблему в самом дисплее. Я еще исходники гляну, может там что-то можно настроить/изменить относительно дисплея...
  • Vadzz, да, я это понимаю, самое уязвимое место.. Я нашел какой-то мобильный, с шагом контактов как у моего экрана. Как будет время попробую сделать.. Вопрос еще в том, рабочий ли экран, не спалил ли я его контроллер (если это возможно). А пока заброшу эту идею. Очень сложно достать готовый экран этот и он стоит больше чем это устройство нужно.. Я лучше сделаю такое же устройство, только вывод данных на компьютер через usb. (по учебнику http://eldigi.ru/site/comp/18.php). Все равно мастерю за компьютером и всё через usb делаю.. Либо же друг делает диплом на тему миниатюрный осцилограф usb. Схема на единственном элементе AtTiny и кварц. +вывод данных в программу на компьютере в виде временной диаграммы\линии.. Возьму у него.. ПО я сделаю.. Я эту штуковину начал делать потому что она так красиво и пафосно выглядит со стороны;) А особенно работает.. ну ниче, начну работать с китайскими передатчиками придется ее сделать.. Там уже на импульсы нужно смотреть и анализировать.. А так спасибо за помощь)
  • Хлопцы, зацените) Всё таки не удержался.. Переднюю панельку еще думаю дооформлю.
  • Рад что все получилось и заработало, выглядит норм. Только расскажите по-подробнее в чем была проблема (наверное, все же дисплей не работал), для многих будет полезна ваша информация (если не секрет, конечно). Спасибо.
  • Ну проблема была в дисплее. И то я купил не красный, а синий, по этому еще контакты не сошлись по расположению, и немного в названии разнятся. Подключение (на схеме\синий дисплей): Vcc-Vcc GND-GND Rst-Rst SCE-CE D\C-DC DN-Din SKLK-CLK LED-BL Если будет желание- попробую вставить\запустить свой старый дисплей. Посмотрю, может он сгорел.. а то столько мучился с ним.
  • Небольшой тест прибора, пару багов. 1) При перемотке долго мотаем вперед, потом назад и в какой-то момент оно отказывается двигать назад и заклинивает на каком-то значении. Можно прокрутить еще вперед и опять назад и после этого клинит на другом значении.. Вот фото, хотя тут ничего не видно будет http://s017.radikal.ru/i433/1306/57/cf1dfbd2f106.jpg 2) При перематывании смазывается временная диаграмма http://s60.radikal.ru/i169/1306/33/1c23e0d9815c.jpg http://i066.radikal.ru/1306/9f/c894839ca1fd.jpg 3) При изменении зума перемотка сбрасывается в 0-ю позицию(но не всегда). Нужно пофиксить чтоле.. Думаю можно было бы добавить пару вкусняшек в проект: Сенсорные кнопки (реализуются элементарно, всего три МОМ-ных резистора) Вольтметр (GND постоянно подключен, по этому неплохо было бы на АЦПшнике сделать чтоле ибо каждый раз мультиметр подключать не то, а этот помог бы. Измеряет в пределах до 5в, как раз для цифровухи). Осцилограф (не знаю как, но было бы очень неплохо. Главная проблема думаю с отображением будет). Подключение через USB к ПК. Отображение рвеменной диаграммы в программе- святое. Если делать осцилограф, то в программе будет проще отображать всё.. Выглядеть будет примерно так (моя програма) http://s48.radikal.ru/i119/1306/eb/9c25ff0d3d7b.png Так же можно программой что-то изменять в настройках прибора..
  • К стати, в протеусе данная штуковина неплохо симулируется..
  • Собрал девайс. Включается, показывает. Если без резисторов 33к (и без источников сигнала), то при включении всякие гребенки увидеть можно. С резисторами и источником (TSOP ик и spi-девайс) - все линии ровненькие. Никакой реакции совершенно. Куда рыть-то?
  • Инпуты замыкаются на + а не на землю чтоб показывало. Мне пришлось инвертировать выход TSOP.
  • Индикатор от телефона тоже заработал. У меня сначала не показывал ничего, поставил резисторные делители на входы дисплея от мк и все заработало. 1ком от мк до дисплея и 3,3 ком от дисплея на землю
  • инвертирование не помогает
  • Прошивка с исправленными ошибками и с добавлениями(UART, Частотомер, Редактор пропусков перед измерением, а также ещё к нему программу для компьютера. Analizator.exe Описание: Analizator_PC V2.1 Analizator.exe 4_канальный логический анализатор.DSN Описание: Analizator_proteus http://www.fayloobmennik.net/4274643 Analizator.hex Описание: Analizator_Atmega8 http://www.fayloobmennik.net/4291611 4_канальный логический анализатор Описание: Analizator_shema http://www.fayloobmennik.net/4285824 2й вариант http://radikal.ru/fp/ИСХОДНИКИ ДЛЯ АНАЛИЗАТОРА КОМУ ИНТЕРЕСНО. AnalizatorKSA.zip Не сомневайтесь всё работает так как надо! У вас теперь появится возможность проверить это в симуляторе, а также покопаться в исходнике.Избавляю вас от рутинной работы. Не судите за мои там комментарии, у каждого они свои. К тому же это черновики, а не коммерческий продукт. Моя поставленная цель была достигнута, поэтому черновики так и остались черновиками. Вы можете делать с ними всё , даже вырвать у них сердце. А цель была одна - сделать его удобным, более точным, надёжным. Всё, что я проделал вы можете прочитать в моих 2х программах для РС в разделе "Справка" Для анализа и сравнения полученного результата я выкладываю исходный текст основной измерительной программы Vasilisa Serasidisa. Посмотрите, и сравните сколько тактов тратится на измерение у меня, и у него. И убедитесь, что лучшие программисты это р у с с к и е!!! Добавлю: С тех пор как сконструировал 2 версии анализаторов решил множество проблем связанных с цифровым обменом и по шине CAN и I2C пультов и пр. Вариант на ATmega48 даже предпочтительней со скоростными протоколами. Например, CAN в 140 Кбит анализировал просто на ура! в отличии от не без известного анализатора Digan. Да и сам он величиной с флешку. Всем удачи! Izmerenie.txt ВЫКЛАДЫВАЮ НОВУЮ ВЕРСИЮ (3йвариант) БОЛЕЕ МОЩНОГО АНАЛИЗАТОРА, А ТАКЖЕ ПРЕДЫДУЩУЮ ВЕРСИЮ С ДОБАВЛЕНИЯМИ И ФАЙЛОМ ПРОТЕУСА ССЫЛКА НА АРХИВ http://www.fayloobmennik.net/5569369
  • 1. Кто повторил оригинальный вариант - от Seradis, нет ли серьезных багов, делающих вообще неприменимость девайса - типа всегда пропускается первый байт и т.п.? Выше пишут об "отображение эпюр", но хотелось бы, что они именно были достоверные:). 2. Сергей7 не выкладывает исходник, что не дает оценить его функционал в полной мере. Если изготовить вначале оригинал, то потребуются ли изменения в апаратке для дальнейшего развития девайса по доработке Сергея7?
  • Отправлял вам сообщение и никакой реакции. Дошло ли?
  • наверное, нет. ... :(Спасибо за исходники! счас посмотрю.....
  • Рад помочь!:D
  • Прошивки с добавлениями(UART, Частотомер, Редактор пропусков перед измерением в AnalizatorKSA.zip нет
  • может печатка в lay есть у кого?
  • Посмотрите новый вариант, я выложил. И предыдущий доработанный тоже (с прошивкой, файлом протеуса и дороб.программой).
  • в чём писали и можно полную схему я так и не понял по чём собирать и сколько ины проц пишет в себя для передачи по уарт

В этой статье пойдет речь о логическом анализаторе — незаменимом инструменте для реверс-инжиниринга, да и вообще полезном в хозяйстве приборе. Для тех кто ни разу с подобным прибором не сталкивался скажу, что логический анализатор это что-то типа осциллографа, но у него много каналов и он может различать только два состояния сигнала: логический ноль и единицу. Используется оно в основном чтоб присосаться к какой-нибудь шине данных и считывать с неё то, что по ней передается, в компьютер. Ну а на компьютере работает специальный софт который эти данные отображает в дружественном для пользователя виде. Если бы программа просто показывала нам набор единиц и нулей растянутых во времени, то толку от этого было бы мало ибо анализ таких данных очень сложен и может взорвать моск даже опытному инженеру. Поэтому, все нормальные программы умеют декодировать протоколы типа 1-Wire, i2c, SPI, UART и так далее. Собранный мной анализатор поддерживает две популярные программы Saleae Logic и USBee Suite .

Сердцем девайса является контроллер CY7C68013A широко известный на просторах интернетов. Именно на нем народ клепает приборы вроде моего. К сожалению, у нас я не смог найти такой, пришлось покупать (13$) на Ebay небольшую отладочную платку с этим контроллером, а потом варварски его оттуда выковыривать. Кстати на той же плате есть почти все что нам потребуется для изготовления девайса (кроме буфера). Сама платка выглядит вот так:

Шаг выводов у контроллера очень мелкий, и если у вас не возникает желания «подковать блоху», то можно оставить контроллер на своем месте просто подпаяв к этой плате буфер. Но тут есть один момент об который я ломал голову почти целый день — этой на плате стоит не совсем та микросхема памяти. В первых нескольких байтах этой микросхемы должен быть записан идентификатор устройства и производителя (PID и VID). Как потом оказалось эта EEPROM память, может быть использована программой контроллера для каких-то своих целей. Прошивка предполагает, что к контроллеру подключена память 24lc02 ну а фактически китайцы туда присобачили 24lc128. Из-за разницы в адресации к ячейкам, прошивка не может записать (или прочитать?) что-то в какую-то ячейку памяти и девайс не стартует. Однако те самые первые байты с PID и VID пишутся/читаются правильно даже с микросхемой памяти большего объёма. Микросхема достаточно редкая (потому что старая) и я не нашел её не местном радиобазаре и втыкал всякие по очереди из тех что были в наличии. Успешно заработала 24lc04, а 24lc16 и всё что больше — работать правильно отказались. Эта проблема была только с софтом от Saleae, что же касается USBee, то там все работало без замены микросхемы. Кстати у контроллера CY7C68013A есть одна примечательная особенность: Он не имеет ни какой энергонезависимой памяти в которой хранится его прошивка. Она записывается в контроллер драйвером и остается в нем пока есть питание. Таким образом меняя VID и PID в микросхеме памяти, мы можем превратить девайс во что угодно 🙂 Теперь посмотрим из чего же сделан наш девайс:

А собственно ничего почти в нем и нет:

  • Сам контроллер CY7C68013A
  • Микросхема памяти
  • Буфер
  • Стабилизатор на 3.3 в

Ну и всякая типовая обвязка. Кстати на конденсаторах народ народ на форумах экономить не рекомендует, иначе самопроизвольные сбросы и прочие сюрпризы вам гарантированы. Отдельно стоит рассказать о назначении перемычек. Нафига нужна JP3 я пока не понял, но на всякий случай поставил, так как во многих подобных девайсах она есть. Без неё всё пока работает нормально. Перемычка JP1 управляет защитой от записи, её наличие разрешает запись чего-либо в микросхему. JP2 нужна для того чтоб временно отсоединять память от контроллера для её дальнейшей прошивки. Как это сделать сейчас разберемся. Кстати, прошить её можно обычным программатором для подобных микросхем, но для удобства лучше воспользоваться моим способом. Первым делом нужно скачать (и установить!) Cypress SuiteUSB 3.4, сделать это можно на официальном сайте или у меня . Затем необходимо снять перемычку JP2, а перемычку JP1 установить. После этого подключаем девайс и видим появилось новое устройство. После установки драйверов оно должно отображаться так:

Понятно, что контроллер не обнаружил микросхемы памяти и не понимает кто он из-за невозможности прочитать VID и PID. Когда контроллер находится в таком режиме, мы можем записать что-то в EEPROM память при помощи специальной утилиты которую мы установили ранее. Возвращаем перемычку JP2 на место при этом не отключая устройство! Теперь нужно запустить программу Usb control center и выбрать в списке слева наше устройство «Cypress EZ-USB FX2LP EEPROM missing «. Потом нужно в меню выбрать пункт Program FX2 -> Small EEPROM и в открывшемся окне выбрать тот файл содержимое которого нужно прошить в EEPROM. Если вы желаете использовать софт Saleae Logic , то нужно прошить туда вот . А если хочется юзать USBee Suite, то . Когда все успешно прошьётся, то внизу окна появится соответствующая надпись:

Если там ошибка, то не установлены перемычки JP1 и JP2. Теперь можно устанавливать софт и пробовать запустить анализатор. Софт Saleae Logic скачать можно на официальном сайте или , а USBee Suite или у меня . Установка ни каких проблем вызвать не должна, везде нажимаем «далее» и со всем соглашаемся 🙂 Особо активно я пока этот анализатор не использовал, поэтому о софте подробнейшего рассказа не будет, расскажу только базовые возможности этих двух софтин. Ну а начну с чего попроще: Saleae Logic. Софт умеет декодировать следующие протоколы:

  • DMX-512
  • I2S / PCM
  • Manchester
  • 1-Wire
  • Async Serial
  • Simple Parallel
  • UNI/O

Данные после декодирования можно выгрузить в текстовый файл или сохранить в сыром виде а потом анализировать. Например вот так выглядит обмен данными между термометром DS18B20 и контроллером:


А вот тут я шлю привет через :

Захват данных может начаться как в ручном режиме так и по триггеру. Достоинство этой программы в простоте и интуитивно понятном интерфейсе. А еще она не очень требовательна к ресурсам по сравнению со следующей программой USBee Suite . Сразу после запуска у нас появятся 8 цифровых каналов и один аналоговый, которого в нашей конструкции физически нет. Поэтому его можно отключив нажатием крестика около него. Ну или можно припаять АЦП и немного обвязки и он начнет работать. Но мне с моим нормальным осциллографом это нафиг не нужно и я не стал заморачиваться. Программа умеет понимать следующие протоколы

  • Sync Serial
  • Parallel bus
  • Async Serial
  • SMBus
  • 1-Wire

Самый главный плюс — оно понимает USB, пока он мне не нужен, но скоро буду раскуривать и вот тогда анализатор будет как раз кстати. Я попробовал снять те же самые данные что и выше, при помощи этой программы. Опять тот же самый 1-Wire термометр от Dallas semiconductor:

и опять те же данные отправляемые через :

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

Называются они «Test Hook Clip Probes» если кто будет искать в магазинах заморских. Продаются они сразу по 20 штук на DealExtreme. Предвидя вопросы на счёт платы, скажу сразу что она сделана обычным ЛУТом. Ничего ни где не отвалилось. Контроллер был припаян при помощи паяльника, матов и фена. Главное не торопиться. Ну а все остальные детальки очень большие и паяются феном или паяльником легко и непринужденно. Кстати, моя первая плата в Eagle, так что прошу не судить строго 🙂

Саму печатку можно скачать . Предложения и комментарии принимаются.