Здравствуйте. Хочу показать простой USB-логический анализатор, который можно собрать на любой отладочной плате с микроконтроллером STM32F042 например NUCLEO-F042K6 от ST. А впрочем, по ссылкам найдёте исходники и легко переделаете на любой другой из этого семейства. В этой конструкции 8 каналов. Под них в микроконтроллере задействованы порты PA0-PA7. Максимальная частота выборки – 8 МГц. Максимальная частота входного сигнала – 2 МГц. Максимальное количество выборок на канал – 4096.

Вот здесь нужно отметить, что логический анализатор это железо & ПО для захвата сигнала и его последующего исследования, измерения, анализа интерфейсов.



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

А если присосаться к последовательному I2C интерфейсу и активировать анализатор, то будут автоматически расшифрованы все компоненты I2C подкрашены и обозначены в удобном для анализа виде.

Работа логического анализатора начинается с нажатия на кнопку «Начать захват». Дальше происходит следующее:

1) Устройству передаются параметры захвата.
2.а) Если триггер не задан, захват сигнала начинается сразу после получения параметров захвата.
2.б) Если триггер задан, устройство анализирует входной сигнал, не выполняя захват. Захват сигнала начинается после обнаружения условий, заданных установленным триггером.
3) Буфер захвата заполняется в соответствии с заданным количеством выборок.
4) Устройство передает данные на ПК.
5) ПО обрабатывает и отображает полученные данные.

Триггер может быть установлен на один или несколько каналов. Если триггеры заданы для нескольких каналов, захват сигнала начинается при одновременном наступлении всех условий, заданных установленными триггерами, т.е. между триггерами действует логическая связь «И».
Можно изменить имя и цвет каждого канала. Область отображения сигналов можно прокрутить или масштабировать.

С помощью инструмента «Измерение» можно измерить продолжительность выбранного участка, период, частоту, длительность импульса, посчитать количество фронтов.

Инструмент «Линейка» проводит вертикальную линию, охватывающую сигналы всех каналов, в указанном месте с указанием времени. «Линейка» удобна при оценке расположения фронтов разных каналов относительно друг друга и относительно нулевой отметки времени.

В этом ролике на простом примере можно посмотреть, как это всё работает:



В заключении хочу добавить, что оболочка написана в Visual Studio, ПО для микроконтроллера в IAR. В ближайшее время подарю 16+ канальный логический анализатор с I2C, SPI, UART, I2S. Для построения рассматриваются два микроконтроллера: stm32f730, stm32f446.

Спасибо всем, пользуйтесь на здоровье!

> Скачать инструкцию, прошивку и скетч.
> Скачать IAR проект
> Скачать Visual Studio проект

Комментарии (29)


  1. nerudo
    14.09.2018 17:20

    Не вполне понял, триггеры срабатывают на уровне транзакций I2C или просто по сигналам?


    1. tolegs Автор
      14.09.2018 17:24

      Только по сигналам


      1. nerudo
        14.09.2018 20:19

        Жалко. Без этого получается просто интеллектуальный осциллограф. Я так понимаю, разбор протокола на стороне GUI происходит?


  1. Neuromantix
    14.09.2018 17:29
    +8

    Видео. Как же я ненавижу видео и видеоблоги.


  1. Disasm
    14.09.2018 17:53
    +2

    Лучше бы вы своё устройство научились к оболочке от Saleae цеплять. Да и тот же клон их логического анализатора стоит на Ali дешевле, чем ваша плата. И скорость там побольше будет.


    1. tolegs Автор
      14.09.2018 19:57

      Первое. Saleae коммерческий, закрытый продукт.
      Второе. Клон ворованный.
      Ни к первому, ни тем более ко второму отношения не имею


      1. Disasm
        14.09.2018 22:25

        Ну, если вы клон своровали, то конечно ворованный. А так там схемотехника тривиальная, это как сказать, что ардуины все друг у друга ворованные.


        1. skymal4ik
          14.09.2018 23:33

          У ардуины вся архитектура открыта, это не воровство.


      1. Serge78rus
        15.09.2018 11:40

        Если Вы противник проприетарного софта, то использование Visual Studio для написания оболочки выглядит несколько непоследовательно.


        1. Nick_Shl
          15.09.2018 19:26

          Visual Studio Community — абсолютно бесплатная IDE от Miscrosoft для опенсорсных проектов.


          1. Serge78rus
            16.09.2018 10:13

            Автора не устроила оболочка Saleae по причине своей проприетарности, хотя она тоже бесплатна. Бесплатный софт != свободный.


            1. remzalp
              17.09.2018 09:39

              софт, раздаваемый с исходниками под свободной лицензией, предназначенный для компиляции под проприетарный процессор — является свободным? :)


              1. Serge78rus
                17.09.2018 10:12

                А разве Вам кто то запрещает портировать его под другую аппаратную платформу, в том числе и открытую? Только давайте сейчас не будем вдаваться в вопросы целесообразности портирования абстрактного продукта X под не менее абстрактную платформу Y.

                Если вопрос задан с целью троллинга, о чем можно судить по смайлику, то просто отсылаю Вас на профильные ресурсы, например FSF.


                1. remzalp
                  17.09.2018 13:06

                  Про свободную программу — "у пользователей есть свобода выполнять, копировать, распространять, изменять и улучшать программу" (с) gnu.org


                  В файлах исходников у автора в заголовке:


                  /*
                  ***************************************************************
                  * COPYRIGHT(c) ЗАО «ЧИП и ДИП», 2018
                  * 
                  * Программное обеспечение предоставляется на условиях «как есть» (as is).
                  * При распространении указание автора обязательно.
                  ***************************************************************
                  */

                  Так что подытоживая — свободной программы не получилось.
                  Хотя и на Visual Studio можно писать вполне себе свободный C++/С# код. В определении свободной программы нет обязательности работы именно под GNU/Linux, да и инструменты для работы с кодом и компиляции тоже как-то не ограничены.


          1. Reineke
            17.09.2018 13:16

            Бесплатный != непроприетарный


      1. Wingtiger
        15.09.2018 12:13

        те же осциллографы на стм32 китайцы воруют и продают как оригинальные и закрытые. А если и меняют схему (чтоб не воровство), то почти всегда в сторону ухудшения. И я не настолько богат чтобы покупать хорошее и/или фирменное. Буду жить лучше — буду покупать хорошее и дорогое.


    1. Grimar
      14.09.2018 19:59
      +2

      Тогда уже к sigrok, с которым клон Saleae тоже отлично работает.


      1. Disasm
        14.09.2018 20:27

        Во, точно, я и забыл об этом проекте.


      1. xvilka
        14.09.2018 21:02
        +1

        Угу, а именно PulseView:

        image

        Одно из больших преимуществ проекта — большое количество поддерживаемого оборудования и декодеров сигналов.


        1. bugdesigner
          15.09.2018 09:06

          Отличный проект, но опять же не хватает триггеров и поиска по протокольным событиям. Вот у меня Tektronix умеет запускать триггер, скажем по определённому адресу I2C или отсутствию ответа на шине, например. Этого, а так же поиска по данным/событиям PulseView не хватает катастрофически.


        1. nafgne
          15.09.2018 15:24

          Он очень тормознут и малофункционален, увы.


  1. Nick_Shl
    14.09.2018 18:36
    +1

    Почему IAR? Я понимаю, что у некоторых есть на работе, у некоторых тыреный… но не лучше бы взять что нибудь бесплатное?
    Atollic TrueStudio стал бесплатным. Есть ещё System WorkBench for STM32 — полностью бесплатная среда разработки(Eclipse + gcc), поддерживаемая в CubeMX. Для своих домашних поделок я использую именно последнюю, хотя на работе использую IAR.


    1. NordicEnergy
      14.09.2018 19:25

      Забавно, когда вместо одного древнего гуано мамонта (IAR) советую такое же гуано, но более современное и с другими болячками. Если уж эклипс, то хотя бы чистый. Воркбенч баганый как не знаю что, особенно отладчик, хотя казалось бы все эти баги отсутствуют в эклипсе. ТруСтудио сейчас привязана только к stm, а это плохо и неудобно.


      1. bugdesigner
        15.09.2018 09:10

        Не вижу никаких проблем, главное ведь — исходный код. А собрать можно и GCC, нужно только совсем немного потрудиться над make файлом.


      1. Nick_Shl
        15.09.2018 19:36

        Не сталкивался с багами в Воркбенче. Какие именно баги?
        Вот в коде генерируемым CubeMX — там да, баг на баге сидит и багом погоняет. Но с каждой новой версией их правят потихоньку.
        Привязка это проблема только если вы часто меняете платформы. Для хобби не всегда это нужно.


    1. tolegs Автор
      14.09.2018 19:38

      У IAR тоже есть бесплатная лицензия с ограничением по коду: для ядер cortex-m0 и cortex-m0+ 16 кб, для других 32 кб.


  1. Punk_Joker
    14.09.2018 19:57
    +3

    Ожидал увидеть какие-то детали по реализации. А оказалась очередная короткая реклама личного проекта


  1. x893
    14.09.2018 23:46

    PulseView отличный!
    Но и Электронные Войска надо понять — чем-то надо заниматься.
    Выборы только в ноябре — свободное время есть.


  1. Costic
    15.09.2018 15:19

    Мне нравится идея. Если USB-пакеты будете разбирать — шикарно. Про UART и CAN не забудете? И было бы удобнее на githab'e разместить, если это всё OpenSource.
    Пользовательский интерфейс надо бы доработать. Например, убрать диагональные полосы. При наводке мыши на сигнал сразу в статусе можно показывать частоту/длину периода и т.д. Окошко с расшифровкой данных и таймингами надо бы снабдить Header'ом и поиском. Спасибо.