CH32V203xx的ADC精度的问题

目前手上一个项目需要使用ADC对一路传感器的电压做到精确采样,目标是±1mv,我目前实现的方法如下:

  1. 先对两个ADC通道进行校准,分别保存下各个通道的校准偏差。

  2. 两个ADC对内部参考电压(Vrefint)进行多次测量,取校准后的平均值,然后分别保存。

  3. ADC1对目标传感器的外部通道进行多次测量,取校准后的平均值。

  4. 根据公式计算出目标电压(Vtarget = Ntarget * Vrefint / Nrefint)

    1. Vtarget 是计算出的目标传感器的电压

    2. Ntarget是第3步ADC1采样后的平均校准值

    3. Vrefint是内部参考电压,固定是1200

    4. Nrefint是第2步内部参考电压的采样后的平均校准值



另外ADC2通道会根据ADC1通道采样出来的目标粗电压范围进行PGA增益的调整再采样:

如果ADC1计算出来的目标电压小于800mv,那么ADC2的PGA配置为4倍模式,再采样然后/4计算出目标电压。

如果ADC1计算出来的目标电压小于200mv,那么ADC2的PGA配置为16倍模式,再采样然后/16计算出目标电压。

如果ADC1计算出来的目标电压小于50mv,那么ADC2的PGA配置为64倍模式,再采样然后/64计算出目标电压。


但是这样计算出来发现误差还是比较大,ADC1的差不多有±10mv,ADC2的也有±5mv,请问还有没有别的手段提高采样的精度?

您好,

        

        传感器信号是怎样的呢,比如是否是快速变化的?芯片供电是怎么样的,比如有没有单独给模拟部分供电?供电电压是否存在较大的波动?


        如果对采样率要求不高,可以适当调整采样时间,另要注意书手册中对外部阻抗的要求。


        按您对电压的分档来看,传感器输出信号有较小的情况,建议使用运放就近对信号进行放大,将传感器电压放大到Vdda/2左右,减小外部干扰对原始信号的影响。


你好, 传感器是PD(光电二极管), 短期内比较稳定, 不会有大的变化.

MCU型号是CH32V203F8P6, 这款MCU好像没有单独的模拟部分供电的引脚吧.

供电是3.3V LDO输出的, 有不少滤波电容, 电压没有大的波动.

我的需求对ADC的采样速度是要求不高, 但对精度要求较高.


目前MCU配置是使用HSI 96MHz的输入时钟, ADCCLK是8分频, 采样周期是239.5


关于ADC的速率有个疑问:

一个是ADCCLK, 还有就是采样周期,分别是用下面的代码去配置的:

RCC_ADCCLKConfig(RCC_PCLK2_Div8);
ADC_RegularChannelConfig(ADC1,?ADC_Channel_8,???1,?ADC_SampleTime_239Cycles5);


请问这两个配置主要影响哪些参数? 看了DS, 只写了采样周期好像会影响最大外部阻抗.

image.png



"按您对电压的分档来看,传感器输出信号有较小的情况,建议使用运放就近对信号进行放大,将传感器电压放大到Vdda/2左右,减小外部干扰对原始信号的影响。"


关于使用运放的疑问, MCU的ADC不是内部集成了PGA, 为何还需要使用运放对小信号进行放大呢, 是因为OPA比PGA精度更高吗?




image.png


image.png



传感器的采样电路原理大致如上, MCU在Vsense处对PD的输出电压进行采样,并计算出光功率.


您好,


        首先回答您关于ADC时钟配置的疑问,在数据手册中ADC的时钟最大不超过14MHz,其时钟是由APB2总线提供。例如在system_ch32v20x.c文件中,配置系统主频为96MHz,APB2总线不分频,即APB2频率为96MHz。使用RCC_ADCCLKConfig函数,将APB2时钟8分频提供给ADC,可满足ADC时钟最大不超过14MHz的要求。

        ADC_RegularChannelConfig函数中,ADC_SampleTime_239Cycles5参数配置的是ADC单次采样所花费的时间,即采样时间=采样周期*ADC时钟频率,因此采样周期越长,采样时间也越长。数据手册采样周期与外部阻抗的关系中,采样周期71.5与239.5时,对外部阻抗不做限制。


        选择什么样的方式处理信号,与芯片内OPA、PGA精度并无关系。建议使用独立运放(注意我讲的是独立运放)的原因在于减小外部干扰的影响,这样小的信号在传输至ADC前会极大的受到外界的干扰,ADC很难分辨出什么是噪声什么是信号本身,就近将信号进行放大处理可以有效的规避该问题。光电器件我不了解,应该是有跨阻放大器一类的作为前级信号处理,这一块的设计需要自行开发设计。如果您在芯片的使用过程中还有其他问题,可以发送邮件与我联系。邮箱:lbw@wch.cn


只有登录才能回复,可以选择微信账号登录