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

CC2650采集电压的时候,发现比真实电压大了0.6V

static const ADCCC26XX_HWAttrs s_adcCC26XXHWAttrs[BOARD_ADCCOUNT] =
{
{
.adcDIO = BATTERY_ADC_IO, // DIO_6
.adcCompBInput = ADC_COMPB_IN_AUXIO7,
.refSource = ADCCC26XX_FIXED_REFERENCE,
.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
.inputScalingEnabled = true,
.triggerSource = ADCCC26XX_TRIGGER_MANUAL,
//.returnAdjustedVal = 0
},

ADCCC26XX_FIXED_REFERENCE  用的是内部参考电压1.44v

计算公式,4.3是采样倍率

VBAT = ADC_Read() / 4096.0*1.44 * 4.3;

,管脚也是对的啊,ADC_COMPB_IN_AUXIO7这个参数干嘛用的?

user1388075:

用的4*4的芯片的IOD6 作为电压采集输入。

这是我完整的驱动代码,调用的是adc_read

/********************************************************************** INCLUDES*/
#include "_hal_types.h"
#include <ti/drivers/adc/ADCCC26XX.h>
#include <ti/drivers/pin/PINCC26XX.h>
#include <driverlib/aux_adc.h>
#include <driverlib/aux_wuc.h>#include "drv_adc.h"/********************************************************************** LOCAL VARIABLES*/
static ADCCC26XX_Object s_adcCC26XXObject[BOARD_ADCCOUNT];static const ADCCC26XX_HWAttrs s_adcCC26XXHWAttrs[BOARD_ADCCOUNT] =
{{.adcDIO = BATTERY_ADC_IO,// DIO_6.adcCompBInput = ADC_COMPB_IN_AUXIO7,.refSource = ADCCC26XX_FIXED_REFERENCE,.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,.inputScalingEnabled = true,.triggerSource = ADCCC26XX_TRIGGER_MANUAL,//.returnAdjustedVal = 0},{.adcDIO = PIN_UNASSIGNED,.adcCompBInput = ADC_COMPB_IN_DCOUPL,.refSource = ADCCC26XX_FIXED_REFERENCE,.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,.inputScalingEnabled = true,.triggerSource = ADCCC26XX_TRIGGER_MANUAL,//.returnAdjustedVal = 0},{.adcDIO = PIN_UNASSIGNED,.adcCompBInput = ADC_COMPB_IN_VSS,.refSource = ADCCC26XX_FIXED_REFERENCE,.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,.inputScalingEnabled = true,.triggerSource = ADCCC26XX_TRIGGER_MANUAL,//.returnAdjustedVal = 0},{.adcDIO = PIN_UNASSIGNED,.adcCompBInput = ADC_COMPB_IN_VDDS,.refSource = ADCCC26XX_FIXED_REFERENCE,.samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,.inputScalingEnabled = true,.triggerSource = ADCCC26XX_TRIGGER_MANUAL,// .returnAdjustedVal = 0}
};static const ADC_Config s_adcConfig[BOARD_ADCCOUNT] =
{{&ADCCC26XX_fxnTable,&s_adcCC26XXObject[BOARD_ADCCHANNEL7],&s_adcCC26XXHWAttrs[BOARD_ADCCHANNEL7]},{&ADCCC26XX_fxnTable,&s_adcCC26XXObject[BOARD_ADCDCOUPL],&s_adcCC26XXHWAttrs[BOARD_ADCDCOUPL]},{&ADCCC26XX_fxnTable,&s_adcCC26XXObject[BOARD_ADCVSS],&s_adcCC26XXHWAttrs[BOARD_ADCVSS]},{&ADCCC26XX_fxnTable,&s_adcCC26XXObject[BOARD_ADCVDDS],&s_adcCC26XXHWAttrs[BOARD_ADCVDDS]},
};// ADC句柄及参数
static ADC_Handle s_adcHandle;
static ADC_Params s_adcParams;/********************************************************************** PUBLIC FUNCTIONS*/
/**@brief ADC的初始化函数@param 无@return 无
*/
void ADC_Init(void)
{ADC_Params_init(&s_adcParams);//s_adcParams.isProtected = TRUE;s_adcConfig[BOARD_ADCCHANNEL7].fxnTablePtr->closeFxn((ADC_Handle)&s_adcConfig[BOARD_ADCCHANNEL7]);s_adcHandle = s_adcConfig[BOARD_ADCCHANNEL7].fxnTablePtr->openFxn((ADC_Handle)&s_adcConfig[BOARD_ADCCHANNEL7],&s_adcParams);
}/**@brief ADC读取@param 无@return 读取电压值
*/
uint16 ADC_Read(void)
{uint16 adcResult;s_adcConfig[BOARD_ADCCHANNEL7].fxnTablePtr->convertFxn(s_adcHandle, &adcResult);return adcResult;
}/**@brief ADC短暂读取@param 无@return 读取电压值
*/
uint32 Adc_OneShotRead(void)
{AUXWUCClockEnable(AUX_WUC_MODCLKEN0_ANAIF_M | AUX_WUC_MODCLKEN0_AUX_ADI4_M);AUXADCSelectInput(ADC_COMPB_IN_AUXIO7);AUXADCEnableSync(AUXADC_REF_FIXED, AUXADC_SAMPLE_TIME_2P7_US, AUXADC_TRIGGER_MANUAL);AUXADCGenManualTrigger();uint32 adcValue = AUXADCReadFifo();AUXADCDisable();return adcValue;
}/**
@brief 关闭ADC
@param 无
@return 无
*/
void ADC_Close()
{AUXADCDisable();
}

YiKai Chen:

直接用ADC_convertRawToMicroVolts就好

Kevin Qiu1:

回复 user1388075:

ADC_COMPB是ADC比较器,具体请看这里17节:www.ti.com.cn/…/swcu117i.pdf
你用的是哪个例程

user1388075:

回复 YiKai Chen:

我接的是IO6应该选哪个

YiKai Chen:

回复 user1388075:

你腳位設置內容不大對,請你參考一下 CC2650_LAUNCHXL.c/CC2650_LAUNCHXL.h,接的是IO6的話可以把CC2650_LAUNCHXL.h的"#define Board_DIO23_ANALOG          IOID_23"改成"#define Board_DIO23_ANALOG          IOID_6"應該就可以

赞(0)
未经允许不得转载:TI中文支持网 » CC2650采集电压的时候,发现比真实电压大了0.6V
分享到: 更多 (0)