Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Вт июл 30, 2013 18:29:12
Покопался вообщем на просторах интернета, почитал.
Все что прочел было на тему "железа".
Не нашел статеек по программной части.
Точнее меня интересует реализация ЦАП, допустим на Atmega8.
Почтила про R 2R. тут все понятно. Отдаленно начал представлять что происходит в МК.
Хотелось бы точнее знать, что и как писать.
Поделитесь информацией пожалуйста.(пойдут любые статьи и т.п. на русском языке)
Вт июл 30, 2013 18:32:40
Аппаратного ЦАП в mega8 нет.
Я решал эту проблему ШИМ-ом + интегрирующая цепочка.
Вт июл 30, 2013 18:34:25
Тоесть ты хочешь сказать что нельзя при помощи R2R реализовать ЦАП?)
Вт июл 30, 2013 18:36:58
При помощи R2R реализовать ЦАП можно, но внутри mega8 его нет. Вот это я и хочу сказать. Хотите городите внешний на резуках (если есть большое желание), но, по моему, это того не стоит. Легче купить внешний готовый.
Вт июл 30, 2013 18:43:04
Мне интересно на данный момент как на осциллографе рисуют разную "ахинею" (программная часть)
http://cxem.net/beginner/beginner90-21.png к примеру.
Ср июл 31, 2013 09:45:37
Минусы:
1. Используется количество ног контроллера равное разрядности ЦАП. Если вы хотите получить хорошую разрядность (к примеру, восемь) надо отдать весь порт на отступление ЦАП. Не всегда это возможно.
2. Во второй ссылке, автор ясно говорит что точность так себе. Надо 1% резисторы. От себя могу сказать, что 0.1% еще лучше.
3. Сопротивление резисторов ЦАП надо согласовывать с нагрузкой. Это легко решается буфером на операционнике, но +1 корпус.
Плюсы:
1. Дешевезна.
P.S. Может кто-то что-то добавит к выше перечисленному.
Ср июл 31, 2013 09:52:08
Есть разные виды ЦАП с разными характеристиками. Определитесь что вам надо.
Вот ещё:
http://radiokot.ru/circuit/digital/game/03/
Ср июл 31, 2013 12:16:23
eess9 писал(а):Плюсы:
1. Дешевезна.
2. Скорость вывода значительно выше, чем у PWM+RC.
Ср июл 31, 2013 12:17:42
Аlex писал(а):PWM+RC.
ШИМ+ФНЧ.
Ср июл 31, 2013 19:53:50
Пока задача довольна банальна, управлять напряжением от 0 до 5в. (предположительно)
Портов достаточно, ценовой вопрос играет роль.
Управление 2 кнопки + и - , и еще автоматическая поддержка выбранного уровня исходя из сигнала поступающего с датчика управляемого устройства.
Ср июл 31, 2013 20:01:34
Да и тут не так важно решение по железу. Мне сейчас важнее освоить сам ЦАП, попутно и АЦП ))))
Все таки в первую очередь я этим занимаюсь для себя нежеле для кого то))
Я вроде уже додумался как надо организовывать программу, но еще не на столько что бы пытаться реализовать что-то.
Тема создана с целью найти хотя бы 1 простенькую программу , желательно для работы с R2R. ибо на подобной проге понятно будет все до безобразия.
Может у кого то есть простенькая прога или хотя бы какой нибудь алгоритм. в GCC ибо АСМ не знаю, пока что))))
А статье в которой разбиралась бы прога и вовсе очень рад был бы)
Ср июл 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 );
};
};
Ср июл 31, 2013 20:25:23
Да ладно)
у меня весь вопрос шол в выстроении единичек в порту последовательно от меньшей к большей))))
неужто они соответствуют значениям в десятичной виде?)))))
А я уж начал выдумывать как бы побитными операциями двигать нолики и единички по порту)
Ср июл 31, 2013 20:27:09
тоесть чем больше десятичное число тем соответственно больше напряжение?))))))
А если прогнать с 1 до 256 через синус а получаемое число "втыкать в таймер" то можно получить рисунок синусойды????
Ср июл 31, 2013 20:51:51
Напряжение выхода обычно пропорционально коду.
0x00 = 0V
0x7F = 2.5V
0xFF = 5V.
Если требуется двухполярный выход(-U...+U), то часто используется дополнительный код. Но это не ваш случай.
Следовательно синусоида для 8-битного значения:
PORTA = sin( x ) * 0xFF;
x=[-1...+1]
Поскольку вычисление синусов для простых микроконтроллеров - сложная и долгая задача, то для ускорения помещают заранее посчитанный массив значений в ПЗУ.
Ср июл 31, 2013 20:58:29
foton6 писал(а):тоесть чем больше десятичное число тем соответственно больше напряжение?))))))
Хочу отметить, что процессор ничего не знает о десятичных числах. Все представляется в двоичном коде, он же идет в ЦАП.
Ср июл 31, 2013 21:02:44
Всем огромное спасибо)))))
Особенно за это:
Спойлер
uk8amk писал(а):R2R ЦАП бывают не только самодельные. К572ПА1 к примеру тоже содержит такую матрицу. Помню также отдельно выпускались и сборки резисторов для построения преобразователей. Но сейчас это уже как динозавры.
foton6 писал(а):Может у кого то есть простенькая прога или хотя бы какой нибудь алгоритм.
Прога, делающая пилу через ЦАП с периодом 256 мс.
На PORTA висит сам ЦАП.
- Код:
uint16_t i;
while( 1 )
{
for(i=0; i<256; i++)
{
PORTA = i;
delay_ms( 1 );
};
};
Теперь все стало ясно до нельзя))))
Дальше будем разгадывать осциллограмму обратно в цифру))))
Ср июл 31, 2013 21:14:38
Оу и вопрос на последок)
А ведь проще шимом регулировать от 0 до 5 вольт? (что-то типо автоматического потенциометра)
Чт авг 01, 2013 08:17:47
Gudd-Head писал(а):ШИМ+ФНЧ.
Аналог ЦАПа.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.