打印
[技术问答]

华大005PA AD问题

[复制链接]
860|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
akenonline|  楼主 | 2021-4-6 11:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AD, dc, ADC, ADCc, se
本帖最后由 akenonline 于 2021-4-6 11:18 编辑

在测试005AD时有个问题请教
1 用分压方法测量12V电池电压,分压电阻30k/3k,ad口外接104电容
2 AD采样用单次采样模式,采样次数15次,去头去尾然后取3数据中值平均
3 MCU主频设为24M,AD工频为1/4主频,采样时钟设为最大12

仿真结果:最大值12.98v 最小值 10.56v,最大误差2.42v

代码如下:
void ADC_ini(void)
{

        Sysctrl_SetPeripheralGate(SysctrlPeripheralAdcBgr, TRUE);  //ADCBGR 外设时钟使能

        //ADC配置
        M0P_ADC->CR0_f.ADCEN = 1u;                                                //Adc_Enable();
        M0P_BGR->CR |= 1u;                                                                //Bgr_BgrEnable();

        stcAdcCfg.enAdcOpMode = AdcNormalMode;                        //单次采样模式
        stcAdcCfg.enAdcClkSel = AdcClkSysTDiv4;                 //PCLK
        stcAdcCfg.enAdcSampTimeSel = AdcSampTime12Clk;        //4个采样时钟
        stcAdcCfg.enAdcRefVolSel = RefVolSelAVDD;                //参考电压:内部vdd,SPS<=200kHz)        SPS速率 = ADC时钟 / (采样时钟 + 16CLK)
        stcAdcCfg.bAdcInBufEn = FALSE;                                        //电压跟随器如果使能,SPS采样速率 <=200K
        stcAdcCfg.u32AdcRegHighThd = 0u;                                //比较阈值上门限
        stcAdcCfg.u32AdcRegLowThd = 0u;                                 //比较阈值下门限
        stcAdcCfg.enAdcTrig0Sel = AdcTrigDisable;                //ADC转换自动触发设置
        stcAdcCfg.enAdcTrig1Sel = AdcTrigDisable;
        Adc_Init(&stcAdcCfg);


}
void Get_AD(u8 CH)
{
        u8 i;
        for(i=0;i<sample;i++)
                {
                        stcAdcNormCfg.enAdcNormModeCh = CH;
                        stcAdcNormCfg.bAdcResultAccEn = FALSE;
                        Adc_ConfigNormMode(&stcAdcCfg, &stcAdcNormCfg);         
                        Adc_Start();
                        while(FALSE != Adc_PollBusyState());
                        AD_VAL=M0P_ADC->RESULT_f.RESULT;        
                }
                Adc_Stop();
        
}

使用特权

评论回复
沙发
名字是啥样| | 2021-4-6 11:32 | 只看该作者
这个不是直接使用DMA就可以操作了吗?不用这么复杂吧。

使用特权

评论回复
板凳
akenonline|  楼主 | 2021-4-6 14:12 | 只看该作者
有用过005的朋友说一下,005的AD误差为什么为这么大?

使用特权

评论回复
地板
caigang13| | 2021-4-7 09:46 | 只看该作者
不应该啊,这误差也太大了吧?

使用特权

评论回复
5
新人小锋| | 2021-4-7 23:36 | 只看该作者
我是用scan模式同时采样时,前面通道对后面通道影响差不多有20%的误差,后来外挂104电容后有所改善,但还是不准,后来和原厂确认可能是AD的输入阻抗不够,推荐我改为单次采样,可以解决

使用特权

评论回复
6
akenonline|  楼主 | 2021-4-8 09:04 | 只看该作者
新人小锋 发表于 2021-4-7 23:36
我是用scan模式同时采样时,前面通道对后面通道影响差不多有20%的误差,后来外挂104电容后有所改善,但还是 ...

我现在就是单次采样,也外挂电容104,输入阻抗由分压电阻确认,改过几个都无效,从K,到十K,百K,结果一样

使用特权

评论回复
7
akenonline|  楼主 | 2021-4-8 09:33 | 只看该作者
新人小锋 发表于 2021-4-7 23:36
我是用scan模式同时采样时,前面通道对后面通道影响差不多有20%的误差,后来外挂104电容后有所改善,但还是 ...

我现在就是单次采样,也外挂电容104,输入阻抗由分压电阻确认,改过几个都无效,从K,到十K,百K,结果一样

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

9

帖子

1

粉丝