Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

научите работать с ЦАП

Вт июл 30, 2013 18:29:12

Покопался вообщем на просторах интернета, почитал.
Все что прочел было на тему "железа".
Не нашел статеек по программной части.
Точнее меня интересует реализация ЦАП, допустим на Atmega8.
Почтила про R 2R. тут все понятно. Отдаленно начал представлять что происходит в МК.
Хотелось бы точнее знать, что и как писать.
Поделитесь информацией пожалуйста.(пойдут любые статьи и т.п. на русском языке)

Re: научите работать с ЦАП

Вт июл 30, 2013 18:32:40

Аппаратного ЦАП в mega8 нет.
Я решал эту проблему ШИМ-ом + интегрирующая цепочка.

Re: научите работать с ЦАП

Вт июл 30, 2013 18:34:25

Тоесть ты хочешь сказать что нельзя при помощи R2R реализовать ЦАП?)

Re: научите работать с ЦАП

Вт июл 30, 2013 18:36:58

При помощи R2R реализовать ЦАП можно, но внутри mega8 его нет. Вот это я и хочу сказать. Хотите городите внешний на резуках (если есть большое желание), но, по моему, это того не стоит. Легче купить внешний готовый.

Re: научите работать с ЦАП

Вт июл 30, 2013 18:43:04

Мне интересно на данный момент как на осциллографе рисуют разную "ахинею" (программная часть)
http://cxem.net/beginner/beginner90-21.png к примеру.

Re: научите работать с ЦАП

Вт июл 30, 2013 18:45:14

или вот например:
http://avrdevices.ru/r-2r-cap-praktitch ... rimenenie/

Re: научите работать с ЦАП

Ср июл 31, 2013 09:45:37

Минусы:
1. Используется количество ног контроллера равное разрядности ЦАП. Если вы хотите получить хорошую разрядность (к примеру, восемь) надо отдать весь порт на отступление ЦАП. Не всегда это возможно.
2. Во второй ссылке, автор ясно говорит что точность так себе. Надо 1% резисторы. От себя могу сказать, что 0.1% еще лучше.
3. Сопротивление резисторов ЦАП надо согласовывать с нагрузкой. Это легко решается буфером на операционнике, но +1 корпус.
Плюсы:
1. Дешевезна.

P.S. Может кто-то что-то добавит к выше перечисленному.

Re: научите работать с ЦАП

Ср июл 31, 2013 09:52:08

Есть разные виды ЦАП с разными характеристиками. Определитесь что вам надо.
Вот ещё: http://radiokot.ru/circuit/digital/game/03/

Re: научите работать с ЦАП

Ср июл 31, 2013 12:16:23

eess9 писал(а):Плюсы:
1. Дешевезна.
2. Скорость вывода значительно выше, чем у PWM+RC.

Re: научите работать с ЦАП

Ср июл 31, 2013 12:17:42

Аlex писал(а):PWM+RC.

ШИМ+ФНЧ.

Re: научите работать с ЦАП

Ср июл 31, 2013 19:53:50

Пока задача довольна банальна, управлять напряжением от 0 до 5в. (предположительно)
Портов достаточно, ценовой вопрос играет роль.
Управление 2 кнопки + и - , и еще автоматическая поддержка выбранного уровня исходя из сигнала поступающего с датчика управляемого устройства.

Re: научите работать с ЦАП

Ср июл 31, 2013 20:01:34

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

Тема создана с целью найти хотя бы 1 простенькую программу , желательно для работы с R2R. ибо на подобной проге понятно будет все до безобразия.
Может у кого то есть простенькая прога или хотя бы какой нибудь алгоритм. в GCC ибо АСМ не знаю, пока что))))
А статье в которой разбиралась бы прога и вовсе очень рад был бы)

Re: научите работать с ЦАП

Ср июл 31, 2013 20:20:06

R2R ЦАП бывают не только самодельные. К572ПА1 к примеру тоже содержит такую матрицу. Помню также отдельно выпускались и сборки резисторов для построения преобразователей. Но сейчас это уже как динозавры.

foton6 писал(а):Может у кого то есть простенькая прога или хотя бы какой нибудь алгоритм.


Прога, делающая пилу через ЦАП с периодом 256 мс.
На PORTA висит сам ЦАП.

Код:
uint16_t i;

while( 1 )
{
 for(i=0; i<256; i++)
  {
  PORTA = i;
  delay_ms( 1 );
  };
};

Re: научите работать с ЦАП

Ср июл 31, 2013 20:25:23

Да ладно)

у меня весь вопрос шол в выстроении единичек в порту последовательно от меньшей к большей))))
неужто они соответствуют значениям в десятичной виде?)))))

А я уж начал выдумывать как бы побитными операциями двигать нолики и единички по порту)

Re: научите работать с ЦАП

Ср июл 31, 2013 20:27:09

тоесть чем больше десятичное число тем соответственно больше напряжение?))))))
А если прогнать с 1 до 256 через синус а получаемое число "втыкать в таймер" то можно получить рисунок синусойды????

Re: научите работать с ЦАП

Ср июл 31, 2013 20:51:51

Напряжение выхода обычно пропорционально коду.
0x00 = 0V
0x7F = 2.5V
0xFF = 5V.

Если требуется двухполярный выход(-U...+U), то часто используется дополнительный код. Но это не ваш случай.

Следовательно синусоида для 8-битного значения:
PORTA = sin( x ) * 0xFF;
x=[-1...+1]

Поскольку вычисление синусов для простых микроконтроллеров - сложная и долгая задача, то для ускорения помещают заранее посчитанный массив значений в ПЗУ.

Re: научите работать с ЦАП

Ср июл 31, 2013 20:58:29

foton6 писал(а):тоесть чем больше десятичное число тем соответственно больше напряжение?))))))

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

Re: научите работать с ЦАП

Ср июл 31, 2013 21:02:44

Всем огромное спасибо)))))
Особенно за это:



Теперь все стало ясно до нельзя))))
Дальше будем разгадывать осциллограмму обратно в цифру))))

Re: научите работать с ЦАП

Ср июл 31, 2013 21:14:38

Оу и вопрос на последок)

А ведь проще шимом регулировать от 0 до 5 вольт? (что-то типо автоматического потенциометра)

Re: научите работать с ЦАП

Чт авг 01, 2013 08:17:47

Gudd-Head писал(а):ШИМ+ФНЧ.

Аналог ЦАПа.
Ответить