Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Увеличить разрядность ЦАП
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Яrik
Можно ли каким нибудь опразом увеличить разряднось ЦАП на основе ШИМ? Допустим соединя (не буквально) два вывода котролерра АТмега8 на которых присутствует 10-ти разрядный ШИМ.
IceS
Цитата(Яrik @ Jul 2 2007, 23:36) *
Можно ли каким нибудь опразом увеличить разряднось ЦАП на основе ШИМ? Допустим соединя (не буквально) два вывода котролерра АТмега8 на которых присутствует 10-ти разрядный ШИМ.

если частота не важна, то програмно можно хоть до бесконечности 08.gif
Яrik
Интересует аппаратный вариант, с помощью сумурования что ли cranky.gif
defunct
Станислав приводил пример 16-ти битного ЦАПа используя два канала ШИМ.
Поищите в разделе freetalks "пятничные задачки"
GetSmart
Если их соединять снаружи, то точность/линейность будет целиком зависеть от точности внешних резисторов. Даже в пропорции 1:1 потребуются резисторы 0.4%. А уж о пропорции 1:256 и говорить не стоит.
defunct
Цитата(GetSmart @ Jul 2 2007, 23:40) *
А уж о пропорции 1:256 и говорить не стоит.

Там речь шла о 0.1%
GetSmart
Еле нашёл эту задачку. С её результатом не согласен. С резисторами 0.1% можно получить в лучшем случае 10 бит из 8 бит ШИМ. Остальные 6 бит (из 16-ти) будут ниже уровня дифференциальной нелинейности и толку от них мало. Кроме прочего, дополнительное непредсказуемое сопротивление выхода меги сразу убьёт всю точность.

Самое более-менее приемлемое решение - 1:1 - одинаковые резисторы. Разрядность увеличивается на 1. (8+1).
mse
Цитата(GetSmart @ Jul 3 2007, 01:18) *
...Кроме прочего, дополнительное непредсказуемое сопротивление выхода меги сразу убьёт всю точность.
Самое более-менее приемлемое решение - 1:1 - одинаковые резисторы. Разрядность увеличивается на 1. (8+1).

Если брать сопротивления ~Ne4 кОм, то на влияние выхода меги можно забить.
В принципе, при острой необходимости, эту приблуду можно откалибровать и пользоваться. А там, где нужно высокое разрешение при некритичной точности и калибровка не нужна. Типа, иметь возможность устанавливать напругу для подстройки чего-либо с малым дискретом, а уж какой номинал получился - дело десятое.
GetSmart
Что такое калибровка такой схемы? Вы представляете вообще график линейно нарастающего значения такого ШИМа? - Что-то похожее на большую пилу, на которой будет маленькая пила! Такую весчь не откалибровать в принципе. И никак программно не улучшить. А сопротивление выходов меги = 5..20 ом. Что отклоняет резистор 4К на 0.25% в среднем.
Dmitry_Od
Цитата(Яrik @ Jul 2 2007, 22:36) *
Можно ли каким нибудь опразом увеличить разряднось ЦАП на основе ШИМ? Допустим соединя (не буквально) два вывода котролерра АТмега8 на которых присутствует 10-ти разрядный ШИМ.


Использовать внешний цап нет возможности? При условии свободных ног можно на обычных R-2R + операционник цап смастерить, громоздко правда, но при не особой точности можно и 16 бит влепить



Цитата(GetSmart @ Jul 3 2007, 09:57) *
Что такое калибровка такой схемы? Вы представляете вообще график линейно нарастающего значения такого ШИМа? - Что-то похожее на большую пилу, на которой будет маленькая пила! Такую весчь не откалибровать в принципе. И никак программно не улучшить. А сопротивление выходов меги = 5..20 ом. Что отклоняет резистор 4К на 0.25% в среднем.


Это не говоря о спектре сигнала, о гармониках бесчисленных...
mse
Цитата(GetSmart @ Jul 3 2007, 10:57) *
Что такое калибровка такой схемы?

Измерение вклада "младшего" канала в результат от "0" до "3ФФ" с необходимой точностью. А дальше чистая арифметика.
Цитата
Вы представляете вообще график линейно нарастающего значения такого ШИМа?

Да, представляю. ;О)
Цитата
- Что-то похожее на большую пилу, на которой будет маленькая пила!

Ответ не верный. Будет обычная пила с дифф нелинейностью-немонотонностью в 1-3 "эквивалентных" ЛСБ ;О) Чем больше разрядов "млачшенького" будем вкладывать, тем больше. На 12-14 разрядах, думаю, вполне реально получить нелинейность в 1ЛСБ. Более того, можно снять нелинейность старшего канала и выравнивать его млачшим. Геморрой, но сделать можно. ;О)
Цитата
Такую весчь не откалибровать в принципе. И никак программно не улучшить.

Ну да прям. Именно программно и именно улучшить. ;О) Конечно, это не будет 10+10 разрядов. Но 10+2..6 натянуть с достаточной точностью-стабильностью можно. Применив дополнительные внешние ресурсы. См ниже.
Цитата
А сопротивление выходов меги = 5..20 ом. Что отклоняет резистор 4К на 0.25% в среднем.

А что, кроме 4К резисторов в природе ничего не бывает?(Да, кстати, ~Ne4 значит N*10^4...;О) Да и с 1-2К вполне можно работать. Опять-же проведя калибровку старшего ШЫМа.
Только смысла в именно таком изврате нет - надо будет обеспечивать высокостабильное питание. Надо, чтобы мега другими ногами ничего не коммутировала, бо тогда старший канал даст погрешность. Буфферный операционник или сумматор нужен будет с хорошими параметрами...12-16р ЦАП за 50-100р в конце концов выйдет дешевле и качественней.
А вот для целей подстройки такая схема вполне прилично будет работать.
GetSmart
Цитата(mse)
Измерение вклада "младшего" канала в результат от "0" до "3ФФ" с необходимой точностью. А дальше чистая арифметика.
Не понял механизм. Измерение чем? Омметром? А где взять мега-точный омметр? Арифметика-то зачем? Если можно, объясните на пальцах. Для особо тупых.

Цитата
Более того, можно снять нелинейность старшего канала
А разве у него есть нелинейность?

На счёт программно никак не улучшить - погорячился. Самый простой метод - табличный.
mse
Цитата(GetSmart @ Jul 3 2007, 12:11) *
Не понял механизм. Измерение чем? Омметром? А где взять мега-точный омметр? Арифметика-то зачем? Если можно, объясните на пальцах. Для особо тупых.

Зачем омметр? Вольтметр. Хороший. Меряем с точностью, как минимум, ЛСБ желаемого цапа по выходу сумматора грубо-точно разницу при "0" и "3ФФ" на точном ШЫМ. И имеем, например, разницу ХмВ. ЛСБ хотим получить УмВ, тогда шаг ЛСБ нашего младшего ШИМ буит У*1024/Х. Отсюда понятно, что слишком малый ЛСБ нехорош. Или, чтобы получить конкретный остаток в мВ(А,например), в ШИМ грузим число Н=А*1024/Х. Так точность буит выше, чем просто суммировать значения ЛСБ. Ессно, А должно быть меньше Х, бо Х это макс значение всех младших разрядов. Примерно так.
Цитата
А разве у него есть нелинейность?

Вполне может быть на значениях вблизи "0" и "3фф", типа завал фронтов какой. Вдруг ёмкость фильтра на малых сопротивлениях сумматора влиять будет. Её относительный вклад здесь заметен должен быть.
Цитата
На счёт программно никак не улучшить - погорячился. Самый простой метод - табличный.

Ну да.
Яrik
Всем спасибо. Понял, что лутшее решение это внешний ЦАП.

Работал я перед этим с одним ЦАП-ом, но он по каким то причинам перестал работать, думаю от статики.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.