又来请教了,魏坤和DIY示波器的高手,我想只用AVR内部的AD,不用外部的FIFO模块,做个示波
外部的FIFO模块和外部的AD在工作时都是独立于单片机的,单片机只要读出数据,然后处理数据在送给液晶显示就可以了,但如果在内部建立一个模拟的FIFO模块和使用一个内部的AD,他们都不能独立于单片机,就是说在AD进行转换的时候,单片机是什么都不能做的,就是说不能读取数据?所以想请教一下大家,有没有什么好的方法能解决这个问题呢?1.定义一个计数器(该变量放在ADC的完成中断里,每转换完一次就加1),用来计算缓冲数组的数据是否已经是存储满的
如果是存储满的话,就关闭掉AD。
2.处理AD所转换的这240个数据,送液晶显示;
3.显示完成后,计数器清零,开启AD在重新在读取新的数据;
不知道这样行不行?实时性会不会很差呢? 主要问题是AD太慢。 楼上有道理。
不过我想如果用TI 的DSP做AD采样怎么样呢?TITMS320F2808做采样?速度是否可以满足? 之所以用内部AD,是因为我们只需要测量信号的频率很低,请给位高手。。帮帮忙。。给点思路 这个问题你来错区了吧,去STM8手持示波仪区吧,那里就是用STM8的ADC直接采数据的,资料比较适合你参考。 楼主的思路是对的,只是单片机的转换速度太慢,用AVR只能看10k以下的波形。AD采样与送显示可以同步进行。不是互相排斥的。 用TI的2812我做过,显示个100K内的波形还是不错的,完全用软触发! 思路是错的,这样你的波形是乱的 1) 要有一个定时器,定时去打开ADC.在定时器里面加一个计数器,等计数器满了以后去显示,并且清零. 顶7楼 总结:
1、一般A/D的采样频率和示波器的带宽比为5-10,也就是说,要想做一个5M的示波器,要25-50M的A/D.
2、图像混乱的问题不是没法解决,可以采用编程实现触发 :
做个低频信号的粗误差显示,可以看到大致样子。要求不高的话,用AVR做练习玩玩也是可以的。 ATXMEGA的AD转换速度可以到2M,看样子直接用的话也有点实用性了。 坛上有M8的,还有开源。
我也试过用m128.
开320个字节的数组作缓冲,AD完成可以查标志位或者中断。 这个网上的开源资料很多,用AVR内部A/D采集波形数据,需要处理好触发条件,才能显示稳定的波形,软件触发
不是太理想,对单次脉冲容易漏触发,最好弄个硬件触发的.
页:
[1]