Разрабатываю сейчас устройство на процессоре F2013, который имеет 16-битный АЦП. Необходимо снимать показания температуры с термопары К-типа.
Не совсем понимаю как работает программируемый усилитель.
Если для подключения термопары использовать дифференциальное включение, то показания похожи на правду (с учетом усиления). При этом инициализирую АЦП следующим образом:
Код
SD16CTL = SD16REFON + SD16SSEL_1; // 1.2V ref, SMCLK
SD16CCTL0 = SD16SNGL + SD16UNI + SD16IE;
// Single conv, 256OSR, unipolar,
// enable interrupt
SD16INCTL0 = SD16INCH_0 + SD16GAIN_16; // Set channel A0+/-, GAIN x32
SD16AE = SD16AE0 + SD16AE1; // P1.0 A0+, P1.1 A0-
SD16CCTL0 = SD16SNGL + SD16UNI + SD16IE;
// Single conv, 256OSR, unipolar,
// enable interrupt
SD16INCTL0 = SD16INCH_0 + SD16GAIN_16; // Set channel A0+/-, GAIN x32
SD16AE = SD16AE0 + SD16AE1; // P1.0 A0+, P1.1 A0-
Если же (-) термопары подключить к общему проводу и задействовать только 0-й внешний вход:
Код
SD16AE = SD16AE0;
Получаю значения, похожие на значения без усиления. Будто в настройках указано SD16GAIN_1.
Получается, усиление работает только при дифф. включении? В мануале ничего не нашел на эту тему.
Понимаю, что в моем случае правильнее использовать дифференциальное включение, но дело в том, что на моем датчике присутствует еще второй, дискретный, датчик (геркон), который подключен одним концом к (-) термопары.
Точность особая не нужна +-10 градусов устроит.