2640ADC参考电压4.3V如何产生的?
如题,请问下
2640的4.3V参考电压是如何产生的呢?外部只有3.3V的供电,那么是内部进行了升压处理吗。TRM上说"seem to be 4.3V"感觉这个4.3V不是确定的一样。我测试了一组数据,分别选4.3V和VDDA做参考电压,测量内部的GND,1.2V,3.3V得到如下采样值:
-----------------------------------------------------------------
GND 1.2V 3.3V
-----------------------------------------------------------------
4.3V参考: 4 1564 3980
------------------------------------------------------------------
VDDA参考: 3 1201 3060
------------------------------------------------------------------
然后我计算外部IO的电压值时:ADC_LEVEL = SampleValue*3.3/4096;或者ADC_LEVEL = SampleValue*4.3/4096;
两种情形下,都比实际测量的电压低0.07V左右,请问我应该怎么处理?
请有过成功运用的朋友指点一二,谢谢了。
Hi Jianhua,
里面是有比例变化的。“seem”的意思不是不确定。是用户使用上是“看上去”.
关于offset, 可以看一下 DriverLib code 里面可否调整。你可以研究一下,或需要楼下软件看看有没有能帮上忙的。
Hi Jianhua,
please check it out. you can find the solution for your 2nd question.
https://e2e.ti.com/support/wireless_connectivity/f/538/p/435746/1561758
不错,可以直接测量锂电池电压!
这个内部ADC可以直接测量单节锂电池的电压吗?
ADC的输入阻抗是多少?
锂电池最高4.2(或更高)了吧。不行,超过芯片本身耐压了。这个不可以超过VDDS。(参见datasheet)
那采样锂电池还是需要外部分压后来采样了,对吗?
是的,一般锂电压检测是要分压了。
原来的CC254x芯片ADC的输入阻抗是180K左右,外部的分压电阻还不能太大,负责无法测量到准确的值。
不知道现在的这个新芯片是否有这个问题?对于这种环境下的ADC输入阻抗大概多少?
各位参考下面代码,根据需要自己设置,拿走不谢:
/*! * @brief Specifies whether the internal reference of the ADC is sourced from the battery voltage or a fixed internal source. * * - In practice, using the internal fixed voltage reference sets the upper range of the ADC to a fixed value. That value is 4.3V with * input scaling enabled and ~1.4785V with input scaling disabled. In this mode, the output is a function of the input voltage multiplied * by the resolution in alternatives (not bits) divided by the upper voltage range of the ADC. Output = Input (V) * 2^12 / (ADC range (V)) * * - Using VDDS as a reference scales the upper range of the ADC with the battery voltage. As the battery depletes and its voltage drops, so does * the range of the ADC. This is helpful when measuring signals that are generated relative to the battery voltage. In this mode, the output is * a function of the input voltage multiplied by the resolution in alternatives (not bits) divided by VDDS multiplied by a scaling factor derived * from the input scaling. Output = Input (V) * 2^12 / (VDDS (V) * Scaling factor), where the scaling factor is ~1.4785/4.3 for input scaling * disabled and 1 for input scaling enabled. * * @note The actual reference values are slightly different for each device and are higher than the values specified above. This gain is saved in * the FCFG. The function ::ADC_convertRawToMicroVolts() must be used to derive actual voltage values. Do not attempt to compare raw values * between devices or derive a voltage from them yourself. The results of doing so will only be approximately correct. * * @warning Even though the upper voltage range of the ADC is 4.3 volts in fixed mode with input scaling enabled, the input should never exceed * VDDS as per the data sheet. */ typedef enum ADCCC26XX_Reference_Source { ADCCC26XX_FIXED_REFERENCE = AUXADC_REF_FIXED, ADCCC26XX_VDDS_REFERENCE = AUXADC_REF_VDDS_REL } ADCCC26XX_Reference_Source;