ЦАП DSD Signalyst DSC1 — DIY

,

Не согласен. На DSP очень слабые интерполирующие фильтры. В том числе на тех, ссылки на которые вы только что выкладывали. Мягко скажем - они не сильно отличаются от стоковых АКМ.
У Soekris в dam - фильтры на порядок лучше и реализовано все на FPGA. И нет там атомного реактора ни по цене, ни по потреблению. Новые фильтры у него длиной 2000 тапов.
Нет смысла гнаться за Джусси - это очень дорого реально.
Атомный реактор по цене? Вы в какой диапазон уложиться хотите - 200 USD? :grinning:

:grinning:, да, затупил я.

ДУмаю это вопрос к Павлу(@ppy) но на моих изделиях Павла и Алексея, при использовании f2k+ proxy и -30дб громкости отчетливо слышу.

Дело в том, что в прошлую субботу услышал от Дмитрия Андронникова такие слова - " Там динамический диапазон менее 66 дБ, поэтому я такие конструкции не рассматриваю"

Возможно, я не разбирался, но это фильтра, а вы еще модуляторы упомянули.

Я утрирую, и я не в курсе какой модулятор можно сделать на ПЛИС и какова его цена.

и слава богу!

офф. “говорят фильм про дураков, а мне нравится”

Улыбнуло…

Помоему вы оба правильно поняли друг друга…
Идея проста.
берем последовательность
000000101010101010000000000000000 < - тут начало последовательности

В простой реализации (И задумке @Insert) получаем следущую последовательность битов Fir окна:
------------DSC -----------------(@INSERT)
1.0000000000000000 (0000000000000000)
2.1000000000000000 (1000000000000000)
3.0100000000000000 (1000000000000000) < Здесь у DSC “шум переключения” 2х ячеек, в альтернативной реализации ничего не перещелкивается

n+1: 1010101010100000 (11111100000000000)
n+2: 0101010101010000 (11111100000000000) DSC: 12 ячеек поменяли состояние. Insert: 0 ячеек поменяли состояние .
n+3: 0010101010101000 (11111100000000000) DSC: 12 ячеек поменяли состояние. Insert: 0 ячеек поменяли состояние
и т.д.

Но чтобы менять один бит в сдвиговом регистре “без шума”, нужно каждый раз, сначала полностью обновлять 8 битный последовательный буфер 595 нужными данными, потом по битклоку “защелкивать” их наружу. А значит тактовать данные для 595го регистра придется в 8 раз быстрее, чем частота бит клока.

Поэтому Виталий правильно подметил про Mosfet. Но с одним мосфетом получится токовый выход. Тут нужна конструкция из 2х мосфетов(Пушпул) или простая “буферная” микросхема. А 595 в данном подходе не очень хороша.

Да, но как предполагаю, они заметно проще фильтров.

Я тоже пока. Просто тема по FPGA для апсемплинга/конвертации лично мне интересна + у вас появилась классная идея по “замене” 595 на FPGA.

А где можно прочитать эту фразу про 66дб ?

Есть один момент.
В этой схеме нужны более качественные резисторы, с лучшим допуском.
С 595 было “размазывание” и усреднение по всем 32 резисторам. Реально мы имели 0.1%/32=0,003% точности.
В новой реализации уже такой халявы не будет.:grinning:

В том то и суть, что так же усредняются 32 резистора… только переключается всего максимум 1 бит(или вообще не одного), вместо максимум 32х бит в случае с 595.

Если идти по этому пути, то (мнение нуба) нужно:

  1. подавать суммарный сигнал (32 уровня, реально можно меньше - уровень модуляции в SDM ограничен стандартом как 20/28)
  2. на один MOSFET (или 2 Push-Pull)
  3. снимать с него напряжение через ZFoil Vishay резистор, например (высокоточный, стабильный, референсный). Павел прав, в этом случае требования к резистору сильно возрастают.
  4. далее убираем УВЧ LPF фильтром
  5. выходной буфер или line stage A класса. К чему тут трансы.

Всю цифровую обработку засовывать в FPGA.

тогда мы так дойдем что начнем этими ключами коммутировать силовые 25Вольт на динами сразу…)))

Нет. На выходе 32bit последовательности имеем соответствующее число обычных резисторов в паралели (на каждой ноге), как сейчас в DSC.
Т.е. на затвор MOSFET подается 5V через делитель. Или любое другое подходящее напряжение, которое можно задать тоже через делитель.

я вас понял, это был сарказм. Я имел ввиду, будем коммутировать ключами через 32 мощных резистора сразу динамик :grin:

Формировать суммарный сигнал можно с помощью простого интегратора в виде RC цепочки. В итоге скатываемся на прстейшую схему опубликованную господином Чуффолли. PureDSD

К сожалению, ты не понял меня. Но отдаю должное твоей эрудиции.

Объясни. Не понимаю.
В старом варианте “1” пробегала по всей линейки резисторов за 32 такта.
В новом варианте за 32 такта “1” стоит как вкопанная на одной позиции.

суть простая, не важно на каком месте стоит эта единица, главное это соотношение 0 и 1.
т.е. для DSC 1000000 = 0100000 = 0010000 = 0001000 т.к. соотношение 0 и 1 остается постоянным. Резоный вопрос. зачем ее двигать все 32 такта по 32 выходам линейки, когда все 32 такта можно постоянно выдавать 10000000( или 00000001).

Это как раз и существенно.
Если “1” бежит а не стоит, то происходит усреднение допуска резисторов.
В противном случае нам придётся ставить 128шт ООЧЕНЬ точных и дорогих резисторов.

2 лайка