TI中文支持网
TI专业的中文技术问题搜集分享网站

CC1310: CC1310 adc 测温问题

Part Number:CC1310

硬件电路如下,采用3.6V电池供电。问题是同样的温度下,电压在2.5~3.6V范围不同电压下测出的ADC值相差很大,导致显示的温度误差大。这个如何解决?

Kevin Qiu1:

ADC参考源选的是什么,尝试换为ADCCC26XX_FIXED_REFERENCE 然后测试看看

,

wei xin xin:

参考源 

adcEnableSync(ADC_REF_FIXED, ADC_SAMPLE_TIME_2P7_US, ADC_TRIGGER_MANUAL);

,

Kevin Qiu1:

wei xin xin 说:adcEnableSync(ADC_REF_FIXED, ADC_SAMPLE_TIME_2P7_US, ADC_TRIGGER_MANUAL);

这是你自己封装的API,我在例程中没有看到这个函数

wei xin xin 说:电压在2.5~3.6V范围不同电压下测出的ADC值相差很大

差别大概是多少,是用ADC_convertToMicroVolts()获取ADC采样值的吗

,

wei xin xin:

evhCancelTrigger(0);

gpioClearOutput(AUXIO_O_SENSOR_GND);

// 使能ADC(内部 4.3VREF为参考)

adcEnableSync(ADC_REF_FIXED, ADC_SAMPLE_TIME_2P7_US, ADC_TRIGGER_MANUAL);

// 传感器采样

U16 adcValue;

adcGenManualTrigger(); // 单次触发

adcReadFifo(adcValue); // 读取ADC值

output.adcValue = adcValue;

// 失能ADC

adcDisable();

gpioSetOutput(AUXIO_O_SENSOR_GND);

// 55℃对应表数据为0x0405(cfg.AlrSet)

if (adcValue > cfg.AlrSet){

input.AlrDly+=1;

if(input.AlrDly>=ALR_DELAY){

input.AlrDly=ALR_DELAY;

if(input.AlrFlag==0){

input.AlrFlag=1;

fwGenAlertInterrupt();

}

}

}else {

input.AlrFlag=0;

}

evhSetupTimer1Trigger(0, cfg.TimeSet, 8);

,

wei xin xin:

这是SCS中ADC的

,

wei xin xin:

参考源改为ADC_REF_VDDS_REL解决!

,

Kevin Qiu1:

好的

使用 VDDS 作为参考源可根据电池电压调整 ADC 的上限,随着电池电压下降,ADC 的范围也随之下降,测与电池电压相关的信号时一般使用它作为参考源

如果VDDS有较明显的纹波,则一般使用fixed internal source作为参考源

,

wei xin xin:

还有个问题:现在参考源改为ADC_REF_VDDS_REL后,测温没有问题,但电池电压就检测不了啦。

,

Kevin Qiu1:

电池电压检测不了是什么意思,检测电池电压用的哪个ADC?

,

wei xin xin:

BatTemp=AONBatMonBatteryVoltageGet();   // 获取电压

程序中有用上面程序测试电池电压。之前用

// 使能ADC(内部 4.3VREF为参考)

adcEnableSync(ADC_REF_FIXED, ADC_SAMPLE_TIME_2P7_US, ADC_TRIGGER_MANUAL);

后面改成ADC_REF_VDDS_REL。我以为可能会出现测不准电源电压,因为参考源为VDDS,不论电压高低怎么测都是满量程。

刚刚在测试中发现没有出现这种情况,测量电压也是正常变化的。

我理解为ADC_REF_VDDS_REL或ADC_REF_FIXED应该是针对与SCS那个核才用用的。AONBatMonBatteryVoltageGet()在主核中,不受这个改变的影响。理解对吗?

,

wei xin xin:

查了下资料,AONBatMonBatteryVoltageGet(),BATMON是单独的模块,和ADC不是不同

,

Kevin Qiu1:

wei xin xin 说:AONBatMonBatteryVoltageGet(),BATMON是单独的模块,和ADC不是不同

是的,BATMON是单独的模块,可在技术参考手册中找到这部分详细说明

赞(0)
未经允许不得转载:TI中文支持网 » CC1310: CC1310 adc 测温问题
分享到: 更多 (0)