微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > ADC參考源

ADC參考源

时间:12-23 整理:3721RD 点击:
使用CC1310接触ADC后,有几块地方不是很明白: 
1.)对于VDDS的概念不是很了解,是说输入电压不能超过4.1V吗 
2.)在做ADC测试时,发现:      
 当我ADC引脚接地时,实际上电压是18mv,ADC值却是1056;      
 当我ADC引脚接3.3V时,实际上电压是3.8V,ADC值却是3342000;      
 当我ADC引脚接5V时,实际上电压是4.7V,ADC值却是392000;      
 他们之间的误差呈现这样是正常的吗

当我ADC引脚接5V时,实际上电压是4.7V,ADC值却是392000;

ADC引脚的输入超过最大允许值,会损坏芯片的。

12位的ADC 你怎么测的3342000? 转换后的电压信号?

你基准源多少,ADC Scale 功能打开了没有?

我想应该是转换后的电压信号,我是在ti提供的例程adcBufContinuousSampling做编辑

其中我没有看到ADC Scale这项指令 
而测到的值是由下列函数执行没错吧 
ADCBuf_convertAdjustedToMicroVolts(handle, completedChannel, completedADCBuffer, microVoltBuffer, ADCBUFFERSIZE); 
但是我不知道它转换的原理方式,请专家指点一二...

逐级查看函数调用,可以找到具体的转化实现。如下

int_fast16_t ADCBufCC26XX_convertAdjustedToMicroVolts(ADCBuf_Handle handle, uint32_t adcChannel, void *adjustedSampleBuffer, uint32_t outputMicroVoltBuffer[], uint_fast16_t sampleCount) {
ADCBufCC26XX_Object *object;
uint16_t i;
uint32_t voltageRef;

object = handle->object;

voltageRef = (object->inputScalingEnabled) ? AUXADC_FIXED_REF_VOLTAGE_NORMAL : AUXADC_FIXED_REF_VOLTAGE_UNSCALED;

for (i = 0; i < sampleCount; i++) {
outputMicroVoltBuffer[i] = AUXADCValueToMicrovolts(voltageRef, ((uint16_t *)adjustedSampleBuffer)[i]);
}

return ADCBuf_STATUS_SUCCESS;
}

int32_t
AUXADCValueToMicrovolts(int32_t fixedRefVoltage, int32_t adcValue)
{
// Chop off 4 bits during calculations to avoid 32-bit overflow
fixedRefVoltage >>= 4;
return (((adcValue * fixedRefVoltage) + 2047) / 4095) << 4;
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top