Страница 3 из 3 Первая 123
Показано с 41 по 47 из 47

Тема: Простой способ получить преобразовать i2s в RJ 16bit для

  1. #1 Показать/скрыть первое сообщение.
    Новичок
    Автор темы
    Аватар для dims
    Регистрация
    23.03.2020
    Сообщений
    84

    По умолчанию Простой способ получить преобразовать i2s в RJ 16bit для

    Добрый день!

    Хочу поиграться с pcm56, коих лежит несколько штук без дела. Под рукой есть STM32F4, на ней сделал простой транспорт USB-i2s (использовал с pcm5102 и es9023). Возможно ли программно переконфигурировать вывод i2s из стмки в нужный для pcm56 формат? Может кто видел такую реализацию в коде?

    ---------- Сообщение добавлено 14:21 ---------- Предыдущее сообщение было 14:15 ----------

    Или проще купить готовый преобразователь типа такого на ad1896:
    Нажмите на изображение для увеличения. 

Название:	Sa7292db5a3dd46a58bb818f13b7b4516b.jpg 
Просмотров:	256 
Размер:	107.3 Кб 
ID:	470347

  2. #41
    Новичок
    Автор темы
    Аватар для dims
    Регистрация
    23.03.2020
    Сообщений
    84

    По умолчанию Re: Простой способ получить преобразовать i2s в RJ 16bit для

    Цитата Сообщение от dortonyan Посмотреть сообщение
    I2S модуль правого канала должен запускать DMA, который скопирует 4 байта данных из буфера USB данных.
    При этом I2S выдаст два канала по 16 бит, но в ЦАП загрузится только один канал, который выровнен к спаду сигнала LRCK.
    Для другого канала делается то же самое, только адрес по которому DMA будет считывать 4 байта должен быть сдвинут на 2 байта (чтобы пропустить один канал).
    Спасибо! Похоже, самое действенное и простое решение. Что-то я не дошел до того, что указатель начала данных для второго канала можно просто сместить на 16 бит

  3. #42
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    62
    Сообщений
    38,736

    По умолчанию Re: Простой способ получить преобразовать i2s в RJ 16bit для

    Цитата Сообщение от dortonyan Посмотреть сообщение
    Конкретнее не подскажу, с DMA на M4-кортексах плотно не работал.
    Сам не пользовался, но в М4 при использовании ПДП с ФИФО, есть разные варианты переконвертации, типа брать с каждого int32_t младшее (или старшее) слово и оправлять в порт.

    P.S. Зачем использовать два I2S, и в каждом только половину времени (т.е. один канал), если I2S это просто режим работы порта SPI? Почему два SPI в родном виде не использовать?
    Еще можно проц другой взять где SAI есть, там тоже получается.
    Последний раз редактировалось Alex; 07.04.2025 в 21:41.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Да мне-то что, меняйтесь!"(с)анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  4. #43
    Новичок Аватар для nabiullin
    Регистрация
    08.05.2018
    Адрес
    Уфа, Башкирия
    Возраст
    41
    Сообщений
    65

    По умолчанию Re: Простой способ получить преобразовать i2s в RJ 16bit для

    вставлю свои 16 копеек (или 18) ;))
    тоже экспериментирую с PCM61/PCM56

    подключил к adau1452 -> ЦФ DF1700, а к цф уже цапы.
    завелось это всё только с генератором на 11.2896 мгц,

    настройки адау вот такие:
    Нажмите на изображение для увеличения. 

Название:	2020-07-28_17-23-01.png 
Просмотров:	67 
Размер:	75.6 Кб 
ID:	471663

    когда ставлю WORD LENGTH 16 бит то не работает, с 24 - работает.
    TDM Mode 2 channels 32 bit - работает, 2 channels 16 бит не работает.

    При "рабочих" параметрах данные вот такие:

    Нажмите на изображение для увеличения. 

Название:	WhatsApp Image 2025-04-05 at 02.15.56.jpeg 
Просмотров:	100 
Размер:	162.6 Кб 
ID:	471664
    Нажмите на изображение для увеличения. 

Название:	WhatsApp Image 2025-04-05 at 02.15.56.jpeg 
Просмотров:	100 
Размер:	162.6 Кб 
ID:	471664
    система в авто:
    процессор AudioBerry DSP1 -> усь Alpine MRP f900 -> ас Bewith Accurate 2 + саб Pioneer ODR TS2

  5. #44
    Завсегдатай Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    39
    Сообщений
    3,952

    По умолчанию Re: Простой способ получить преобразовать i2s в RJ 16bit для

    Цитата Сообщение от Alex Посмотреть сообщение
    P.S. Зачем использовать два I2S, и в каждом только половину времени (т.е. один канал), если I2S это просто режим работы порта SPI? Почему два SPI в родном виде не использовать?
    Можно и SPI, но:
    1. SPI должен работать в специальном синхронном режиме (как у STM не знаю, в пике такой есть).
    2. Не все ЦАПы будут работать с загрузкой данных пока LATCH в нуле. Но конкретно для PCM56 конечно пофиг.

    Цитата Сообщение от nabiullin Посмотреть сообщение
    При "рабочих" параметрах данные вот такие:
    Нажмите на изображение для увеличения. 

Название:	WhatsApp Image 2025-04-05 at 02.15.56.jpeg 
Просмотров:	100 
Размер:	162.6 Кб 
ID:	471664
    Нажмите на изображение для увеличения. 

Название:	WhatsApp Image 2025-04-05 at 02.15.56.jpeg 
Просмотров:	100 
Размер:	162.6 Кб 
ID:	471664
    Так оно тоже криво работает, т.к. младшие 8 бит из 24-х обрезаются.
    В 1700 загружаются только последние 16 бит перед фронтом LRCK (направление фронта определяет загружаемый канал).
    И что это за частота в 468кГц?

  6. #45
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    62
    Сообщений
    38,736

    По умолчанию Re: Простой способ получить преобразовать i2s в RJ 16bit для

    Цитата Сообщение от dortonyan Посмотреть сообщение
    1. SPI должен работать в специальном синхронном режиме (как у STM не знаю, в пике такой есть).
    Не помню что это, давно с пиками не работал.
    У меня на AD1862 два SPI работают в паре мастер-слейв.

    (тот-же трюк у меня и для вывода DSD кое-где используется).
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Да мне-то что, меняйтесь!"(с)анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  7. #46
    Завсегдатай Аватар для Delta213
    Регистрация
    23.01.2006
    Адрес
    Астрахань
    Сообщений
    5,205

    По умолчанию Re: Простой способ получить преобразовать i2s в RJ 16bit для

    А почему бы не поставить транспорт фламенко, у него есть RJ, для 16 бит поддержка 192к, остается только потоки разделить, но это вообще просто. У аманеро емнип есть прошивка с RJ.
    Подчиненный перед лицом начальствующим должен иметь вид лихой и придурковатый, дабы разумением своим не смущать начальство.
    Указ Петра I от 09.12.1709:

  8. #47
    Новичок
    Автор темы
    Аватар для dims
    Регистрация
    23.03.2020
    Сообщений
    84

    По умолчанию Re: Простой способ получить преобразовать i2s в RJ 16bit для

    В итоге задачка решена.
    Решение сработало самое простое (и эффективное), предложенное dortonyan, спасибо!
    В ЦАП первого канала передаются данные L+R, но защелкиваются данные того канала, который выровнен к спаду LRCK (используется как LE). В ЦАП второго канала передаются данные со смещением + 2 байта.

    п.с. - понятно, что это решение для конкретной ситуации с pcm56 и на универсальность для других цап не претендует.

Страница 3 из 3 Первая 123

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •