历史上的今天
今天是:2025年03月06日(星期四)
2019年03月06日 | STM32 ADC采样不准怎么办
2019-03-06 来源:eefocus
最近在使用STM32L011的ADC时,发现ADC采样值极其不准确。经过查找资料,和反复测试,总算摸出点门道。
如将VDDA接到VDD,那么电源的波动会极大的影响ADC精度。
不过使用内部参考电压可以计算实际的VDDA电压。

说明:
VREFINT_CAL:芯片出厂时固化在存储器中的。使用时需要通过软件读取。
VREFINT_DATA:ADC读取VREFINT(内部参考电压通道ch17)得到的值,每次采样序列,将ch17一并采集,用来后续的AD值补偿计算。
如何读取VREFINT_CAL?
首先,找到芯片的datasheet,是所使用的那款芯片的数据手册,因为同一系列的不同芯片,可能存在区别。例如,我需要找到的datasheet标题是这个

搜索:VREFINT_CAL

得到VREFINT_CAL的地址后,使用语句
#define VREF_CAL *(__IO uint16_t *)(0x1FF80078)
然后data1 = VREF_CAL;就可以了。
怎样计算得到一个与电源电压无关的绝对精确的AD值?

使用这个公式就可以了。
说明:
VREFINT_CAL:使用前述的读取语句data1 = VREF_CAL;从芯片存储器中读出;
ADC_DATAx:你需要测量的通道,使用ADC读出;
VREFINT_DATA:前述,内部参考电压通道(ch17)读出的值;
full_SCALE:上面已经解释很好了。取值2^n-1,n是分辨率。
史海拾趣
|
磁盘的一直在转,而且磁道是完全对称的环形,怎么准确寻址扇区呢? 扇区的绝对地址是相对于第0个扇区来说的,可是磁盘的一直在转,而且磁道是完全对称的环形,没有任何一个扇区在物理上是特殊的,系统是怎么寻址磁盘的第0扇区的呢?… 查看全部问答> |
|
我系一在校学生,导师弄了块 techwell tw6802(似乎又象6805)的视频采集卡,让我写个linux驱动。 在官方网站上没有一点与技术相关的资料, 真奇怪。 请有做过这方面的朋友 能否发点 与tw6802/tw6805相关的资料(比如datasheet,代码都可)给 ...… 查看全部问答> |
|
代码如下,我通过亮灯显示执行情况,发现我执行休眠时,在设置内存自刷新后,就直接跑飞了。不知道为何? ; 7. Go to Power-Off Mode ldr r0, =vMISCCR ; hit the TLB ldr r0, [r0] ldr r0, =vCLKCON ldr r0, [r0] ...… 查看全部问答> |
|
Error[Pe065]: expected a ";"另一个程序就没有这个问题啊 #pragma vector=ADC_VECTOR __interrupt void ADC12ISR (void) { static uchar index = 0; results[index++] = ADC12MEM1; // Mo ...… 查看全部问答> |




