打印

新人第一次发帖求助,关于模拟开关和ad转换的问题

[复制链接]
3603|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hn0720|  楼主 | 2012-8-30 09:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
如下图所示,模拟开关cd4052选择信号,avr单片机控制cd4052选通哪个通道,后面接放大和滤波电路后接ad转换芯片(adc122s021 200ksps),然后单片机处理信号后通过传送至计算机。
问题是:单片机控制cd4052依次循环选通0,1,3通道采集信号显示,但是显示的信号乱了,比如本来应该0通道有电压信号,显示的时候0通道没有数据,1通道显示的是0通道的电压信号。我觉得是信号通过模拟开关和放大滤波电路有延迟,而ad芯片的采集速度较快。在程序中通道切换间加延时100ms后没问题了,延时时间小了还是有问题,但是cd4052的各种delay time都是ns级的啊,到底是哪里有问题呢?描述的不好大家见谅,先谢谢大家了!

while(1)
  {
          m=spi_read(0x00);   //温度信号
      n=((5*m)/(4095*1.5)-1)/125.4;
      datat=wd_data(n);
      t=datat*100;
      send_data(t);
      
       PORTA&=0xF9;          //压力信号1
      delay(100);               
       m=spi_read(0x08);   
      t=m*500/4095;
      send_data(t);
      
       PORTA&=~BIT(PA2);           //压力信号2
       PORTA|=BIT(PA1);
      delay(100);
       m=spi_read(0x08);
      t=m*500/4095;
      send_data(t);
      
      PORTA|=0x06;        //压力信号3
      delay(100);               
       m=spi_read(0x08);
      t=m*500/4095;
      send_data(t);
      usart_send(13);
      usart_send(10);
      usart_send(9);
      delay(1000);
  }

相关帖子

沙发
庄庄| | 2012-8-30 09:08 | 只看该作者
猜测:    滤波电路会有延时,输入加稳定信号,然后去掉滤波试一试

使用特权

评论回复
板凳
hn0720|  楼主 | 2012-8-30 09:15 | 只看该作者
先谢谢了。
我用电池测试的,输入是稳定的1.3v信号。这样滤波电路会有延时吗?而且延时时间这么长?

使用特权

评论回复
地板
hn0720|  楼主 | 2012-8-30 09:37 | 只看该作者
求指导啊:'(

使用特权

评论回复
5
cemen| | 2012-8-30 10:24 | 只看该作者
楼主的最二个运放低通33Hz

信号频率是多少?
开关频率是多少?

使用特权

评论回复
6
hn0720|  楼主 | 2012-8-30 10:52 | 只看该作者
我测试时用的7号电池,信号是稳定的大概1.3v电压。
开关频率指的是模拟开关切换通道的频率吗?如果是的话这个由程序控制,见上面的程序,中间有延时,不加延时的话显示有问题。
cd4052资料里propagation delay time:address-to-signal out 450ns       signal input to output 30ns.

使用特权

评论回复
7
yxgnba| | 2012-8-30 11:17 | 只看该作者
应该是滤波电路的延时,你去掉滤波电路试试
另外看看你ADC的采样速度,适当的减小ADC的采样速度试试。
模拟开关应该是没有什么问题的。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
hn0720 + 1
8
cemen| | 2012-8-30 12:44 | 只看该作者
6# hn0720

感觉低通滤波截止频率很低,时间常数较大。
建议用楼上方法,先把电容去掉,不进行滤波,然后验证一下采集数据。

使用特权

评论回复
9
hn0720|  楼主 | 2012-8-30 16:48 | 只看该作者
谢谢大家回答了,明白了一点,按照7楼的方法试试了

使用特权

评论回复
10
dqyubsh| | 2012-8-30 20:06 | 只看该作者
mark,等结果。为什么用CD4052,难道好过MUX?

使用特权

评论回复
11
hn0720|  楼主 | 2012-8-31 14:34 | 只看该作者
结果有了,按照7楼兄弟的办法去掉c5,c6两个电容后不需要延时也可以正常显示信号了!果然是滤波电路使信号传输发生了较大的延时。虽然对时间常数等造成延时的原理不大懂,但总算知道问题在哪了,谢谢各位了。

使用特权

评论回复
12
hn0720|  楼主 | 2012-8-31 14:36 | 只看该作者
但是电路的滤波也是必须的啊,而且设定的是滤除工频干扰,截止频率很小,这样时间常数还是很大,怎么解决这个问题?

使用特权

评论回复
13
yanwen217| | 2012-8-31 15:57 | 只看该作者
滤波是必须要加的,唯一的办法就是降低ADC采样速度,加大采样间隔时间。

使用特权

评论回复
14
lzhneubmie| | 2012-12-30 14:29 | 只看该作者
请问这里在多路模拟开关后加采样保持器可以吗?

使用特权

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

本版积分规则

2

主题

26

帖子

1

粉丝