Страница 1 из 1
ЦАП. Максимальное напряжение - половина Vref
Добавлено: Сб апр 13, 2013 13:08:10
rrrrrrrrrr
День добрый.
Осваиваю ЦАП DAC8501
http://www.ti.com/lit/ds/sbas212a/sbas212a.pdf
Выводы Vout и Vfb соединил между собой и все это через резистор 2,2кОм на землю. На Vref подал напряжение с опорника REF195 (5V). Питание от USB. Управляю ЦАПом через At90USB162.
Все работает. Но странно. При отправке в ЦАП 0 на выходе появляется 14,8 mV. При отправке 65535 на выходе 2,5V (половина от Vref). Меняется линейно.
Экспериментировал с выводом Vfb. Пробовал оставить его неподсоединенным. При этом на выходе появилось напряжение питания (5,08V), не зависящее от команд.
Хотелось бы иметь Vref на выходе.
Помогите, пожалуйста, разобраться, что за ерунда.
Спасибо

Re: ЦАП. Максимальное напряжение - половина Vref
Добавлено: Сб апр 13, 2013 16:17:09
YAA
Как засылали данные?
Re: ЦАП. Максимальное напряжение - половина Vref
Добавлено: Сб апр 13, 2013 18:34:06
rrrrrrrrrr
YAA, засылал так:
//настройка SPI
SPCR = 0b01011111;
SPSR = 0b00000001;
//получение из USB
dacMSB = Usb_read_byte();
dacLSB = Usb_read_byte();
//отсылка по SPI
PORTB &= ~(1<<4);
SPDR = 0; //normal operation mode
while(!(SPSR & (1<<7)));
SPDR = dacMSB; //DAC msb
while(!(SPSR & (1<<7)));
SPDR = dacLSB; //DAC lsb
while(!(SPSR & (1<<7)));
PORTB |= (1<<4);
Re: ЦАП. Максимальное напряжение - половина Vref
Добавлено: Сб апр 13, 2013 19:12:43
rrrrrrrrrr
Пока ЦАП не работает, доделываю Устройство. )
В Устройстве ЦАП (DAC8501
http://www.ti.com/lit/ds/sbas212a/sbas212a.pdf ), АЦП (ADS8320
http://www.ti.com/lit/ds/symlink/ads8320.pdf ) и опорное напряжение (REF195
http://www.analog.com/static/imported-f ... Series.pdf ). ЦАП выдает напряжение на клемму. Вторая клемма ведет к земле через сопротивление (2,2 кОм), с которого снимает напряжение АЦП. Клеммы пока замкнуты перемычкой.
Опорное напряжение подсоединено выходом к ЦАП и АЦП.
Списался с АЦП:
SPCR = 0b01011011;
PORTB &= ~(1<<0);
SPDR = 0;
while(!(SPSR & (1<<7)));//junk byte
SPDR = 0;
while(!(SPSR & (1<<7)));// msb
adcMSB = SPDR;
SPDR = 0;
while(!(SPSR & (1<<7)));// lsb
adcLSB = SPDR;
PORTB |= (1<<0);
АЦП тоже работает. Тоже странно )
Когда я отправляю 0хFF на ЦАП (на сопротивлении появляется 2,5V), АЦП также показывает примерно 0xFF (при опорных 5V!! о_О).
Я уже и за осциллографом сходил. Напряжения ровные. Ровно 2,5V на ЦАП; ровно 2,5V на сопротивлении, ровно 5V на опорном.
Показания АЦП очень линейно связаны с посылками в ЦАП. Все работает хорошо. Только кто-то украл полнаряжения...
В качестве жеста отчаяния попробовал повысить скорость SPI. Не помогло.

Re: ЦАП. Максимальное напряжение - половина Vref
Добавлено: Сб апр 13, 2013 23:06:31
YS
Схему в студию. Без нее сложно что-то сказать.
И желательно фото платы.
Питание чипов - 5В? Подается надежно?
Когда я отправляю 0хFF на ЦАП (на сопротивлении появляется 2,5V)
Таки 0xFF или 0xFFFF? Он же шестнадцатибитный. Если убрать резистор, что-то меняется?
Re: ЦАП. Максимальное напряжение - половина Vref
Добавлено: Вс апр 14, 2013 14:33:16
rrrrrrrrrr
Да, конечно 0xFFFF
Вооружился макетником и феном. Упростил схему. Полностью

Контроллер соединен только с ЦАП. Питание и опорное напряжение из USB.
В цикле засылаю 00-FF-FF.
Посмотрел осциллографом информационные линии. CS почти постоянно 0 (короткие единички между актами общения). CLK - равномерная дробь. Dout: 1/3 ноль, 2/3 единица, (по даташиту первый из трех байт посылки должен быть нулевой).
Посмотрел осциллографом питание и выход ЦАП. Все ровное. Питание - 5,08V. Выход 2,54V.
Пробовал слать 00-00-00. На выходе 14,4mV.
Поменял ЦАП. Все осталось прежним, только напряжение после посылки 00-00-00 стало 9,9mV.
Поменял контроллер. Не изменилось ничего.
Грохнул все об пол. Растоптал. Врезал головой по стене. Взял отпуск. Уехал.
Большое спасибо всем, кто попытался мне помочь

Re: ЦАП. Максимальное напряжение - половина Vref
Добавлено: Вс апр 14, 2013 15:39:54
Леонид Иванович
rrrrrrrrrr писал(а)://настройка SPI
SPCR = 0b01011111;
DAC8501 защелкивает данные по спаду, поэтому нужно SPCR = 0b01011011;
Re: ЦАП. Максимальное напряжение - половина Vref
Добавлено: Вс апр 14, 2013 22:35:49
rrrrrrrrrr
Леонид Иванович писал(а):rrrrrrrrrr писал(а)://настройка SPI
SPCR = 0b01011111;
DAC8501 защелкивает данные по спаду, поэтому нужно SPCR = 0b01011011;
Да, верно! Забыл, что CLK - от единицы вниз падает. Большое спасибо. Буду внимательнее. Вернусь из отпуска, неприменно еще раз попробую.
Вместе с тем, пробовал засылать в ЦАП 0b10000000 в старшем байте, чтобы проверить, приходит ли первая единичка и она таки приходила - ЦАП выдавал половину своей урезанной нормы...
Раз уж все буду делать заново, не посоветуете ли типовую схему для моей задачки - подавать во внешний контур напряжение и измерять ток, прошедший через контур. Что-то вроде источника напряжения и USB осциллографа в одном флаконе. Для управления ЦАП-АЦП и связи с компьютером я использую такую макетку
http://microsin.net/programming/AVR/avr-usb162.html
Мне хотелось бы, по возможности уменьшить шумы, так как устройство будет употребляться для научных измерений. Если я правильно понимаю, нужно поставить развязку по питанию и сигналам между макеткой и ЦАП-АЦП модулем, развести аналоговую и цифровую земли на ЦАП-АЦП модуле, соединив их непосредственно около развязки. И поставить конденсаторы (0,1 и 10 мФ?) сразу после ЦАП.
Большое спасибо за помощь
Re: ЦАП. Максимальное напряжение - половина Vref
Добавлено: Пн апр 15, 2013 15:52:32
Леонид Иванович
Вопрос слишком общий, лучше покажите свой вариант схемы, чтобы было что обсуждать.