超值型mcu AT32f423具有低价格高性能的特点,尤其是内置高速度ADC,可以尝试极简的虚拟示波器项目。
评测中完全基于AT32F423 START开发板进行设计和思路验证。
结果也当然遇到一些问题~
项目用到ADC,串口,DAC。
尝试过一些例程之后,基于ADC例程中的software_trigger_repeat例程进行修改编程。改采样端口为A0,DMA照样,采样缓冲区开到10k点,单通道。
采样完成后搜索触发点,然后通过串口上传一帧波形。重复此步骤。
硬件连接如图:
结合了DAC例程中的double_mode_dma_sinewave生成正弦波作为测试信号,PA4,PA5输出:
正弦波调到100kHz的频率,再高ADC部分采样失真就比较显著了。
上位机的显示窗口一般是500~1000点,更多的话串口传输就比较慢了,而且有些串口波形显示的工具也不够稳定,会失去响应。
综合试验了不少工具,没有非常适合的,效率较好的vofa+波形只能滑动刷新,导致每帧波形中间会有推移划线的步骤。效果不大好,但是该软件比较稳定。
serialplotter也还好,也是滑动波形的。
serialchart更新波形比较合适,是逐点刷新,其余波形不用移动,但可惜这个软件太容易卡死,显然是处理大吞吐量不行。
而且这些串口工具协议也不够精简,字符模式编程比较简单,但是传送数据也要多些,一个点的数据要5个字节。
恐怕还是专门做个pc端工具才会好些(当然要做好也不容易)~
再看雅特力的AT32f423,芯片是很好的,工作稳定,性能也比较强,算下来五十个点采一个正弦波看起来还不错。
不过因为数据变化太快,程序搜索触发点的数据还是会有些跳动(每点之间的数据差大概也有两百),但对于低频变化慢的信号这样设计精度也就够了。
好处是硬件电路极为精简。要提升高频率的触发精度得用硬件触发,又似乎不值得了~
代码修改都基于main里,见附件
main.zip
(10.52 KB)
|