ЦАП DSD Signalyst DSC1 — DIY

,

Да, я понял свою ошибку. Анализ на таких частотах просто бессмысленен, т.к.:

  1. нужно учитывать уже индуктивность разводки, неидеальность кондеев итд.
  2. в любом случае этот мусор убирается аналоговым НЧ фильтром.

Т.е. интересен диапазон в лучшем случае до 50К Гц.
В нем по симуляции лучше дискретное питание (ниже шумовая полка до 20К). Симуляция - меандр с частотой 50К (скачек потребления нагрузки с 10mА до 50 mА, визуализация - FFT)

Так же стало понятно, почему на использованном мной ИОН + ФНЧ + ОУ было хуже LDO

UPDATE
Правда есть “замечание” - в твоем стабе 2 источника входного напряжения (8,5V и 2,5V). Все выше верно при идеальном входном напряжении (и LT и ИОН + ФНЧ + ОУ не зависят от него сильно, т.к. имеют высокоточный источник опорного напряжения в себе).
В твоем случае, как мне кажется, результат будет сильно зависеть от качества входных линий.

2 лайка

Чуть выше я писал, что использую качественный ИОН - LT6654
При симуляции нет никакой разницы между LT6654 и идеальным источником из LTspice.
Что то я не совсем понял твой выделенный текст. Замечание? Вопрос? или…?

:grinning:
Нет второго дна.

Написал текст, потом обратил внимание, что в спайсе не вижу источкика опорного напряжения. Поэтому приписал Update.

Да, если ставить ИОН + ФНЧ на 2.5V, то будет хорошо. Даже НЧ шумы стаба можно будет хорошо снизить по сравнению с LDO без внешнего ИОН + ФНЧ.

Я поправил свой пост (замечание на “замечание”). :grinning:

ИОН и сам наборный стаб у меня питается от простого L4940V85 на 8.5V.

1 лайк

А схемы стабов Бегемота или Назара не “идеально” ли подходят для ентих целей?

Нет. С динамической нагрузкой у этих стабов мягко говоря “не очень”…

Позанимаемся некрофилией :grin:

Решение проблемы повышенных требований к резисторам было почти на поверхности:

Достаточно на каждом такте сдвигать блок 1 и блок 0 по кольцу… в итоге имеем абсолютно такое же усреднение разброса сопротивлений как и в простом варианте на сдвиговых регистрах, но при этом на порядок меньшее количество переключений из 1 в 0 и обратно. (минимум - 1, максимум - 2). (11110000 > 01111000 > 00111100 и т.д.)
В Классической схеме минимум 4 переключения(при максимальной громкости 28/24) и максимум 32 переключения при минимальной громкости (тишина.)

1 лайк

Не понимаю тебя. Разве это не работа сдвигового регистра показана?

так и есть, при сдвигании блоков 1 и 0 мы получаем аналог сдвигового регистра, и значит такое же усреднение номиналов резисторов как и в “простом” варианте.

Только в простом подходе, на малой громкости(близкой к тишине), 1 и 0 максимально перемешаны, а значит каждый следующий такт переводит “каждый” tap из 0 в 1 и из 1 в 0.
В итоге в режиме тишины имеем 32 переключения:

10101010101010101010101010101010
VVVVVVVVVVVVVVVVVVVVVVVVVVV
01010101010101010101010101010101
VVVVVVVVVVVVVVVVVVVVVVVVVVV
10101010101010101010101010101010

и т.д.
Т.е. на каждый такт имеем 32 переключения.

В оптимизированном подходе с использованием CPLD можем получить следующую картинку:
00000000000000001111111111111111
10000000000000000111111111111111
11000000000000000011111111111111
11100000000000000001111111111111
и т.д.
По сути ничего не меняется как по соотношению 0 и 1 в конвейере, так и по усреднению номиналов резисторов, но количество переключений из 1 в 0 и 0 в 1, уменьшено в 16 раз.

2 лайка

Что это упрощает в прикладном плане?

В реализации не упрощает, а только усложняет алгоритмы.

В прикладном плане уменьшает количество шумов переключения и их неравномерность T(on) всегда <> T(off). А значит, в примере с тишиной, будут такие(короткие) моменты времени когда все 1 уже сбросились в 0, а 0 еще не успели переключится в 1.

Плюс немного уменьшенное потребление цифровой части на больших частотах(потребление энергии на заряд/разряд емкости каждого tap’a)

Вот и весь профит

1 лайк

Хм, значит это небольшое открытие просто необходимо применять, если пытаться выжать DSC максимум.

Так то оно так, но такой подход на порядок усложняет процесс разработки такого устройства, а так же увеличивает его стоимость(по дополнительному CPLD на каждый канал, дополнительные ветки питания, усложнение разводки/трассировки платы, вплоть до перевода на 4х слойный вариант).

Но помимо, вышеописанной оптимизации, DSC с применением CPLD, теоретически можно обучить проигрывать не только DSD поток, но и PCM ,с качеством на уровне простых цапов, с разрешающей способностью около 10-14бит, а может быть и больше.
Для качественного проигрывания музыки такого разрешения конечно не хватит, но для фильмов/игр/youtub’a хватит с головой.
Другими словами: появится дополнительная универсальность(отвязка от спец плееров) при использовании DSC в домашних условиях.

Интересно! А какая-либо реализация PCM в более высоком качестве по этой технологии возможна?

Из упрощенной схемы, которая может дать разрешение близкое к 14 бит, больше выжать не получится.
Другие варианты сложны в реализации и потребуют еще более дорогих микросхем семейства FPGA. Да и такой задачи я перед собой не ставлю, т.к. качественное воспроизведение PCM контента можно получить с помощью хороших плееров Roon/HQP, или готовых ЦАП микросхем ES9038/AK4499, которые так же очень не плохо могут воспроизводить DSD контент в passthrough режиме. Тягаться с ними я не собираюсь.
Задача стоит добавить небольшой универсальности при просмотре Фильмов, youtub’a и игр, не более того.

Но уверен, что многим и 14ти битный формат проигрывания на базе железа DSC в режиме NOS понравится не меньше, чем тот же самый 14ти битный TDA1540 в том же самом NOS режиме.

Но не будем забегать вперед, время покажет.

С большим интересом буду следить за развитием этой идеи. Было бы очень любопытно послушать PCM в этой реализации!

Тоже давно слежу за этой темой, и работу этого ЦАП представляю себе так


На этой эквивалентной схеме резисторы R1 и R2 символизируют собой 64 одиночных резистора, подключенных к одному сдвиговому регистру, а R3 и R4 ко второму сдвиговому регистру. Соответственно R1(R4) это n параллельного подключенных резисторов к 5В (0В), а R2(R4) это 32-n параллельного подключенных резисторов к 0В (5В). Таким образом, на нагрузке Rн будем иметь 33 возможных уровня напряжения (16 положительных, 16 отрицательных и ноль) в зависимости от текущего количества логических “1”(“0”). 33 ступеньки - не густо, но более точно (между двумя соседними ступеньками) дополнительные уровни формируются методом ШИМ-модуляции. Т.е. формирование аналогового сигнала, на мой взгляд, является гибридным PCM-PWM (ИКМ-ШИМ).
Вообще-то это я сам себе объяснял принцип работы данного ЦАП, но в процессе этого я обнаружил некоторые неочевидные для себя вещи. Составив систему уравнений на основе законов Кирхгофа и решив ее относительно токов протекающих через R1, R2, R3, R4 и Rн (показаны на рисунке справа), я увидел что ток источника питания не константа (тут я ошибался), а зависит от n. К примеру, при r=4,7кОм максимальный потребляемый ток равен ~17мА при n=16 и не зависит от Rн. Но от Rн завит диапазон изменения потребляемого тока. К примеру, при Rн=600Ом ток изменяется ~5,6…17мА, а при Rн=100Ом ток изменяется ~12,7…17мА, при Rн=10Ом ток изменяется ~16,7…17мА. При этом естественно падает величина напряжения, выделяющегося на нагрузке, которая является полезным сигналом (3360мВ, 1270мВ, 165мВ амплитудного напряжения соответственно). Т.е. через источник питания протекает ток модулированный входным цифровым сигналом, и чем меньше сопротивление Rн, тем более легкую (в динамическом смысле) нагрузку оно представляет для источника питания. Думаю, этот факт объясняет феномен “токового” включения трансформатора, некогда горячо обсуждавшегося на страницах данной темы.

2 лайка

С ущербом, фильтр уйдет вверх по частоте(fs/taps), что повлечет за собой повышенные вне полосовые шумы, которые придется дофильтровывать другими методами.

тогда нужно будет бороться с постоянкой на выходе равной Vin/2, а так же с шумами переключения логики, которые очень не плохо вычитаются скорелированными шумами инвертированного плеча (диф выход).

1 лайк

Если в схеме из моего предыдущего сообщения a<b, то ток через Rн течет в одну сторону, если a>b, то ток через Rн течет в противоположном направлении.

1 лайк

причем частота, которой модулируется ток источника питания является второй гармоникой от входной частоты сигнала, закодированного в цифре.

1 лайк