const ADCCC26XX_HWAttrs adcCC26xxHWAttrs[CC1310_LAUNCHXL_ADCCOUNT] = {
{
.adcDIO = CC1310_LAUNCHXL_DIO5_ANALOG,
.adcCompBInput = ADC_COMPB_IN_AUXIO7,
.refSource = ADCCC26XX_VDDS_REFERENCE,
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
.inputScalingEnabled = true,
.triggerSource = ADCCC26XX_TRIGGER_MANUAL,
.returnAdjustedVal = false
},
}
如上,我用这个配置去检测模拟信号,模拟口我直接接到VDD,但是得到的AD值不能达到4095,只能到3980左右,这个问题是我的软件哪里没配置好吗,还是还要通过方式转换一下,还是说芯片的AD口本身有内阻造成的
我如果这样,1310单独供电,模拟检测口用另外的电源供电,当供电达到3.3V,就可以得到4095的AD值。
但是如果我直接给整个系统供电,就算电压到3.3V也还是到不了4095的AD值
Viki Shi:
CC1310内部的battery monitor实际上检测的是直接连接到VDDS上电池的电压,即VDDS的电压
FreePom:
回复 Viki Shi:
为什么AD口直接VDDS上得不到4095的AD值,用的是单路检测方式
FreePom:
回复 Viki Shi:
是我做的方式不对吗
Viki Shi:
回复 FreePom:
你是准备测量VDDS然后作为ADC的参考源?那不管如何变化,测量的值应该始终是4095左右。无法得到这个值可能是ADC的内部偏差或者其他非理想情况。
建议使用4.3v的等效内部基准,代替VDDS。