OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 2505|回复: 4

想用STC单片机的PCA功能做个双积分AD转换电路,发现测试数据跳动很大。

[复制链接]

  离线 

9

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2014-5-28
在线时间
16 小时
发表于 2015-3-13 09:43:13 | 显示全部楼层 |阅读模式
5金钱
其实是抄别人的电路。
原理大致是这样子的:
1.首先对被测信号(0-100mV)进行定时积分,20ms。
2.单片机控制切换模拟开关,运放变为对基准电压信号(200mV)积分,看积分电路的输出什么时候能够达到2.5V。
3.一旦达到2.5V,单片机控制模拟开关,再次切换到被测信号,周而复始。




主程序是这么写的。
[C] 纯文本查看 复制代码
void main(void)
{
    init();
    Delay20ms();
    while(1)
    {
    if (PCAFlag == 1)
    {
        SendData(CCAP0H);				  //发送捕获时间低位
        SendData(CCAP0L);				  //发送捕获时间高位
        P1 &= 0xf0;  				          //切换到基准电压通道
        P1 |= 0x02;
        EA = 0;						  //关闭中断

        Delay20ms();					  //对200mV基准电压积分20ms

        EA = 1;						  //开中断
        CH = 0;						  //PCA计数器清零
        CL = 0;	 

        P1 &= 0xf0;					  //切换到被测通道 
        P1 |= 0x07;

        PCAFlag = 0;					  //捕获标志位清零
        RUNLED = !RUNLED;             
        }
    }
}
以下是测量50mV电压,串口接收过来的数据:
37 7B  37 86  37 90  37 97  37 A1  37 A9  37 B3  37 BC  37 62  37 74                十六进制数
14203 14214 14224 14231 14241 14249 14259 14268 14178 14196               十进制数
感觉跳动太大了。

2PT_0_3.zip

60.67 KB, 下载次数: 895

回复

使用道具 举报

  离线 

486

主题

9万

帖子

30

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
121737
金钱
121737
注册时间
2010-12-1
在线时间
985 小时
发表于 2015-3-13 23:08:11 | 显示全部楼层
回复

使用道具 举报

  离线 

9

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2014-5-28
在线时间
16 小时
 楼主| 发表于 2015-3-14 11:30:27 | 显示全部楼层
谢谢帮顶。
在21上也发了贴,有位朋友说可能是软件20ms延时不精准的原因。不过我想这个20ms其实不是要求那么精确,只要每次延时的时间都是一致的就行。
也试着将PCA的计时器的时钟源有Fosc/12改为Fosc/2,结果测试数据还是蹦。
也怀疑过运放和积分电容,将抄袭目标板的运放和电容置换过来,现象依旧。
回复

使用道具 举报

  离线 

9

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2014-5-28
在线时间
16 小时
 楼主| 发表于 2015-3-20 11:45:31 | 显示全部楼层
找到了,是串口发送数据影响了误差,当PCAFlag标志有效后,不应在此时将计数值发出去,而应立刻切换到基准信号通道。否则会由于串口发送占了一定时间,使被测信号的积分时间变长,对基准信号的积分时间段的开始位置就相应延后,最后对捕获值造成了影响。
回复

使用道具 举报

  离线 

0

主题

1

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2017-10-27
在线时间
5 小时
发表于 2018-1-25 11:10:26 | 显示全部楼层
请教群主,U10A的反向输入端接到哪儿?谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-2-20 15:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
/* */