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

Добавил пользователь Alex
Обновлено: 18.09.2024

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

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

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

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

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

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

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, можно добавлять к перехваченным данным закладки, проводить измерения задержек и длительностей, выставлять всевозможные маркеры и даже проводить поиск по данным для декодированных протоколов.

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

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

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

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

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

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

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

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

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

Выводы

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

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

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

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

2013-01-15 в 9:59, admin , рубрики: diy или сделай сам, stm32, осциллограф, Программинг микроконтроллеров, сделай сам, метки: stm32, осциллограф, сделай сам

Приступим

Итак, все, что нам понадобится это:

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

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

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

Ограничения

В проекте используется открытый протокол SUMP. Данный протокол изначально разрабатывался для ЛА на базе ПЛИС, и поскольку в части записи входных сигналов и анализа потока данных микроконтроллеры по-прежнему им уступают, нам будут доступны не все функции реализованные в клиенте:

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

Эти ограничения следует иметь ввиду при настройке клиента. Тот ничего не знает об этих ограничениях и позволит выбрать любые настройки. Полученный результат в этом случае будет некорректным.

Пользуемся

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

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

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

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

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

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

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

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

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

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

Полезности

PS: LogicDiscovery успешно применяется как дома, так и на работе, преимущественно для анализа последовательных интерфейсов (SPI, UART). Если будут пожелания по расширению функционала — буду рад выслушать. Учитывайте только, что многое упирается в ограничения клиента, например, размер выборки на F4 можно сделать в разы больше, однако клиент просто не знает других размеров.

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

Моделирование с помощью САПР ПЛИС - мощное средство отладки. Однако для воспроизведения всех возможных ситуаций объем его оказывается столь велик, что моделирование даже малой части этого объема физически неосуществимо. К тому же, нередко ошибка связана с такой комбинацией или временной последовательностью сигналов на входах ПЛИС, которая, по мысли разработчика, не возникает при работе и поэтому не проверяется и при моделировании. Использование осциллографа практически не помогает обнаружить ошибки, проявляющиеся как неправильная комбинация нескольких сигналов. Мощное средство - логический анализатор, однако он не позволяет подключиться к внутренним сигналам ПЛИС, не поступающим на ее выводы. А нередко (например, при использовании корпусов BGA) нельзя подключиться и к выводам ПЛИС. Кроме того, высокочастотный логический анализатор - дорогой и малораспространенный прибор, не у каждого разработчика есть возможность его использовать.

Весьма полезным средством отладки устройства, реализованного на ПЛИС, может оказаться логический анализатор, размещенный внутри этой ПЛИС. Возможность такого размещения, как правило, имеется, поскольку логические ресурсы ПЛИС очень редко задействованы полностью. Обычно часть их остается свободной, и этой части достаточно для реализации логического анализатора. Такой анализатор имеет доступ ко всем логическим сигналам - как к внешним, поступающим на выводы ПЛИС, так и к внутренним, не поступающим на ее внешние выводы. Анализатор позволяет запоминать последовательность сигналов или их комбинаций в сдвиговом регистре, организованном в ПЛИС на одном или нескольких блоках памяти (см. рисунок). Причем запись может вестись как в каждом такте, так и по условию, выработанному на основе логических сигналов ПЛИС. Запись останавливается (по достижении ошибки) либо по условию, выработанному внутри ПЛИС, либо по внешнему сигналу, поступающему, например, от тестового оборудования. После этого сдвиговый регистр хранит информацию и о сигналах на момент проявления ошибки, и о сигналах за предыдущее время (предистория). Считав эти данные, можно получить информацию о непосредственном проявлении ошибки и о том, что ей предшествовало. Анализ этой информации, как правило, позволяет выявить характер ошибки и определить пути ее исправления. Важное достоинство такого логического анализатора - большая гибкость. Можно выбирать как ширину записываемой информации (число записываемых в одном такте бит), так и ее глубину (глубину сдвигового регистра). Разработчик свободен в выборе того, какие биты или их логические комбинации записывать, каковы условия записи и ее останова.

Работает логический анализатор следующим образом. В начальный момент значение триггера TGS равно логическому "0". При этом допускается формирование сигнала разрешения сдвига от комбинации входных сигналов. В ходе работы ПЛИС информация записывается в сдвиговый регистр. При обнаружении ошибки триггер TGS переводится в состояние логической "1". При этом сдвиг от комбинации входных сигналов запрещается, а по мере поступления сигналов чтения производится сдвиг содержимого сдвигового регистра, так что на выходную шину каждый раз подается очередное сохраненное в регистре значение, т.е. сигнал сдвига формируется от сигнала чтения. Запрет сдвига от комбинации входных сигналов на этапе чтения гарантирует отсутствие лишних, не связанных с чтением содержимого сдвигового регистра, сдвигов, которые привели бы к пропаданию части сохраненной информации.

Блок-схема логического анализатора

По данной блок-схеме реализован логический анализатор в ПЛИС типа EP1C6 (семейство Cyclone) фирмы Altera. На этой ПЛИС был выполнен контроллер шины PCI, интерфейс синхронной динамической памяти, интерфейс специализированного микропроцессора и буфера типа FIFO, а также ряд вспомогательных функций. Для реализации сдвигового регистра в составе логического анализатора использовалась стандартная функция Shift Register (RAM Based), доступная через MegaWizard Plugin Manager, входящую в САПР ПЛИС Quartus-ll. Применение стандартной функции позволило создать логический анализатор с минимальными затратами труда и времени разработчика. Выход логического анализатора реализован как 32-бит регистр, доступный по чтению по определенному адресу шины PCI. Установка триггера TGS в состояние логической "1" осуществлялась по чтению из этого регистра. При поиске нескольких различных ошибок менялись ширина и глубина сдвигового регистра, совокупность входных сигналов, логика формирования сигнала разрешения сдвига. Применение логического анализатора позволило значительно ускорить процесс отладки.

Автор: Погорилый А., Соколов А.

Мнения читателей

Все это замечательно в теории. На практике возникает много "но".Во-первых, IP-ядра встроенных анализаторов стоят денег, пусть не таких больших, как отдельные приборы, но все же это не даром.Во-вторых, как правило встроенный анализатор с целью повышения быстродействия имеет приоритет при разводке. Таким образом некоторые скоростные ресурсы ПЛИС подминает под себя. Задержки в тестируемом проекте существенно могут изменится.В-третьих, полоса пропускания встроенных анализатором оставляет желать лучшего, так как определяется типом используемой ПЛИС. Гличи отловить крайне сложно.А в целом вещь интересная.

Вы можете оставить свой комментарий, мнение или вопрос по приведенному выше материалу:

Авторизуясь в LiveJournal с помощью стороннего сервиса вы принимаете условия Пользовательского соглашения LiveJournal

[Tags|Электроника]

Купил логический анализатор. Вот такой:

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

Для работы с анализатором используется программа идущая к официальной железке (ломать ее не надо). Есть и программы других фирм, но под них нужно будет перешить EEPROM в анализаторе.

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

В общем всем электронщикам, кто тупит также как я - рекомендую не оттягивать момент покупки столь дешевой, но столь полезной железяки :)

Для работы в сложных цифровых схемах китайский логический анализатор вещь крайне необходимая. Подкупает так же и его небольшая цена и удобное программное обеспечение. И он вполне меня устраивал пока не возникла необходимость одновременно просмотреть работу разных узлов схемы, питающихся от разных источников и не имеющих общей земли. Изначально анализатор имеет 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 можно использовать любые другие, правда при этом придется корректировать печатную плату или использовать провода. Автор - Дубовицкий Николай.


Приводятся основные сведения о планарных предохранителях, включая их технические характеристики и применение.


Микрофоны MEMS - новое качество в записи звука. Описание технологии.


В каком направлении течет ток - от плюса к минусу или наоборот? Занимательная теория сути электричества.


Переделываем игрушку обычный трактор в радиоуправляемый - фотографии процесса и получившийся результат.

Читайте также: