打印

ADC采样相互影响

[复制链接]
4704|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
TROAE|  楼主 | 2021-4-9 09:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当通道0采样时,通道1的值是通道0的一半左右,通道1采样时,通道0的值是通道一的一半左右,已经测量了外部电压正确,AD采样值不正确,排除了电路问题。同时也检查了ADC转换时间也符合最低要求。请问是为什么?下面是AD采样程序。
void AdConvert(void)
{       
    if(FALSE == M0P_ADC->CR0_f.START)
{
                switch(channle){
                case 0:
                     adbuf[0]= M0P_ADC->RESULT0_f.RESULT0;
                     channle =1;
         M0P_ADC->CR2 = 1<<channle;  //0x00001000
               
        break;

                 case 1:
                       adbuf[1]= M0P_ADC->RESULT1_f.RESULT1;
                      channle =0;
           M0P_ADC->CR2 = 1<<channle; //0x00000010
                 
        break;
                default: channle =3; break;
                }               
               
                Adc_ClrAccResult();
                Adc_Start();
                waitCnt = 0;

        }
        else {
                if(++waitCnt >= 500) {
                        waitCnt = 0;
                        AdcConfig();
                }
        }
}

使用特权

评论回复

相关帖子

沙发
steelen| | 2021-4-9 09:48 | 只看该作者
两个通道转换时,通道0转换,完成后延时,通道1转换,完成后延时,依此类推

使用特权

评论回复
板凳
TROAE|  楼主 | 2021-4-9 10:08 | 只看该作者
steelen 发表于 2021-4-9 09:48
两个通道转换时,通道0转换,完成后延时,通道1转换,完成后延时,依此类推 ...

对的  我现在就是采样完以后换通道,然后退出采样,等10ms再进入采样

使用特权

评论回复
地板
TROAE|  楼主 | 2021-4-9 10:09 | 只看该作者
steelen 发表于 2021-4-9 09:48
两个通道转换时,通道0转换,完成后延时,通道1转换,完成后延时,依此类推 ...

可是 还是出现这样的问题

使用特权

评论回复
5
steelen| | 2021-4-9 10:26 | 只看该作者
找CPU厂商的技术支持

使用特权

评论回复
6
zlf1208| | 2021-4-9 10:37 | 只看该作者
本帖最后由 zlf1208 于 2021-4-9 10:46 编辑
TROAE 发表于 2021-4-9 10:08
对的  我现在就是采样完以后换通道,然后退出采样,等10ms再进入采样

从采样保持的原理来理解,应该这样做:采样->ADC,切换通道,延时,采样->ADC,切换通道,依此循环,就是要给采样足够的时间,采样是对电容充放电,需要时间。ADC完成后先切换通道,再延时。

使用特权

评论回复
7
coody| | 2021-4-9 10:39 | 只看该作者
切换通道后,先采样2次丢弃,第三次结果开始采用。
延时解决不了的。

使用特权

评论回复
8
madboy21| | 2021-4-9 11:14 | 只看该作者
很多单片机,包括国产的,我都是开AD采样完后关AD,我想应该还是楼主配置出了问题。

使用特权

评论回复
9
madboy21| | 2021-4-9 11:20 | 只看该作者
顺便说一个以前碰到的问题,STM8S001芯片,AN2无论如何都不能采样到正确的数据。这个问题整整一个晚上不能解决,还是万能的网络找到了答案【AN2】引脚说明上带【】需要通过配置位实现,配置位是编程时选项,不是源程序中的代码。

使用特权

评论回复
10
henangongda123| | 2021-4-9 13:41 | 只看该作者
madboy21 发表于 2021-4-9 11:20
顺便说一个以前碰到的问题,STM8S001芯片,AN2无论如何都不能采样到正确的数据。这个问题整整一个晚上不能 ...

【】里面是选项字节,哥哥,玩这个的都知道怎么回事

使用特权

评论回复
11
henangongda123| | 2021-4-9 13:47 | 只看该作者
M0P_ADC->CR2 是通道选择寄存器?

使用特权

评论回复
12
madboy21| | 2021-4-10 15:11 | 只看该作者
henangongda123 发表于 2021-4-9 13:41
【】里面是选项字节,哥哥,玩这个的都知道怎么回事

问题在在于我不知道选项字节在代码中如何实现????

使用特权

评论回复
13
dingfanjing| | 2021-4-10 19:20 | 只看该作者
苏州单片机开发,可以 联系电话:18260216241

使用特权

评论回复
14
henangongda123| | 2021-4-12 08:16 | 只看该作者
madboy21 发表于 2021-4-10 15:11
问题在在于我不知道选项字节在代码中如何实现????

这个确实比较**

使用特权

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

本版积分规则

1

主题

3

帖子

0

粉丝