Я использую MSP430FG4618 с его экспериментальной платой. Перепробовал все примеры из интернета - результат одинаковый - на порте 6 странное напряжение. В ервом же примере такие команды приводятся, я их уже пробовал:
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
ADC12CTL0 = REF2_5V + REFON;
DAC12_0CTL = DAC12IR + DAC12AMP_5 + DAC12ENC; // Int ref gain 1
DAC12_0DAT = 0x0666;
Перед ЦАП я конфигурирую АЦП, где выставляются нужные биты REFON+REF2_5V для ЦАП(специально для него я их использовал):
void init_ADC(void)
{
ADC12CTL0&=~ENC;//разрешаем модифицирование битов управления
//отключаем прерывания
ADC12IE=0x0;
if((ADC12CTL0&(~ENC))==0)
{
ADC12CTL0&=~ADC12ON;//выключаем АЦП перед настройкой
ADC12CTL0|=REF2_5V;//устанавливаем опороное напряжение 2,5 В - требуются конденсаторы
ADC12CTL0|=REFON;//включаем генератор опорного напряжения
//отключены множественые выборки и преобразования
ADC12CTL0&=~BIT7;
ADC12CTL1&=~ADC12BUSY;//выключаем преобразование
if((ADC12CTL1&(~ADC12BUSY))==0)
{
//устанавливаем тактовый делитель /1
ADC12CTL1&=~BIT7;
ADC12CTL1&=~BIT6;
ADC12CTL1&=~BIT5;
//устанавливаем источник выборки хранения - ADC12SC
ADC12CTL1&=~BIT11;
ADC12CTL1&=~BIT10;
//входной сигнал выборки ADC12SC не инвертирован
ADC12CTL1&=~BIT8;
//устанавливаем источник сигнала выборки - входной сигнал выборки
ADC12CTL1&=~BIT9;
//устанавливаем регистр MEM0 для результата преобразования
ADC12CTL1&=~BIT15;
ADC12CTL1&=~BIT14;
ADC12CTL1&=~BIT13;
ADC12CTL1&=~BIT12;
//одноканальный режим преобразования с одним преобразованием
ADC12CTL1&=~BIT2;
ADC12CTL1&=~BIT1;
}
//конфигурируем регистр результата преобразований
//устанавливаем опорный источник Vref+ AVss
ADC12MCTL0&=~BIT6;
ADC12MCTL0&=~BIT5;
ADC12MCTL0&=~BIT4;
//выбираем входной канал А0
ADC12MCTL0&=~BIT3;
ADC12MCTL0&=~BIT2;
ADC12MCTL0&=~BIT1;
ADC12MCTL0&=~BIT0;
//конец последовательности
ADC12MCTL0|=BIT7;
//только А0 P6.0
P6SEL|=0x01;
//включаем АЦП12
ADC12CTL0 = ADC12ON;
}
}
АЦП у меня нормально работает.


Реализую эту схему. На вход ЦАПов поступает сигнал с P6.0(выход АЦП), другой сигнал на 1 схеме - сигнал с ножки термодатчика. Напряжения на выходе датчика и выходах ЦАП не совпадают. (там на ЦАП будет подаваться сигнал температуры+-какое-то значение потом)ю