开源逻辑分析仪的奇怪现象
首先感谢Roasn的辛勤劳动。今天逻辑分析仪到手就迫不及待地测试了下串口,结果显示很奇怪。发字符串时都不能分析出来,单独发偶数都可以,奇数都不能识别。请教下是什么原因呢?每次重复测试出现的结果都一样。用的是晓奇的电平转换电路,在这里也谢谢晓奇,电路很好用,下载程序到stc单片机飞快。http://cache.amobbs.com/bbs_upload782111/files_18/ourdev_483649.jpg
串口发送0123456789字符串时显示 (原文件名:0123456789.jpg)
http://cache.amobbs.com/bbs_upload782111/files_18/ourdev_483650.jpg
串口单独发字符0时显示 (原文件名:0.jpg)
http://cache.amobbs.com/bbs_upload782111/files_18/ourdev_483651.jpg
串口单独发字符1时显示 (原文件名:1.jpg)
http://cache.amobbs.com/bbs_upload782111/files_18/ourdev_483652.jpg
串口发0x01时显示 (原文件名:0x01.jpg)
http://cache.amobbs.com/bbs_upload782111/files_18/ourdev_483653.jpg
串口发0x02时显示 (原文件名:0x02.jpg)
http://cache.amobbs.com/bbs_upload782111/files_18/ourdev_483654.jpg
串口发0xfd时显示 (原文件名:0xfd.jpg)
http://cache.amobbs.com/bbs_upload782111/files_18/ourdev_483655.jpg
串口发0xfe时显示 (原文件名:0xfe.jpg)
http://cache.amobbs.com/bbs_upload782111/files_18/ourdev_483657.jpg
(原文件名:串口电平转换.jpg) 哪个版本的上位机程序?
波特率是多少?看了一下你的波形,应该是波特率比设置的高了一点,软件没有认出来。
这里只说一下你说的发送0x31的情况:
首先,软件检查起始位,例如波特率9600,起始位应该是低电平持续104.67us,我在软件上设置了2%的容错,也就是说,软件在检测到起码104.67*0.98=102.08us的低电平时,才认为是有效的起始位。你现在的情况就是低电平不到102.08us,所以软件认为你的起始位无效,于是导致解码出错。
你分析一下波形,看看是否我是我说的这种情况?逻辑分析仪的UART解码支持任意波特率,你把解码波特率稍稍设置高一些,解码就会正确了,同时你也可以看到你电路真正的波特率。 软件版本是3.2的,串口发出的是9600,刚试了下软件改成9900确实可以了 还是有点疑惑,便用单片机随便发个了波形出来,频率计显示33.840K,而逻辑分析仪显示55.229,不过已经能正常分析了,谢谢
http://cache.amobbs.com/bbs_upload782111/files_18/ourdev_483687.jpg
(原文件名:频率测试.jpg) 其实你测量一下低电平的宽度就可以算出波特率 我现在用手机上的网,看不清图片,明天再回答你3楼的问题。另外,最好把数据保存后传上来,光看图片我不一定能找到问题 实际测量了下波形宽度,为1461,换算成频率应该为34.223K,这个值就非常接近真实值了。不过还是有点偏高。这个频率和哪个方面有关系呢?我用什么方法可以使他降下来呢 好的,数据已上传
点击此处下载 ourdev_483689.rar(文件大小:2K) (原文件名:频率测试.rar) 我看了你的数据,频率不准是毛刺造成的。
先来看看你采集到得数据放大后的图像:
http://cache.amobbs.com/bbs_upload782111/files_18/ourdev_483717.JPG
毛刺图像 (原文件名:毛刺.JPG)
本来这里应该是一个漂亮的上升沿,但是在这里出现了一个毛刺。软件计算的时候就算多了一个周期,你的数据中总共有220个毛刺,所以算出来的频率就高了许多。
我们再来分析一下毛刺产生的原因,先看看接口芯片74LVC16245的说明:
http://cache.amobbs.com/bbs_upload782111/files_18/ourdev_483713.JPG
74LV16245输入电平标准 (原文件名:16245.JPG)
在3.3V供电的情况下,Vi>2V为高电平,Vi<0.8V为低电平,但是在0.8V和2V之间的电压值就可能是高电平也可能是低电平。
于是,我们可以这样认为,这个毛刺是上升时间太长导致的(或者,甚至有可能说,这个上升沿不太干净,有个“台阶”)。如果你有示波器可以看看是不是像我所说的一样。这个上升时间其实也不是很长,但是,由于你采样是采用10ns档,所以,只要上升时间大于10ns,就有可能出现这样的情况。如果上升沿不干净,有点毛刺,那就更不用说了。而10ns对于单片机来说,那是很短很短的时间(你的单片机没有运行到100MHz吧?)。
曾经,我在测试I2C的时候,也发现这样的情况,后来用示波器一测,原来还真的是原来的信号就有毛刺。阿莫之前测试V1.0固件程序时,用安捷伦的信号发生器发现测量有时频率不准,那是固件问题,在V1.1后已经解决这个问题。
有两个方法可以测试是否我说得这种情况,一是用示波器看看波形是否存在沿太长和沿存在毛刺的情况;二是MicroLA设置低一点的采用周期,如20ns或者50ns,这样应该会没有问题,因为这次采样跟下次采样之间的时间(20ns或者50ns)已经足够上升沿或者下降沿稳定。如果你还是想用10ns采样,那可以把数字滤波打开,软件会把毛刺滤去,这样也是一个办法。 确实是波形的问题,现在用好的方波就没问题了。逻辑分析仪非常好用,试了下I2C,非常准。
页:
[1]