В этом тексте я написал про очень полезную способность логического анализатора Saleae и его клиентской утилиты Logic 2. Это синтаксический разбор осциллограммы трафика I2S.

Что надо из железа?

Оборудование

Назначение

1

Логический анализатор Saleae Pro 16

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

2

Кабель USB 3.0 micro

Для подключения логического анализатора к PC

Что надо из софтвера?

Программа

Назначение

1

Программа Logic 2

PC клиент для логического анализатора

Итак, вы подключили свое аудиоустройство к логическому анализатору и увидели бинарную осциллограмму. Как определить какие там семплы в десятичной системе счисления?

Прежде всего надо нажать на вкладку 1F

Далее нажать на + в верхнем правом углу. Надо прописать вот такие настройки I2S/PCM Заполните опции как показано на скриншоте.

Нажимаем save и получаем вот такую разобранную картинку.

Как видно данные в прошивке совпали с тем, что в реальности выставилось на проводах интерфейса I2S

Вывод

Логический анализатор Saleae отличный отладочный инструмент для разбора стандартных цифровых интерфейсов, в частности I2S. Такая простенькая опция позволяет сэкономить уйму времени.

Словарь

#

Акроним

Расшифровка

1

I2S

Inter-IC Sound

2

PCM

Pulse-code modulation

5

PC

personal computer

3

BCLK

Bit clock

4

LRCLK

Left Right Clock

Links

https://habr.com/ru/articles/438732/
https://habr.com/ru/articles/397381/
https://habr.com/ru/articles/698572/

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


  1. LAutour
    01.09.2023 07:00
    +2

    Вы работали с логическим анализатором Saleae?

    Китайские аналоги считаются?


    1. eri
      01.09.2023 07:00
      +1

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


      1. BARSRAB
        01.09.2023 07:00
        +2

        Китайский аналог Saleae. Стоит копейки, работает с оригинальным софтом Logic.Манчестера, кстати, умеет разбирать


        1. eri
          01.09.2023 07:00
          +1

          Их много разных...


          1. BARSRAB
            01.09.2023 07:00

            Да вроде как все одинаковые. Ну не считая 16-канальных.


    1. aabzel Автор
      01.09.2023 07:00

      Скорее Нет. Они совсем ущербные. Записывают только первые 2 секунды и в них нет adc.


      1. BARSRAB
        01.09.2023 07:00
        +1

        АЦП там даром не нужен, а про запись вообще чушь какая-то. Сам анализатор ничего не записывает, пишет софт на ПК. Анализатор лишь за триггеры и передачу данных на ПК отвечает. Вот запись 10с на китайский анализатор:


        1. aabzel Автор
          01.09.2023 07:00

          АЦП там даром не нужен

          ADC-то как раз и нужен для разбора аудио кодеков (например MAX9860).


          1. BARSRAB
            01.09.2023 07:00
            +2

            Сигнал цифровой, зачем там АЦП? Точнее какой смысл смотреть одновременно на цифру и аналог? Тем более что характеристики АЦП там совершенно посредственные.


        1. aabzel Автор
          01.09.2023 07:00
          -2

          У Вас записывается долго лишь по тому что изменений в сигнале нет.

          Вы попробуйте реальный трафик I2S записать и увидите, что через 2 сек китайский аналог ляжет.


          1. LAutour
            01.09.2023 07:00
            +1

            Бред. Лично отлаживал разный вывод на китайском аналоге. Ничего не падало.


          1. BARSRAB
            01.09.2023 07:00
            +1

            Изменения сигнала никак не влияют на количество данных. Семплрейт остается постоянным. Бывает, отваливает только если на ноуте нагрузка на порты высокая. Например, подключен программатор с отладчиком и анализатор. Тогда может ругнуться на скорость соединения. I2S у меня под рукой нет, самое нагруженное, что с ходу нашел - JTAG:

            Ну а не нравится клоны Сейли, так есть вполне неплохие китаезные фирмы, тот же DS Logic, как на моем скрине выше. Там уже под капотом ПЛИС, а не МК, как в 8-канальном клоне Сейли и 16 каналов.


            1. Zuy
              01.09.2023 07:00
              +1

              Да, DS Logic на удивление тоже неплох


              1. LAutour
                01.09.2023 07:00
                +1

                У него преимущество: буферная память (бер распаянной памяти Китайцы вроде больше не продают) позволяет на на высокой частоте дискретизации (с ограничением по времени) не зависеть от нагруженности USB.


          1. Reason89
            01.09.2023 07:00
            +1

            Так там же в программе все это дело настраивается. И частота дискретизации и объем записываемой информации. И ничего не ложится.


  1. BARSRAB
    01.09.2023 07:00
    +2

    Серьезно? Целая статья о том, как вписать значения в готовую форму? А почему бы тогда не начать с того, как запустить ПО? Ну или подключить анализатор к ПК? Я ожидал, что тут будет статья про то, как самому написать декодер для Logic, а тут какой-то детский сад...


    1. aabzel Автор
      01.09.2023 07:00

      Да, так и есть. Потому что благодаря логическому анализатор Saleae и утилите Logic 2 ребёнок из детского сада может делать, то же самое что без Saleae Logic могли лишь делать деды из НИИ.


      1. BARSRAB
        01.09.2023 07:00
        +2

        Такое себе оправдание появления статьи. Пока что это очень сильно смахивает на обычную рекламу, особенно вместе утверждениями про то, что неоригинальный анализатор так работать не умеет. Что помешало просто добавить информацию из этой статьи в статью про I2S? Плюс при чем тут какие-то там деды из НИИ, когда это может сделать любой человек владелец осциллографа? Тем более что разбирать весь поток данных никому не нужно.


      1. Andy_Big
        01.09.2023 07:00
        +1

        Китайский анализатор, который Вы не пробовали, но не смотря на это не любите, сделает это без лишних движений, достаточно просто указать ему, что данные нужно интерпретировать как I2S.


  1. NutsUnderline
    01.09.2023 07:00

    Еще бы в двух словах описать как работает I2S. Не по нравились подписи к картинке перед Выводом: там число 254.8 магическим образом превратилось в ДВА числа 254 (вероятно Sapmple R и Sample L, но почему то 8 битных, хотя вроде бы были 16).
    Ответы дает статья по третей ссылке, можно конечно перейти на нее, долго и упорно читать, но эта статья слишком уж лаконична.


    1. BARSRAB
      01.09.2023 07:00
      +1

      Ну 8-битными они точно быть не могут, там же значения больше 255 дальше идут. Ну а превращение 245,8 в 254 - это округление. Ну и да, на картинке автору надо было выделять Sapmple R и Sample L, а не Real/Int...


      1. NutsUnderline
        01.09.2023 07:00
        +1

        Ааа. пригляделся - понял, понял вижу 16 бит


  1. Reason89
    01.09.2023 07:00
    +1

    В статью можно было добавить, что во второй версии ПО добавили поддержку расширений для расшифровки или преобразования полученных данных. Тот же I2S поддерживается.

    Можно использовать как готовые, так и написать собственное имея какие то базовые познания в Python.