STM32/STM8技术william hill官网
直播中

王凯

7年用户 1293经验值
私信 关注
[问答]

STM32F0 ADC读取的值不准确

我现在使用STM32F030F4P6 MCU在做一个项目,该MCU没有Vref +引脚,并且使用VDDA引脚进行A / D转换,PLL等。在我将要在我的项目中使用的威廉希尔官方网站 原型设计时,我将VDDA和VDD引脚与10uF和100nF电容短接到地。我使用直流电源为这些引脚提供精确的3.3V电压。
ADC将读取最大振幅为16.8V的电压。因此,我使用了10k / 2k分压器,将此电压提升到逻辑电平。由于我将主要读取DC值,因此我将采样时间设置为最高可能时间为239.5 adc时钟周期--17.1微秒。
问题是我读到的值与用万用表测量的电压不同。例如,当我测量2.87V时,ADC读数为~2.8V。
这些MCU内置了Vref,可以通过ADC_IN17读取。当我尝试使用它来校准我的ADC时,此时测量的电压低于读取电压。例如,当我测量2.72V时,读电压为2.8V。
ADC分辨率为12位,ADC精度表如下所示
EHsUn.jpg

回帖(2)

刘埃生

2018-9-11 15:06:21
这个问题似乎与MOSFET开关时间和ADC读取时间之间的关系有关。
100 mV噪声很可能是周期性噪声,与噪声相位读数不能导致平均值,就像在2 * pi * n + c点处平均sin(t)
如果噪声路径不是电感性的,则过滤ADC输入可能有助于减少相关性。
如果过采样到比切换时间更高的速率不是一种选择,那么至少将采样点远离暂时区域可能会有所帮助。
举报

张健

2018-9-11 15:07:04
使用内部VREF进行校准,你需要提供代码。
对于没有校准的情况,它实际上可能是输入阻抗 - MCU ADC的输入阻抗约为50k,在分压器的情况下可能太低 - 尝试缓冲测量电压并再次测量。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分