ЦАП на основе резистивной матрицы R-2R и его реализация на микроконтроллере

ЦАП на основе резистивной матрицы R-2R и его реализация на микроконтроллере

1) Использование матрицы R-2R в качестве параллельного ЦАП.

Рассмотрим матрицу, изображенную на рисунке слева.

Очевидно, что если все ключи находятся в положении «0», то выходное напряжение будет равно нулю.

Можно посчитать, что если ключ нулевого разряда установлен в положение «1», а все остальные в положение «0», то

если ключ первого разряда установлен в положение «1», а все остальные в положение «0», то

если ключи нулевого и первого разрядов установлены в положение «1», а все остальные в положение «0», то

В общем случае получим: Uвых=V*(А*1/16+А1*1/8+А2*1/4+А3*1/2), где Аi=1, если соответствующий ключ (Кi) находится в положении «1» и Аi=0, если соответствующий ключ находится в положении «0».

То есть, замыкая различными способами ключи К…К3 (или, по другому говоря, подавая на вход четырехбитное число A3A2A1A) мы можем получить 2 4 =16 различных значений выходного напряжения (от Uвых=0 до Uвых=V*(1-1/16) с шагом Δ=V*1/16).

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

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

В общем случае, для n-битного ЦАП будем иметь: Uвых=V*∑(Ai*1/2 n-i ), где i — номер разряда (i=0, 1, 2 … n-1), Ai=1, если соответствующий ключ замкнут на шину питания и Ai=0, если соответствующий ключ замкнут на общий провод.

шаг в этом случае определяется по формуле: Δ=V/2 n , где n — общее число разрядов

2)Реализация ЦАП по схеме R-2R на микроконтроллере.

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

Возьмём, к примеру, контроллер PIC16F628A и посмотрим в документации, как устроены его выходы:

Как видим, — для организации выхода используются два полевика, когда на выходе «0» — верхний полевик (подключенный к шине питания) закрыт, нижний (подключенный к общему проводу) — открыт, когда на выходе «1» — наоборот, верхний открыт, нижний закрыт. Это как раз то, что нужно, — мы можем подтянуть выход или к земле, или к питанию. Тогда, задействовав восемь таких выводов и матрицу R-2R, — получим восьмибитный цифро-аналоговый преобразователь:

Когда мы рассматривали матрицу R-2R, мы считали ключи идеальными (сопротивление замкнутого ключа равно нулю), но в реальности сопротивление замкнутых ключей (открытых транзисторов) не равно нулю. Для того, чтобы влияние этих паразитных сопротивлений можно было не учитывать, рекомендуется выбирать сопротивление R в 2 n (n — разрядность ЦАП) раз больше сопротивления замкнутого ключа.

Читайте также:  Замена воздушного фильтра на ваз 2109 своими руками MasteraVAZa

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

Для обеспечения точности преобразований необходимо обеспечить достаточную для заданной точности стабильность питания.

Электроника для всех

Блог о электронике

Параллельный Цифро Аналоговый Преобразователь по схеме R-2R

Порой надо выдать точный аналоговый сигнал, да еще с быстро менющийся. Например, функцию. Раньше я рассматривал как это можно сделать с помощью ШИМ, но у этого метода есть проблема — он очень медленный. В самом деле, чтобы получить один уровнь на ШИМ, нужно, по меньшей мере, 256 тиков таймера. А если надо развернуть функцию в которой 256 отсчетов? Да еще на каждый отсчет по 256 тиков? Это какая же должна быть частота процессора? Да еще надо учесть, что ШИМ требует интегрирующей цепочки с конденсатором. А значит для четкого установления уровня должно пройти еще несколько импульсов, что снижает скорость еще раза в три. Короче, получить что либо быстрей чем 50 ГЦ на ШИМ очень сложно. Я не говорю даже о том, что у ШИМ изза свойств емкостного заряда сильно плывет линейность, так что это приходится учитывать.

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

Опорное напряжение тут последовательно делится на резистивной матрице. Номиналы резисторов должны быть любыми. Главное, чтобы горизонтальные ветви были по номиналу ровно в два раза больше чем вертикальные. А вся резистивная цепь в своей нижней точке садится на землю через резистор равный номиналам в горизонтальных ветвях . Ну и кондерчик для фильтрации дополнительной. Самый старший разряд вверху, самый младший внизу, ближе к земле.

Теоретически, разрядность можно повышать практически до бесконечности. На практике же, уже на десятом разряде возникают проблемы из-за сопротивления ключей, что сказывается на точности и , главное, линейности выходных данных. Но в подавляющем большинстве случаев восьми разрядов хватает за глаза. Тем более их где то еще надо найти, это же целых 8 линий I/O которые надо урвать.

Также не помешает добавить операционный усилитель, включенный повторителем. Чтобы сопротивление нагрузки не вносило искажений. Я поначалу впаял OP07, но получил облом — у меня отрезало все, что ниже 2.5 вольт. Слишком маленькое напряжение питания. Тут нужен усилитель который может работать в режиме Rail-2-Rail то есть выдавать на выходе сигнал с амплитудой от плюса до минуса питания, с минимальным отклонением. При добавлении ОУ, надо учитывать тот факт, что почти у всех операционников максимальное выходное напряжение резко заваливается с ростом частоты — параметр Max Output Swing vs Freq. это показывает. Например, для LM324 выглядит так:

Читайте также:  Экологический транспорт будущего - Mentamore

Я усилитель подходящий в запасах не нашел, поэтому пока так. Благо у осциллографа сопротивление высокое и на выходное напряжение он практически не влияет. Чтобы не подбирать номиналы резисторов я поступил проще — в вертикальную линию впаял по два резистора в параллель. При таком включении резистора его сопротивление уполовинивается. Таким образом, все резисторы у меня одного номинала.

Вытравил платку, учел посадочное место под усилитель, а также фильтрующий и блокирующий конденсаторы. Кучу штырей для подключения осциллографов или проводов на другие блоки и завел все это на свою макетку.

Первым делом, выдал синус. Синус у меня чисто табличный. 256 значений, саму таблицу нарыл в инете. Функция получилась гладенькая. Прям заглядение.

Пробовал брать каждое второе значение из таблицы (при этом она ужалась до 128 значений) — тоже все очень красивое. И лишь когда стал брать чуть ли не каждое 16е значение, то тогда стали заметны лесенки на функции:

И то их можно было сгладить фильтром и опять будет красота. Зато на 8ми мегагерцовой Меге удалось добиться 20кГц синусоидального сигнала 🙂

Вот такой код получился, точнее это фрагмент.

Sine: SetTask TS_Sine ; Повторный вызов через API RTOS. Тут не имеет значения LDS Counter,SinCT ; Загрузить из памяти текущее значение указателя Loop: WDR ; Сброс собаки LDPA Sinus ; Макрос, загружающий в Z адрес таблицы с синусом CLR OSRG ; Сбрасываем рабочий регистр ADD ZL,Counter ; Вычисляем смещение по адресу таблицы ADC ZH,OSRG LPM OSRG,Z ; Грузим в рабочий регистр из таблицы байт OUT PORTD,OSRG ; Выдаем его в порт INC Counter ; Увеличиваем счетчик STS SinCT,Counter ; Сохраняем значение счетчика в память RJMP Loop ; Переход RET ; Так как таблица на 256 значений, то проверку счетчика на переполнение делать не надо, он сам, достчитав до 255, ; обнулится. ; А эта та самая таблица Sinus: .DB 64,65,67,68,70,72,73,75 .DB 76,78,79,81,82,84,85,87 .DB 88,90,91,92,94,95,97,98 .DB 99,100,102,103,104,105,107,108 .DB 109,110,111,112,113,114,115,116 .DB 117,118,118,119,120,121,121,122 .DB 123,123,124,124,125,125,126,126 .DB 126,127,127,127,127,127,127,127 .DB 128,127,127,127,127,127,127,127 .DB 126,126,126,125,125,124,124,123 .DB 123,122,121,121,120,119,118,118 .DB 117,116,115,114,113,112,111,110 .DB 109,108,107,105,104,103,102,100 .DB 99,98,97,95,94,92,91,90 .DB 88,87,85,84,82,81,79,78 .DB 76,75,73,72,70,68,67,65 .DB 64,62,61,59,58,56,54,53 .DB 51,50,48,47,45,44,42,41 .DB 39,38,36,35,34,32,31,30 .DB 28,27,26,25,23,22,21,20 .DB 19,18,17,15,14,13,13,12 .DB 11,10,9,8,8,7,6,5 .DB 5,4,4,3,3,2,2,2 .DB 1,1,1,0,0,0,0,0 .DB 0,0,0,0,0,0,1,1 .DB 1,2,2,2,3,3,4,4 .DB 5,5,6,7,8,8,9,10 .DB 11,12,13,13,14,15,17,18 .DB 19,20,21,22,23,25,26,27 .DB 28,30,31,32,34,35,36,38 .DB 39,41,42,44,45,47,48,50 .DB 51,53,54,56,58,59,61,62

  • Схема преобразователя. Формат Sprint Layout
  • Проект с программой для Mega8

З.Ы.
Но синус это не прикольно. В конце концов, его можно и аналоговыми методами получить не сильно напрягаясь. А с ЦАП можно по таблицам задать любую форму. Вот, например,

А это рок концерт. Вид со сцены.

А напоследок, дабы меня не упрекали что тема сисек не раскрыта…

Читайте также:  Браслеты противоскольжения своими руками фото и описание самоделки

Audio-gd R2R 11

  • — 0 %

Audio-gd R2R 11

  • Описание

Ни для кого не секрет, что резистивные матрицы цифро-аналоговых преобразователей стали прерогативой топовых решений аудиотехники. Audio-GD, как всегда, пошли своим путем, и теперь благодаря им у Нас появилась возможность наслаждаться R2R звуком за умеренные деньги.

Цифро-аналоговый преобразователь
Для ЦАПа выбрана самая оптимальная и популярная резистивная матрица DA-8, которых установлено в новинке две. Один из самых сложных моментов при создании резистивных матриц это синхронизация и коррекция сигнала при преобразовании, и в данном вопросе инженерам пришли на помощь высокоскоростные CPLD процессоры с энергонезависимой памятью, которые делают преобразование более точным.
Истинный non-oversampling (NOS) дизайн предлагает более чистый и нейтральный звук, для подавления цифровых артефактов которого используется специальная схема шумоподавления.

Преимущества R2R матриц:

  • преобразование происходит без clock-генераторов
  • R2R преобразование не чувствительно к джиттеру , в отличии от дельта-сигма преобразователей
  • выходной сигнал намного точнее
  • прямая обработка DSD и PCM сигналов без коммутации между выходами

Недостатки:

  • общие гармонические искажения (THD) в R2R матрицах немного выше, чем в чипах
  • сложность конструирования и комплексность подхода во избежание погрешностей

Усилитель
Аналоговая часть построена на фирменном интерфейсе Audio-gd — ACSS, с использованием полностью дискретных компонентов. Двухступенчатые высокомощные высокоскоростные источники питания обеспечивают музыкальность и поразительную прозрачность. Сам усилитель/ предусилитель построен по singe-ended (не балансному) принципу с резисторами, которые имеют минимальное сопротивление, такими, как Vishay, KOA. Как всегда, производитель позаботился и о тех, кому нравится ровный, аналитичный звук, и о тех, кому больше по душе натуральная и музыкальная подача, подарив возможность самостоятельно выбирать что больше по душе(модификация производиться мануально в соответствии и инструкцией). Регулятор громкости: ALPS. Все монтажные работы выполнены припоем с высоким содержанием серебра.

______________________________________

Характеристики комбайна Audio-gd R2R 11:

  • SNR: 100dB
  • Выходнойуровень:
    • Выход для наушников: 10 В RMS
    • Предусилитель:
      • Регулируемый выход: 5 В Макс.
      • Фиксированный выход: 2,5 В RMS (High gain)
      • Фиксированный выход: 1 В RMS (Low gain)
  • Мощность выхода для наушников:
    • 3500 мВт / 25 Ом
    • 1800 мВт / 50 Ом
    • 900 мВт / 100 Ом
    • 300 мВт / 300 Ом
    • 150 мВт / 600 Ом
  • Выходной импеданс
    • TRS 6.3 мм: 2Ом
    • ЦАП: 2 Ом
  • Чувствительность входа
    • коаксиальный: 0,5 Vp-p
    • оптический: 19 дБм
  • Поддерживаемые ОС: Windows, Mac, IOS, Linux
  • Поддержка частоты дискретизации:
    • USB:
      • PCM: 44,1 кГц, 48 кГц, 88,2 кГц, 96 кГц, 176,4 кГц, 192 кГц, 352,8 кГц, 384 кГц
      • DSD: DSD64, DSD128, DSD 256.
    • коаксиальный: 44,1 кГц, 48 кГц, 88,2 кГц, 96 кГц, 192 кГц
    • оптический: 44,1 кГц, 48 кГц, 88,2 кГц, 96 кГц
  • Питание: 220-240 В или 100-120 В, 50/60 Гц
  • Потребляемаямощность: 12W
  • Вес: 2.2kg
  • Габаритныеразмеры: 180*220*55 мм
  • Комплект поставки:
    • Кабель питания
    • Кабель USB
Ссылка на основную публикацию
Хэтчбек Lada Priora (ВАЗ-2172) цена и характеристики, фото и обзор
Ваз 217130 технические характеристики Тем, кто интересуется вопросом покупки автомобиля «Лада Приора» универсал, технические характеристики кузова, двигателя и подвески одинаково...
Химчистка салона — как чистить салон автомобиля своими руками AvtoTachki
Чистка салона автомобиля своими руками Обзор лучших средств Чистка салона автомобиля — ответственная работа, которая не должна ограничиваться выбросом мусора...
Химчистка салона своими руками выбор автохимии, этапы самостоятельной чистки автомобиля, правила ухо
Химчистка салона автомобиля своими руками средства Одним из моментов ухода за машиной является химчистка салона автомобиля своими руками. Любой автомобилист...
Хэтчбек Opel Astra J (2009-2015) цена и характеристики, фотографии и обзор
Opel astra j технические характеристики,фото,видео,обзор,описание,комплектующие АВТОМАШИНЫ «Опель-Астра J» хэтчбек GTC – это автомобиль, который следует отметить отдельным вниманием. Благодаря проявленному...
Adblock detector