newlove 发表于 2006-4-15 11:00:26

自制逻辑分析仪为什么毛刺如此多?

我是菜鸟,接触AVR一个多月了,最近设计制作了一个USB的逻辑分析仪器,还没有完全完成,但有些问题想请教各位大侠.

先说我的LA的大概结构,和网站上的示例相似,区别是我用的MEGA8和USB接口.

原理就是由MEGA8产生计数脉冲,4040产生计数值送到6116作为地址,外部信号通过245进入6116作为数据.

由于6116存取速度的限制(典型写周期需要150ns),因此本LA(叫LA可能有些夸张了,实际应该叫"数字信号示波器"比较贴切)最高采样频率小于6M,八通道,每通道存储深度为2048位.

我使用INT1"电平变化时触发"作为触发源,这是我想到最简单的办法,虽然功能不强但在简易调试过程中通过多设一个"调试触发口"来看波形还是比较实用的:)



现在碰到一个棘手的问题是采样结果中的毛刺问题,手上没有示波器,非常困惑.

请看附图,这是我采样由51产生的计数信号的P3.0和P3.2脚的结果.

http://cache.amobbs.com/bbs_upload782111/files_5/armok01114786.JPG

51的程序:(省略了头文件等)

void main()

{

        unsigned char key=0;

        while(1)

        {

                P3=key;

                key++;

        }

}

可以看出上面的脉冲周期是下面的4倍,这说明是LA工作是大体正确的.但是其中却有如此之多的"毛刺信号",

我想问大家的是:

1.这些是51的毛刺还是外界的干扰?

2.现在我是将245的外部入口全部加了100K的下拉电阻,请问我还需要什么措施来减轻干扰吗?

3.是否应该在上位机程序中加上软件滤波消除这些干扰? (因为我觉得软件滤波后似乎就不是真实信号了..茫然..)



望大侠不吝赐教!

newlove 发表于 2006-4-15 11:48:56

刚才试验了一下软件滤波.. 效果让我异常惊讶

http://cache.amobbs.com/bbs_upload782111/files_5/armok01114794.JPG

newlove 发表于 2006-4-15 11:50:43

毛刺竟然全都没了!

下面提供我的简单滤波方法程序:

数据都存在BBB数组里.



      int i=0;

      for (i=1;i<2047;i++)

      {

                if ((BBB!=BBB)&&(BBB==BBB))

                {

                        BBB=BBB;

                }

      }

cock 发表于 2006-4-15 12:56:15

先把测量脚接在GND或VCC上,看有没有毛刺,再作进一步的工作,用软件滤波乃是下策.

newlove 发表于 2006-4-15 12:57:43

GND和VCC上都没有毛刺

makesoft 发表于 2006-4-15 14:07:34

软件滤波就失去LA的意义了

zhaoxucsu 发表于 2006-4-15 19:51:27

呵呵,逻辑分析仪分为“逻辑状态分析仪”和“逻辑时间分析仪”两种

逻辑状态分析仪一般是要去除毛刺的

而逻辑时间分析仪相反

newlove 发表于 2006-4-16 11:26:16

那我想做的就是"逻辑状态分析仪"了 多谢大侠指点 不只有什么好办法去除毛刺呢?

包括软件上和硬件上的?

zhaoxucsu 发表于 2006-4-16 15:24:15

每个输入加上时间常数很小的RC滤波?

软件滤波?连续读几次……?

newlove 发表于 2006-4-19 10:37:12

昨晚复习CPLD准备今天考试时突然想到..

毛刺可能不是电路参数的问题 而是我的设计的问题

我现在就出去买芯片 试验一下 有结果后再具体说

armok 发表于 2006-4-19 12:10:41

newlove 发表于 2006-4-21 10:30:39

现在的问题还很多 等把这些毛病都解决了会发资料上来的:)

xshx 发表于 2006-4-21 13:33:59

原来我在制作红外线逻辑分析仪时也有同样情况,改插PC上另一个串口就正常了.

ljmdiy 发表于 2006-4-21 14:18:45

菜鸟来了   会不会和CPLD的使用类似   出现冲突啊?   能采用时钟同步吗?   其实我并不清楚你这个逻辑分析仪的:(    随便说两句哈

newlove 发表于 2006-4-21 21:15:56

以前用74245是巨大的错误 后来用573也不行 只能用574 其中的道理就是"电平触发"和"沿触发"的差别



制作资料:

http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=621661&bbs_page_no=1&bbs_id=1000
页: [1]
查看完整版本: 自制逻辑分析仪为什么毛刺如此多?