Показано с 1 по 8 из 8

Тема: 4x-upsampling на ПЛИС для AD1865?

  1. #1
    Старый знакомый
    Автор темы
    Аватар для antonluba
    Регистрация
    12.12.2014
    Адрес
    Сочи, Коломна
    Возраст
    46
    Сообщений
    975

    По умолчанию 4x-upsampling на ПЛИС для AD1865?

    У меня самодельный ЦАП, который я никак не доведу до ума:
    Интерфейс USB-I2S на STM32F407, гальваническая развязка, Altera MAX2 epm240 (или даже 570, сейчас не вспомню), AD1865, I-V на сдвоенном ОУ.
    Тактируется от генераторов 45158400/49152000 МГц

    Сейчас он работает в режиме NOS, фильтрация вся вокруг ОУ.
    CPLD занимается только преобразованием формата I2S в AD1865-совместимый и еще там reclock в конце.

    Я думаю, что надо ему приделать цифровой фильтр. Начать с 4-x upsampling-a и цифрового ФНЧ на 20-22кГц.

    Есть ли готовое компактное решение, могущее влезть в Altera MAX2 epm240 или 570?
    С ходу не нашел.
    Сможет ли кто-нибудь помочь с реализацией такового (по мере наличия желания и свободного времени)?

    Ну и теоретические размышления по поводу subj-а приветствуются.

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

    По умолчанию Re: 4x-upsampling на ПЛИС для AD1865?

    Цитата Сообщение от antonluba Посмотреть сообщение
    Есть ли готовое компактное решение, могущее влезть в Altera MAX2 epm240 или 570? С ходу не нашел.
    1. На плисине без ОЗУ (т.е. без выделенных блоков памяти) даже про экономичный фильтр можно забыть.
    2. Даже при наличии ОЗУ 570 ячеек мало. Самое компактное, во что теоретически можно впихнуть более-менее нормальный фильтр (типа SM5847) - это примерно LCMXO2-1200. Но и то - только при использовании максимального грейда скорости, за счет разгона тактовой частоты.

    Поэтому для такого дела смотрите сразу альтеровские циклоны. Сильно экономнее чем в этой реализации не получится.
    А если неахота возиться с FPGA, то есть другой вариант: использовать в кач-ве ЦФ ASRC. Например AK4137, как у Алекса.
    CPLD при этом можно использовать для преобразования I2S потока в PCM код для ЦАП и для генерации других вспомогательных сигналов, типа строба деглитчера.
    На 570 ячейках возможно даже получится сообразить шейпер. Но это не точно.

  3. #3
    Старый знакомый
    Автор темы
    Аватар для antonluba
    Регистрация
    12.12.2014
    Адрес
    Сочи, Коломна
    Возраст
    46
    Сообщений
    975

    По умолчанию Re: 4x-upsampling на ПЛИС для AD1865?

    Цитата Сообщение от dortonyan Посмотреть сообщение
    1. На плисине без ОЗУ (т.е. без выделенных блоков памяти) даже про экономичный фильтр можно забыть.
    2. Даже при наличии ОЗУ 570 ячеек мало. Самое компактное, во что теоретически можно впихнуть более-менее нормальный фильтр (типа SM5847) - это примерно LCMXO2-1200. Но и то - только при использовании максимального грейда скорости, за счет разгона тактовой частоты.

    Поэтому для такого дела смотрите сразу альтеровские циклоны. Сильно экономнее чем в этой реализации не получится.
    А если неахота возиться с FPGA, то есть другой вариант: использовать в кач-ве ЦФ ASRC. Например AK4137, как у Алекса.
    CPLD при этом можно использовать для преобразования I2S потока в PCM код для ЦАП и для генерации других вспомогательных сигналов, типа строба деглитчера.
    На 570 ячейках возможно даже получится сообразить шейпер. Но это не точно.
    Все эти варианты - это новый проект, по сути.

    А что, если (ладно, откажемся от цф), сделать некий альтернативный вариант, типа аппроксимации недостающих отсчетов полиномом невысокого порядка по нескольким, скажем, трем исходным отсчетам?

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

    По умолчанию Re: 4x-upsampling на ПЛИС для AD1865?

    Надо считать, сколько операций умножения/суммирования приходится на один такт входной частоты семплирования.
    А вообще, даже грубая прикидка:
    Для операций по трем отсчетам эти отсчеты нужно хранить в каких-то регистрах. Если разрядность выбрать скажем 22 бита, то только на ОЗУ на два канала уйдет 22*2*3=132 ячейки. Плюс результат вычислений нужно накапливать в каком-то аккумуляторе, допустим 24 бита. Итого еще 48 ячеек на два канала.
    А еще регистры нужны для приема I2S (это как минимум сотня ячеек), и для вывода данных, еще примерно столько же. Это если совсем по простому, без округлений.
    И вот уже набегает около 350..400 ячеек, при самой экономичной реализации.
    Если выбрать плисину на 570 ячеек, то на соб-но арифметику считай ничего не остается.

    В общем, если не делать новый проект, то самый верный вариант - использовать софтовый ресемплинг, и выводить на транспорт сразу 32 бита 384 или даже 768кГц. А на плисине сделать шейпер с округлением до 18 бит.
    Можно еще попробовать сделать х2 или х4 интерполятор на STM32, а в плисине дополнить его еще одним х2 каскадом апсемплинга, скажем CIC фильтром. Но все равно это будет что-то очень скромное.

  5. #5
    Старый знакомый
    Автор темы
    Аватар для antonluba
    Регистрация
    12.12.2014
    Адрес
    Сочи, Коломна
    Возраст
    46
    Сообщений
    975

    По умолчанию Re: 4x-upsampling на ПЛИС для AD1865?

    Буду думать. Спасибо

  6. #6
    Частый гость Аватар для Кокон
    Регистрация
    12.06.2006
    Адрес
    Минск
    Сообщений
    440

    По умолчанию Re: 4x-upsampling на ПЛИС для AD1865?

    Можно быстро и грязно сделать подобие.
    https://www.google.com/url?q=https:/...FhPtPfqw3CgwDa

  7. #7
    Старый знакомый
    Автор темы
    Аватар для antonluba
    Регистрация
    12.12.2014
    Адрес
    Сочи, Коломна
    Возраст
    46
    Сообщений
    975

    По умолчанию Re: 4x-upsampling на ПЛИС для AD1865?

    Попалось вот такое
    https://habr.com/ru/articles/662141/

    Надо много думать, может и правда что-то сделать в stm32

  8. #8
    Частый гость Аватар для Кокон
    Регистрация
    12.06.2006
    Адрес
    Минск
    Сообщений
    440

    По умолчанию Re: 4x-upsampling на ПЛИС для AD1865?

    https://github.com/beefdeadbeef/f4uac
    Спасибо

    Но , проще попробовать то безобразие в епм240.Вполне может устроить.

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

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

Ваши права

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