Самодельный логический анализатор. Доработка логического анализатора из китая. Установка драйвера для логического анализатора Saleae

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

  • до 32 входных каналов;
  • память 128 КБайт на каждый канал;
  • частота дискретизации до 100 МГц;
  • вход внешнего тактирования;
  • все входы совместимы с 3.3 В и 5 В логикой;
  • настраиваемый размер буфера предвыборки/поствыборки кратный 8 КБайт;
  • 16 битный генератор внутренней синхронизации;
  • несколько режимов внутренней синхронизации;
  • программируемая задержка синхронизации;
  • программируемый счетчик событий синхронизации;
  • вход внешней синхронизации;
  • коммуникация с ПК по LPT (EPP режим) или USB интерфейсу;
  • несколько версий приложений для ПК под различные операционные системы.

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

В качестве источника тактовой частоты для ПЛИС используется осциллятор IC4 (IC6), позаимствованный со старой материнской платы компьютера. Несмотря на то, что осциллятор рассчитан на работу при напряжении 5 В, проблем в работе прибора при питании его напряжением 3.3 В выявлено не было.

Для хранения выборок используется внешнее быстродействующее ОЗУ - микросхема .

Для питания прибора используется внешний источник с выходным напряжением до 15 В. ПЛИС и ОЗУ имеют напряжение питания 3.3 В, поэтому установлен регулятор напряжения 3.3 В серии LD1117DT33 .

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

Замечание. Вместо вывода 40 (Vss) микросхемы SRAM к «земле» подключен вывод 39 этой микросхемы. Решение: соединить на печатной плате вывод 39 и 40 вместе (вывод 39 не используется в микросхеме SRAM).

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

Адаптер USB интерфейса для логического анализатора собран на микросхеме серии FT2232C производства компании FTDI. Данная микросхема объединяет в себе функциональность двух отдельных микросхем FT232BM и FT245BM. Она имеет два канала ввода/вывода, которые конфигурируются отдельно. Основные моменты конфигурации FT2232C для применения в составе прибора - это питание от USB интерфейса и режим эмуляции шины микроконтроллера (MCU Host Bus Emulation mode). Этот режим конвертируется в протокол EPP посредством мультиплексора IC3 74HCT4053D. Так как непосредственное декодирование сигналов /DST, /AST и RD/WR может вызывать конфликты таймингов, используется дополнительный сигнал A8, который используется в качестве сигнала RD/WR (чтение/запись) в периоды передачи данных по EPP протоколу.

Коннектор JTAG (CON2) используется для конфигурирования ПЛИС - это для будущих разработок, на текущий момент данный интерфейс не используется.

Микросхема EEPROM серии 93LC56 (IC2) хранит конфигурационные данные для микросхемы FT2232C и является обязательным элементом для правильного функционирования программируемого интерфейса. Для программирования данной микросхемы используется утилита FT_Prog (ранее она имела название MProg). Данная утилита и драйвера FT2232C доступны для скачивания на сайте компании FTDI.

Печатная плата адаптера разработана односторонней, что упрощает ее изготовление.

Существует также версия B 1.0 адаптера USB интерфейса (Рисунок 5). Данная версия отличается отсутствием коннектора JTAG и печатной платой, которая выполнена с учетом встраивания ее в корпус коннктора CANNON 25. Внешний вид собранных адаптеров а Рисунке 6.

a) b)
Рисунок 6. Внешний вид адаптера USB интерфейса версия A 1.1 (а) и версия B 1.0 (b)

Также имеется еще одна версия схемы логического анализатора (Рисунок 7), в которую уже интегрированы интерфейсы USB и LPT. Автором этого варианта является Bob Grieb и при разработке схемы использовалась среда TinyCAD, печатная плата для него разрабатывалась в редакторе FreePCB.

Для работы в сложных цифровых схемах китайский логический анализатор вещь крайне необходимая. Подкупает так же и его небольшая цена и удобное программное обеспечение. И он вполне меня устраивал пока не возникла необходимость одновременно просмотреть работу разных узлов схемы, питающихся от разных источников и не имеющих общей земли. Изначально анализатор имеет 8 не развязанных по питанию каналов с амплитудой импульсов на входе 5 вольт. Данная доработка позволяет сделать входы анализатора гальванически развязанными и работать с импульсами амплитудой от 3-х вольт до 25 вольт. Положение галетных переключателей выбирается в зависимости от размаха входных импульсов. Но расчетно схема сохранит работоспособность до 65 вольт.

В схеме используются высокоскоростные оптроны, рассчитанные для работы в оптоволоконных сетях. Частотные характеристики оптрона выше, чем может пропустить анализатор,так как минимальная длительность импульса которую может зарегистрировать анализатор составляет что то около 42 наносекунд. Ток светодиода оптрона выбран в районе 6-7,5mA. Оптрон допускает повышение тока до 15mA. А такой ток возникнет при входном напряжении 65 вольт при положении галетного переключателя "25v".

Конкретно моя плата содержит 4 гальванически развязанных канала и 4 не развязанных с 5-ти вольтовыми входами. Питание подается с платы анализатора. При этом надо провести некоторую доработку: достать из корпуса плату анализатора, перерезать дорожку идущую к выводу 9 разъема и подать на этот вывод через резистор 10 Ом напряжение с правого вывода LM1117.

Схема и конструкция получились достаточно простыми, а возможностей использования добавилось значительно.
При испытании гальванически развязанных входов, для чистоты эксперимента, входы подключались параллельно. Т.е взаимно соединялись 4 входа IN A,B,C,D и соответственно Gnd A,B,C,D . Переключатели устанавливались в одинаковое положение. Импульсы создавались искусственным дребезгом контактов и внешним источником питания на соответствующее напряжение.

При сборке использовались оптроны 6N137, переключатели МПН-1, в делителях стоят резисторы смд0805, но поместятся и 1206.При впаивании шлейфа для подключения к анализатору частично изменена последовательность, но на плате все подписано.

Вместо переключателей МПН-1 можно использовать любые другие, правда при этом придется корректировать печатную плату или использовать провода. Автор - Дубовицкий Николай.

0

Vassilis Serasidis Логический анализатор - это инструмент, который позволит увидеть и проанализировать последовательность логических 0 и 1 в цифровом сигнале. К примеру, можно изучить цифровой сигнал с ИК приемника-демодулятора типа TSOP-1736, выходные и входные сигналы микросхемы MAX232, а также шину I2C (линия тактирования и линия данных) во многих электронных устройствах. В статье мы рассмотрим конструкцию миниатюрного 4-канального логического анализатора с ЖК дисплеем от мобильного телефона Nokia 5110/3110. Основой конструкции является микроконтроллер Atmel ATmega8, помимо него используются еще несколько дискретных компонентов. Основные характеристики прибора: 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 три последовательно включенных диода 1N4007 (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-биты в соответствии с рисунком. Вид печатной платы и расположение компонентов

Покупая всякую китайскую электронику для своих «поделок» часто сталкиваюсь с проблемой плохого описания работы,

Тема сегодняшней статьи — использование дешевого китайского логического анализатора купленного на Алиэкспресс .

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

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

Характеристики

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

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

С другой Mini USB для питания и подключения к компьютеру

Внутренности

Внутри корпуса плата, на ней микропроцессор с высокоскоростным USB интерфейсом CY7C68013A от компании CYPRESS , EEPROM ATMLH432 и шинный формирователь LVC245A от NXP .

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

Подключение

Для подключения анализатора в комплекте идут 10 соединительных проводков на штырьковые контакты. Сразу прикупил таких вот клипс-зажимов .

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

Софт

Это, пожалуй, самое интересное в данном анализаторе. К нему подходит родной софт от Saleae Logic .

Доступны версии для 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

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

Кроме того, данный анализатор можно прошить под софт от USBee

Позанимаемся анализом

Как раз разбирался с подключением ультразвуковых датчиков DYP-ME007Y, на вид абсолютно одинаковыми, но работающими совершенно по разному .

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

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

А что там на шине данных у моих ?

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

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

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

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

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

Для проверке высокой частоты на скорую руку собрал генератор на NE555. Удалось выжать из него 8МГц. Анализатор проглотил эту частоту нормально. На 20МГц проверить не удалось, но 8 для такой дешевой железки тоже очень хороший результат.

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

Логический анализатор очень нужная и полезная вещь для тех, кто занимается раскапыванием китайской периферии к микроконтроллерам (Назовем красиво - реверс инжинирингом)
Из достоинств данной железки хочу отметить:

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

Явных недостатков у этой железки для себя не нашел. Жаль, что я не приобрел логический анализатор раньше — сколько времени бы я сэкономил во многих проектах. Несомненно, кому то возможностей данной железки окажется мало. Есть масса более навороченных моделей, но по цена $100-200 делает эти приборы гораздо менее доступными для радиолюбителей.

Поанализируем что-нибудь еще?

15 января 2013 в 13:59

LogicDiscovery - простой логический анализатор

  • DIY или Сделай сам

Довольно часто в домашних электронных поделках возникает необходимость посмотреть тот или иной сигнал, причем достаточно его цифрового представления - что передает МК по I2C, правильно ли настроен ШИМ и т.п. Если на работе есть хороший осциллограф, то покупать его для дома - слишком дорогое удовольствие, особенно, когда необходимость возникает лишь от случая к случаю.
В последнее время появились недорогие (в пределах $50) логические анализаторы, однако меня от их покупки всегда останавливало одна мысль: штука то предельно простая, почему бы не сделать её своими руками из подручных материалов?
В данной статье я расскажу, как сделать простой логический анализатор с минимальными финансовыми затратами - все что нужно это отладочная плата Stm32F4Discovery .

Логический анализатор (далее ЛА) – устройство предназначенное, для записи, просмотра и анализа сигналов в цифровых схемах. Подобно осциллографу, ЛА подключается одним или несколькими щупами к анализируемой схеме, но в отличие от осциллографа фиксирует только два состояния сигнала «0» и «1». Важной функцией ЛА является способность автоматически расшифровывать записанные сигналы, например, разобрать обмен данными по шине I2C или SPI. Также ЛА отличаются бОльшим, по сравнению с осциллографами, количеством анализируемых линий: от 8 в простых анализаторах до сотен в промышленных образцах.
Описываемый здесь проект - LogicDiscovery - это SUMP -совместимый логический анализатор, выполненный в формате USB-приставки к ПК. Он обладает довольно скромными характеристиками: 20MHz, 16 каналов, 24кБ памяти. Однако, этого достаточно для весьма большого круга задач: анализ линий UART, I2C, SPI (в пределах нескольких мегагерц), параллельных шин, измерение временных характеристик сигналов и т.п.

Приступим

Итак, все, что нам понадобится это:
  • Отладочная плата Stm32F4Discovery . От 500 рублей в московской рознице, а может она уже лежит в ваших закромах? Подойдет и любая другая плата на STM32F4 или STM32F2, но тогда придется подправить исходники.
  • Несколько проводов, для подключения к анализируемой схеме.
  • Прошивка, готовая к употреблению лежит на Google.Code . Там же находятся исходники.
  • Кроме того нужен клиент для ПК, рекомендую OLS .
Клиент написан на Java, поэтому полученное решение не зависит от ОС. Теоретически вы можете использовать любой SUMP-совместимый клиент, однако ниже я буду описывать работу именно с этой программой.
Stm32F4Discovery питается от порта mini-USB, через который она и прошивается. Для использования функций ЛА плата подключается к ПК через порт micro-USB. Чтобы запитать плату от этого же порта соединяем перемычкой пины PA9 и 5V . PA9 подключен напрямую к Vbus порта micro-USB, а 5V это вход стабилизатора формирующего питание для платы. Для проверки работы соедините порты PA2 и PD0 . На PA2 формируется тестовый сигнал, а PD0 это первый вход ЛА.

Плата опознается ПК как COM-порт, для Linux драйвера стандартные и должны уже быть в ядре, для Win драйвера скачиваются с сайта ST. После того как плата опозналась можно запускать клиент и приступать к работе.
Но сначала ложка дёгтя.

Ограничения

В проекте используется открытый протокол SUMP . Данный протокол изначально разрабатывался для ЛА на базе ПЛИС, и поскольку в части записи входных сигналов и анализа потока данных микроконтроллеры по-прежнему им уступают, нам будут доступны не все функции реализованные в клиенте:
  • Максимальная частота записи – 20МГц, в оригинале до 200МГц
  • RLE-сжатие и фильтрация шумов не поддерживаются.
  • Нельзя выбрать произвольные группы каналов, только первую (8 каналов), либо первую + вторую (16 каналов).
  • Триггеры работают не по значению, а по фронту (впрочем, на мой взгляд, это уже достоинство).
  • Нет поддержки расширенных (Complex) триггеров.
Эти ограничения следует иметь ввиду при настройке клиента. Тот ничего не знает об этих ограничениях и позволит выбрать любые настройки. Полученный результат в этом случае будет некорректным.

Пользуемся

Запускаем клиент через файл run.bat или run.sh, в зависимости от используемой ОС. О функциях клиента можно почитать на его страничке, здесь я опишу процесс получения первых сэмплов и те настройки, которые попадают под ограничения.

В меню «Capture» , выбирая пункт «Begin capture» , открываем окно настроек записи. На первой странице в поле ««Analyzer port» выбираем порт, на котором сидит наш ЛА, больше ничего менять не нужно. Кнопкой ««Show device metadata» можно проверить наличие связи:

На второй странице указываем параметры захвата. Первые два пункта не трогаем,
«Sampling rate» не выше 20МГц (если указать больше – плата все равно использует 20МГц, но клиент будет думать, что используется указанное значение, в общем, ерунда получится).
«Channel groups» : 0 – используем одну группу каналов, это линии PD0-PD7, либо 0 и 1 – используем две группы каналов - линии PD0-PD15.
«Recording size» : для одной группы каналов – любое значение, для двух групп – не более 12kB (клиент предупредит, если в данном поле выбрано неверное значение).
Чекбоксы на данной странице не трогаем, они не поддерживаются:

Страница «Triggers» - самое интересное. Первый флажок ставим, чтобы просто включить триггеры.
«Before/After ratio» позволяет указать, в процентном соотношении, сколько данных сохранить до срабатывания буфера. После нажатия «Capture» ЛА сразу начинает запись данных, складывая их в циклический буфер, а по срабатыванию триггера отсчитывает указанный в поле After процент времени и отправляет данные на ПК.
«Type» - только «Simple», «Complex» - не поддерживается.
«Mode» - только «Parallel».
«Mask» - это те линии, на которых триггер будет ожидать перепад сигнала, поставте флаг в нулевой позиции для срабатывания по линии PD0
«Value» - фронт сигнала, по которому будет происходить срабатывание триггера. Флажок установлен – передний фронт. Флажок снят – задний:

Для проверки работы соедините порты PD0 и PA2 (на данном порту выводится тестовый сигнал UART) перемычкой.

Вот и все, нажимаем «Capture» и смотрим на полученный сигнал (Ctrl+F - обзорный масштаб):

Если ничего не происходит, значит, вы выставили срабатывание триггера на неправильные линии, или сигнала вовсе нет - проверьте настройки и подключение платы. Триггер можно запустить вручную, нажатием User button (синяя кнопка).

Техника безопасности

Помните: вы подключаетесь напрямую к портам микроконтроллера! Никакой защиты, кроме встроенных в МК диодов на плате нет. Поэтому сначала удостоверьтесь что, изучаемый сигнал имеет максимальное напряжение 3.3В, в крайнем случае 5В, но тогда желательно добавить между источником сигнала и ЛА защитный резистор.

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