программная коррекция ЦАП

Сибирь

Местный
Есть такая техника работы с ЦАП, называется "software trimming", описана например в даташите на стринговый DAC8581 (TI).
Заключается в том, что значения, выдаваемые ЦАП, измеряются в каждой точке шкалы ЦАП (65тысяч измерений) прецизионным измерителем, затем на основе результатов составляется таблица соответсвия кодов, которые подаются на ЦАП (если предполагать, что ЦАП идеален), и кодов, которые нужно подавать (на основе реально измеренного выходного сигнала). Таблица используется для перекодировки.

Результаты для DAC8581 по даташиту следующие: гармоники 1 КГц уменьшились на 30дБ (с -70 до -100дБ), linearity error уменьшилась с 15 до 1 LSB.

ни у кого нет реального опыта работы с этим методом программной коррекции ЦАП? Насколько скорректированные параметры будут уходить от времени и температуры, и правда ли, что гармоники на 30дб можно снизить.
 

Lynx

Местный
Да, есть такая методика мне с ней доводилось работать. Но ее эффективность (при условии того, что точность измерения как минимум лучше, чем 1/2 МЗР, т.е. разрядность измерительного АЦП как минимум на единицу выше, чем разрядность корректируемого ЦАП, а его диф. нелинейность и нелинейность не превышают 1/4 МЗР корректируемого ЦАП) обратно пропорциональна качеству ЦАП. по большому счету, корректировку можно произвести ТОЛЬКО в том случае, если диф. нелинейность корректируемого ЦАП превышает значение его МЗР. Собственно, это и подтверждают результаты работы с DAC8581.
При работе с ЦАП с диф. нелинейностью менее 1МЗР такой метод не работает по определению. То есть он применим для работы в некоей аппаратуре, в которой имеется не особо качественный ЦАП в связке с DSP и есть возможность проведения операции калибровки при каждом включении. То есть по большому счету, этот способ актуален в первую очередь для промышленных сервосистем, в которых есть.
Реально снижение уровня нелинейности на 20...30дБ достижимо лишь для весьма плохих ЦАП, сильно "кривых" изначально.
 

Сибирь

Местный
благодарю за ответ,
а почему "При работе с ЦАП с диф. нелинейностью менее 1МЗР такой метод не работает по определению". Дифференциальная нелинейность DAC8581 по даташиту менее 0.25 МЗР.
linearity error +- 15 МЗР, ее и исправляют. Или имелась ввиду linearity error?
На 30 дб снизили 2ю гармонику синуса 1КГц (Fs=192 Кгц), а не нелинейность.

Что же касается АЦП, то 24-битные, наверное,могут показать 18-19 значащих бит.
 

Lynx

Местный
Это моя невнимательность. Фраза правильно читается, как "дифференциальной нелинейностью и нелинейностью менее 1МЗР"
Снижение 2-й гармоники синуса есть следствие коррекции нелинейности ХП, поскольку выходной сигнал ЦАП представляет собой код синуса (предполагаем идеальным в пределах разрядной сетки), умноженный на функцию характеристики преобразования.
Насчет АЦП. Реальное разрешение относительно быстрых 24-х разрядных АЦП действительно составляет 18...19 разрядов, медленных - до полной шкалы.
Но тут мы упираемся в принципиальную необходимость такой операции в принципе. Сейчас довольно распространены 16-разрядные ЦАП с линейностью 1МЗР. Их корректировать уже некуда. 20-разрядные ЦАП с линейностью 4...8 МЗР потребуют для корректировки АЦП с разрешением не менее 21 разряда. Это медленные приборы. 1млн измерений по всей шкале они будут выполнять как минимум 2 часа. За это время ХП ЦАП от прогрева уйдет и результат будет неправильным. То есть надо термостатировать ЦАП и корректировку производить после выхода в режим теплового равновесия. Насколько мне известно, процедура корректировки ХП, да и то не по всем значениям, а выборочно производится только в ЦАП Lavry Engineering DAC924.
 

Сибирь

Местный
Вообще интересно, все ли ЦАПы можно так корректировать, или с некоторыми видами получится, а с другими нет. Судя по всему, некоторые ЦАПы хорошо повторяют коды.
Например, есть метод, когда два 16-битных ЦАП соединяют через прецизионный резистивный сумматор, затем измеряют получившееся напряжение АЦП, корректируют код, и получают на выходе реальное (проверенное) 20-битное разрешение (an86, linear).
 

Nazar

Местный
Такую коррекцию применяют только для ЦАП типа Делитель Кельвина из за того что в этом цапе при всех достоинствах один сильный недостаток - очень плохая интегральная нелинейность.
 

Сибирь

Местный
ты, назар, неправильно перевел аппноут и не понял ничего.
7-декадный делитель кельвина-варлея использовался в том аппноуте для того, чтобы проверить линейность ЦАП. В линейности делителя кельвина-варлея никто не сомневался.
 

Lynx

Местный
Вообще интересно, все ли ЦАПы можно так корректировать, или с некоторыми видами получится, а с другими нет.).

Условия применимости такой корректировки - см. выше.
Судя по всему, некоторые ЦАПы хорошо повторяют коды.
Например, есть метод, когда два 16-битных ЦАП соединяют через прецизионный резистивный сумматор, затем измеряют получившееся напряжение АЦП, корректируют код, и получают на выходе реальное (проверенное) 20-битное разрешение (an86, linear).

Это совсем другая ситуация. Данный ЦАП пригоден только для медленно меняющихся сигналов (время установления - 1.4 секунды) более того, время установления такой структуры с АЦП в цепи ОС сильно зависит от разности предыдущего и текущего кода, а длина КФ из одного отсчета для параллельного ЦАП становится минимум 4 отсчета, а максимум - 65531 отсчет.
 

Сибирь

Местный
"Данный ЦАП пригоден только для медленно меняющихся сигналов"
оно то так, но ведь показана принципиальная возможность расширить разрешение ЦАПа, и результат впечатляет

а кстати, я вот проэктирую подобный ЦАП (с калибровкой) сейчас. многое пока неясно.

И есть такая проблема, называется "глитч", - узкий импульс в несколько милливольт амплитуды в выходном сигнале при завершении передачи данных в ЦАП. И вроде бы этот глитч может быть основным источником ошибки.

Вообще-то AD рекомендует специальную схемку на опере, который бы на время глитча отключал цап. при этом большой глитч ЦАП заменяется меньшим глитчем схемки на опере. А еще что-то можно сделать?
 

Lynx

Местный
"Данный ЦАП пригоден только для медленно меняющихся сигналов"
оно то так, но ведь показана принципиальная возможность расширить разрешение ЦАПа, и результат впечатляет

При таком быстродействии - абсолютно не впечатляет. С временем преобразования 1с и разрядностью 20 ЦАП можно сделать гораздо проще и дешевле.

И есть такая проблема, называется "глитч", - узкий импульс в несколько милливольт амплитуды в выходном сигнале при завершении передачи данных в ЦАП. И вроде бы этот глитч может быть основным источником ошибки.

Это одна из основных проблем параллельных и комбинированных ЦАП - глитч переключения. Побороть полностью его невозможно, поскольку в природе не существует идеальных элементов и сигналов с нулевым временем нарастания. Можно только в той или иной мере уменьшить или распределить по шкале.
Наиболее эффективный способ борьбы с глитчем - применение УВХ после ЦАП, но создание УВХ с апертурной неопределенностью единицы-десятки пс, точностью на уровне 20 разрядов и временем установления сотни нс - крайне сложная задача.
 

Nazar

Местный
ты, назар, неправильно перевел аппноут и не понял ничего.
7-декадный делитель кельвина-варлея использовался в том аппноуте для того, чтобы проверить линейность ЦАП. В линейности делителя кельвина-варлея никто не сомневался.
да вот такой я тупой:D и даже апноута вашего не видел, а вам неплохо бы банально подучить матчасть, а если спрашиваете то пожалуйста слушайте и кивайте в такт головой.
аривидерчи
Побороть полностью его невозможно,
возможно, только требует нетрадиционного подхода в проектировке цап и в результате вылазят другие компромисы
Наиболее эффективный способ борьбы с глитчем - применение УВХ после ЦАП, но создание УВХ с апертурной неопределенностью единицы-десятки пс, точностью на уровне 20 разрядов и временем установления сотни нс - крайне сложная задача.
но решаемая, притом весьма разными методами
 

Lynx

Местный
возможно, только требует нетрадиционного подхода в проектировке цап и в результате вылазят другие компромисы

О чем и речь.

но решаемая, притом весьма разными методами

Коллега, я разве где-то сказал "нерешаемая"? :)
Вопрос - в "цене вопроса".
 

Nazar

Местный
>Вопрос - в "цене вопроса".
и в каждом конкретном случае в нужности))
а цена в общемто небольшая, главное чтоб глитч был кодонезависим, остальное пчелы :D
 

Lynx

Местный
>Вопрос - в "цене вопроса".
и в каждом конкретном случае в нужности))
а цена в общемто небольшая, главное чтоб глитч был кодонезависим, остальное пчелы :D

Не такая уж и небольшая. Чуть больше всего остального ЦАП :) Если, конечно, выполнять требования по точности в диапазоне температур и с учетом дрейфа.
 

Nazar

Местный
для звука точность нам не особо важна, а от апертурная неопределенность совсем другой компот))
 

Lynx

Местный
Мне несколько лет назад пришлось разрабатывать УВХ с 18-и разрядной точностью, работающий от 0Гц до 1МГц при АНО порядка 5пс. очень забавная получилась штука :)
Хотя ты прав, для звуковых целей на точность и дрейф можно забить, а это уже на 2/3 упрощает дело.
 

Сибирь

Местный
Мне несколько лет назад пришлось разрабатывать УВХ с 18-и разрядной точностью, работающий от 0Гц до 1МГц при АНО порядка 5пс. очень забавная получилась штука :)
Хотя ты прав, для звуковых целей на точность и дрейф можно забить, а это уже на 2/3 упрощает дело.

а нельзя ли схемку увх показать?

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

Nazar

Местный
Хотя ты прав, для звуковых целей на точность и дрейф можно забить, а это уже на 2/3 упрощает дело.
вот я к этому и виду, не так страшен черт как его рисуют
как вы считаете, если взять два ЦАП и считывать дифференциальный сигнал с них, меняя коды одновременно двух ЦАП, скомпенсируется ли глитч? или же нужны доп исследования.
не скомпенсируется
 

Lynx

Местный
а нельзя ли схемку увх показать? .

К сожалению - нельзя.

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

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