如题,请问下
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左右,请问我应该怎么处理?
JianHua Zhou2:
请有过成功运用的朋友指点一二,谢谢了。
Albin Zhang:
Hi Jianhua,
里面是有比例变化的。“seem”的意思不是不确定。是用户使用上是“看上去”.
关于offset, 可以看一下 DriverLib code 里面可否调整。你可以研究一下,或需要楼下软件看看有没有能帮上忙的。
BR. AZ
Albin Zhang:
回复 JianHua Zhou2:
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
BR. AZ
da qin zheng sheng:
不错,可以直接测量锂电池电压!
xianbin xie:
回复 da qin zheng sheng:
这个内部ADC可以直接测量单节锂电池的电压吗?
ADC的输入阻抗是多少?
Albin Zhang:
回复 xianbin xie:
锂电池最高4.2(或更高)了吧。不行,超过芯片本身耐压了。这个不可以超过VDDS。(参见datasheet)
BR. AZ
xianbin xie:
回复 Albin Zhang:
那采样锂电池还是需要外部分压后来采样了,对吗?
Albin Zhang:
回复 xianbin xie:
是的,一般锂电压检测是要分压了。
BR. AZ
xianbin xie:
回复 Albin Zhang:
原来的CC254x芯片ADC的输入阻抗是180K左右,外部的分压电阻还不能太大,负责无法测量到准确的值。
不知道现在的这个新芯片是否有这个问题?对于这种环境下的ADC输入阻抗大概多少?
Rex Kung:
各位参考下面代码,根据需要自己设置,拿走不谢:
/*!*@briefSpecifies 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.**@noteThe 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.**@warningEven 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;