eric2013 发表于 2017-10-17 01:47:54

【二代示波器】事隔三年后开启二代示波器的设计工作,性能将更强劲,向专业示波器设计靠拢,已经发布

static/image/hrline/4.gif
前言
感谢大家这几年对我们安富莱电子的支持,无以为报,奉上今年的年末福利,祝大家春节快乐。
一代示波器发布于3年前:链接,现在已经升级到二代,软件性能已经比较强劲,但依然有值得升级改进的地方,目标只有一个,希望能够在实际项目上帮到大家。
强烈推荐大家看下炫酷的视频效果展示^_^

一. 制作二代示波器的意义在哪里
1、二代示波器突出实战性,突出娱乐性的项目已经发布过两款综合设计:
(1)F429开发板RTOS+emWin+FS+TCP/IP+USB+CAN+Modbus综合Demo:链接。
(2)原创开源,极具可玩性的高端玩法,使用F429外接32位SDRAM虚拟VNC桌面,无需显示屏:链接。
2、 本次工程延续以往的代码风格,从底层BSP驱动包到应用代码,变量命名,文件命名,程序框架,注释等都比较规范,大家阅读或者移植都会比较方便。另外,阅读代码时,务必将编辑器的缩进参数和TAB设置为4来阅读本文件,否则显示不整齐。
3、硬件是基于F429自带的ADC实现双通道2.8Msps采样率,相对比较low,但是软件性能比较强劲,算是这几年实战经验的分享,特别是波形快速无闪烁刷新、波形缓冲浏览、滑动调节波形、RTOS框架、GUI框架、数字信号处理等,示波器只是起到一个载体的作用。这些都极具项目实战价值,也正是推出这个二代示波器的意义所在,希望能够在实际项目中帮到大家。
4、负责的说,这个二代示波器从上电无闪烁整体加载,波形快速刷新,数值窗口更新到窗口开关切换,每个细节的点,基本都做了很多方案的测试,选择了最优化设置,详情可看教程说明。
5、波形刷新速度方面,在600*400显示区,仅刷新一路波形,速度可以飙到将近40帧。现在为了降低CPU利用率,更新界面,刷两路波形和FFT频谱,将刷新速度固定在20帧,刷新常见波形,全程无闪烁感。只有比较复杂的,覆盖大范围显示区的波形才会有闪烁感。
6、任务栈,FFT,FIR等需要频繁操作的变量,全部使用CCM RAM。
7、配套了RTX,uCOS-III和FreeRTOS三款主流RTOS的支持,算是三款系统的综合实战。
(1)基于uCOS-III+STemWin+FatFS+ARM_DSP_Lib版本。
(2)基于FreeRTOS+STemWin+FatFS+ARM_DSP_Lib版本。
(3)基于RTX+emWin+RL-FlashFS+ARM_DSP_Lib版本。

总的来说, F429的性能已经被开到最大马力,能想到的各种性能加特已经全部开启,并且MDK编译器也是开启最高等级优化和超给力的时间优化。

二、注意事项(重要,必读)
1、仅作了MDK版本,IAR版本暂时不做了。
2、测试例子前,务必看视频演示和教程第2章节的操作说明。
3、仅支持800*480分辨率显示屏,电阻屏或者电容屏均可。
4、代码注释已经比较详细。看完教程后,可以直接看代码。
5、程序默认是STLINK下载,如果使用其它下载器,请根据需要选择下载器类型。
6、FFT,FIR,普通触发,频率估计和水平滑动浏览波形缓冲,仅对波形通道1做了支持。而其它功能,波形通道1和通道2都支持。
7、电阻屏需要校准,实体按键K1用于校准功能,不管当前处于那个界面,随时随地都可以校准。电容屏无需校准。
8、RTX操作系统版本的例子限制使用MDK4.74,其它的版本不限制,使用MDK4.7X以及MDK5均可。另外不支持MDK前段时间发布的MDK5.24a,因为这个版本不支持MDK4创建的工程转换为MDK5了,所以要使用这个最新的版本,需要给MDK5安装MDK4的兼容包了。

三、开启MDK最高的3级优化,同时开启相当给力的时间优化


四、RTOS系统调试
RTX调试组件效果展示

uCOS-III使用uC/Probe的效果展示,使用uC/Probe务必要关闭MDK所有优化



static/image/hrline/4.gif
五、程序下载
http://www.armbbs.cn/static/image/filetype/zip.gif基于FreeRTOS+STemWin+FatFS+ARM_DSP_Lib二代示波器Demo.rar (9.03MB)
http://www.armbbs.cn/static/image/filetype/zip.gif基于RTX+emWin+RL-FlashFS+ARM_DSP_Lib的二代示波器Demo.rar (6.05MB)
http://www.armbbs.cn/static/image/filetype/zip.gif基于uCOS-III+STemWin+FatFS+ARM_DSP_Lib的二代示波器Demo.rar (7.11MB)


static/image/hrline/4.gif
六、视频演示
手机拍摄的,效果不够艳丽,不过不影响性能展示。另外,由于实现的功能比较多,没有做全面展示,详情看教程即可。
强烈推荐大家看视频演示
https://v.qq.com/x/page/v0549377211.html

https://www.bilibili.com/video/BV1Jb4y1Q7hc?spm_id_from=333.999.0.0

static/image/hrline/4.gif
七、二代示波器教程
教程中对各种方案选型,效果对比,设计优化等做一个全面的说明,算是一个比较完整的论文设计了,不过更详细的实现需要大家直接看代码,代码注释已经比较详细。
https://www.armbbs.cn/static/image/filetype/pdf.gif安富莱_STM32-V6开发板_二代示波器设计教程(V1.0).pdf (8.31MB)




static/image/hrline/4.gif
八、二代示波器介绍
















eric2013 发表于 2018-2-7 14:27:57

==============================================================
                                             备份曾经奋斗的那些个日日夜夜
==============================================================

发布时间估计是今年春节放假前,跟我们以往的年末福利一样。
第1版示波器发布于2015-01-15,纪念下:http://www.armbbs.cn/forum.php?mod=viewthread&tid=3886 。
二代示波器是作为2017年的年末福利发布。做这个的目的主要是把一些项目中实战经验分享给大家,单纯的分享技能不够给力,通过一个综合Demo更有参考价值。经过这几年的锻炼,自身的能力也有了一点点的提升,是时候推出二代示波器了。
==================================
临时内容:
1. 平台,我们的V6板子,前端模拟电路什么的都设计好了。我们做的一些ADC,DAC模块争取也做进来。算是一个综合测试仪吧。
2. 体验下F429超快速波形刷新的效果,看看40帧的刷新性能,具体采用8位色还是16位色,待测试。专业级的示波器刷新效果得花不少精力去测试。
3. 波形的测量功能再做的完善写,比如频率估算等。另外再加入一个U盘或者SD存储波形文件的功能。
4. 准备做一个专业级的文档,曾经的毕业设计论坛估计都没有这么用心过,将设计过程中的选型,参数对比,优化等做一个全面的说明,方便大家直接看自己需要的那部分功能。
5. 信号处理这块,首先把FFT做的专业些,幅值谱,对数谱和类似瀑布的谱线,再加几种窗口特效。然后IIR,FIR这些做个实时滤波。同时,考虑把小波多分辨率加进来。
6. 做示波器最最麻烦的地方是多任务,多功能直接的协调设计,也就是架构设计,架构搭建不合理以后升级都比较坑,而且系统也不稳定。
7. RTOS系统的话,这次争取务必是uCOS-III,RTX和FreeRTOS都搞上。
8. 以前打算同步发一个网络版和USB版的虚拟示波器,估计精力有限,把前面的设计好就够了。


暂时说这么多吧,后面再补充。


2017-11-03
正式开工。
2017-11-05
测试高速波形刷新方案,目标是30-40帧的600*400显示区波形刷新效果,无任何闪烁感。
2017-11-07
攻克第一关,初步实现高速刷新效果。
2017-11-09
布局界面效果,布局还有点麻烦,还在调试设计中。

2017-11-10
波形基本刷了半屏的显示区,即600*400波形区域的一半,现在的刷新速度是33帧,全程无闪烁,下一步开始添加数据采集功能,再进一步完善这个界面。
https://img.anfulai.cn/dz/attachment/forum/pw/Fid_12/12_58_04128e7e8cc7e8d.jpg?93

2017-11-13
STM32F429的3ADC快速交替采样,使能DMA,定时器触发。在触发频率高的时候达到了总线矩阵的最高极限,此时有ADC无法正常工作,详情看此贴:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=61363

2017-11-14
现在测试3个ADC分别独立采用DMA+定时器触发方式的快速交替采样可以正常工作在6Msps,所以觉得采用这种方式了。准备开启下一步工作的。

2017-11-18
将测量功能和FFT功能都已经加上了,开始添加示波器前端模块。

2017-11-21
示波器前端模块衰减有问题,暂时不搞它了。
开始将示波器修改为双通道,工作量有点大,先完成了一部分
https://img.anfulai.cn/dz/attachment/forum/pw/Fid_12/12_58_3ff3a74980e80c3.jpg?83


2017-11-24
界面效果已经初步定型,还差一个U盘插拔的图标展示。开启进行逐渐具体功能的实现和优化。
https://img.anfulai.cn/dz/attachment/forum/pw/Fid_12/12_58_ae4db23984661b6.jpg?65


2017-11-28
1. 解决显示屏开机瞬间闪烁和复杂界面的窗口及其控件不能同时显示的问题,追求极致体验。
2. 解决页面切换瞬间的刷背景效果。


2017-12-02
将数据处理和GUI任务分开。


2017-12-04
添加频率估计等功能。

2017-12-07
1.实现低速波形采集。
2.实现滑动调节波形上下移动。
https://img.anfulai.cn/dz/attachment/forum/pw/Fid_12/12_58_d7a86226f5ebc9b.gif

https://img.anfulai.cn/dz/attachment/forum/pw/Fid_12/12_58_7e83c21edf2cddd.gif
2017-12-12
1. 解决普通触发和自动触发问题,当前可记录2KB的波形数据,并可以进行浏览。
2. 水平和垂直测量继续使用。

2017-12-15
初步实现水平滑动浏览波形缓冲区。GIF效果图看此贴:http://www.armbbs.cn/forum.php?mod=viewthread&tid=81341

2017-12-25转移论坛耗费了很多时间,本周进入加速设计模式。

2017-12-30
完成二代示波器的信号发生器界面效果设计,支持正弦波,方波和三角波的频率,幅度,占空比设置 。
详情看此贴:http://www.armbbs.cn/forum.php?mod=viewthread&tid=82114&extra=page%3D1

2018-01-04
开始进入RTX系统版本的收尾工作。


2018-01-08
这两天完成RTX系统版本后,开始uCOS-III版本制作。。

2018-01-13
RTX版本二代示波器,今天收尾。

2018-01-15
开启uCOS-III版本的二代示波器设计。

2018-01-17
完成uCOS-III版本的二代示波器设计。

2018-01-20
二代示波器的RTX,uCOS-III和FreeRTOS的三个系统版本全部完成,开始写教程。

2018-01-26
完成三章教程。

2018-01-30
完成1-6章教程。

2018-02-02
完成1-9章教程。


2018-02-05
完成1-12章教程。


yumeng 发表于 2017-10-17 07:57:08

厉害!

dwj00 发表于 2017-10-17 09:09:21

又要辛苦了

xuerui 发表于 2017-10-17 09:56:30

我觉得贵司搞个iMX RT1050的开发板,比这个肯定火!

feiante 发表于 2017-10-17 10:05:37

这个是要支持的

miaoqiongb 发表于 2017-10-17 10:20:02

我也觉得贵司搞个iMX RT1050的开发板,比这个肯定火!

eric2013 发表于 2017-10-17 10:23:56

回 miaoqiongb 的帖子

miaoqiongb:我也觉得贵司搞个iMX RT1050的开发板,比这个肯定火! (2017-10-17 10:20) images/back.gif

这个不是公司在搞,这个是我一个人在搞啊,不影响公司搞什么,我搞什么,不代表公司搞什么

eric2013 发表于 2017-10-17 10:24:03

回 xuerui 的帖子

xuerui:我觉得贵司搞个iMX RT1050的开发板,比这个肯定火! (2017-10-17 09:56) images/back.gif

这个不是公司在搞,这个是我一个人在搞啊,不影响公司搞什么,我搞什么,不代表公司搞什么

roguebear 发表于 2017-10-17 21:03:19

参考金沙滩 能达到商业示波器的指标不。。 可以直接卖产品了

eric2013 发表于 2017-10-18 00:45:15

回 roguebear 的帖子

roguebear:参考金沙滩 能达到商业示波器的指标不。。 可以直接卖产品了 (2017-10-17 21:03) images/back.gif

做专业级别的比较耗时间,而且还不一定能够搞定,能够实现基本指标就可以了

byccc 发表于 2017-10-18 00:55:36

china_fan 发表于 2017-10-18 08:44:52

stm32_2017 发表于 2017-10-18 16:52:36


带宽多少呀

eric2013 发表于 2017-10-18 18:06:23

回 stm32_2017 的帖子

stm32_2017:  
带宽多少呀 (2017-10-18 16:52) images/back.gif

可怜的10MHz,不过程序的项目参考价值还是很大的,像现在很多项目要做波形显示,故障记录等

lifeng5478 发表于 2017-10-19 09:14:48

牛逼!!!!!

stm32_2017 发表于 2017-10-19 11:26:43

zwmasdf 发表于 2017-10-19 15:44:28

建议二代采用HAL库,,然后开O3优化等级(可使用部分O3优化),效果会更上一个层次

eric2013 发表于 2017-10-19 15:53:21

回 zwmasdf 的帖子

zwmasdf:建议二代采用HAL库,,然后开O3优化等级(可使用部分O3优化),效果会更上一个层次 (2017-10-19 15:44) images/back.gif

不打算搞HAL了,仅以后的V7板子配套下HAL。因为现在V4,5,6板子已经快2000个例子了,而且大部分都是MDK和IAR两个版本,升级也是麻烦事。

对于F1和F4系列来说,现在的标准库已经非常成熟,升级价值不大,而且例子已经做的很全面了。

另外关于优化问题,可以看我之前做的V6综合Demo,三级优化全开,而且开启时间优化,时间优化最重要,这个是提升性能的关键:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=17330

eric2013 发表于 2017-10-27 18:05:54

开工时间定于2017-11-01

f407用户 发表于 2017-10-28 10:17:25

顶起来!!!!!!!!!1

ytqiqiang 发表于 2017-10-28 10:31:56

强烈支持,特别是按照自己的兴趣学习很好,很赞同

leiyitan 发表于 2017-10-29 08:29:01

可以在GITHUB上做一个镜像,以便更多的人参与进来。为让不让太多人干扰到版主的工作,可以不定期更新。

eric2013 发表于 2017-11-3 02:38:45

2017-11-03
正式开工。

star_66666 发表于 2017-11-3 09:09:23

stm32_2017 发表于 2017-11-3 16:59:35


终于开始了!!!!!!!!!!

eric2013 发表于 2017-11-5 03:44:20

2017-11-05
测试高速波形刷新方案,目标是30-40帧的600*400显示区波形刷新效果,无任何闪烁感。

songguoda 发表于 2017-11-6 09:37:21

eric2013 发表于 2017-11-7 02:03:02

2017-11-07
攻克第一关,初步实现高速刷新效果。

eric2013 发表于 2017-11-9 02:15:53

2017-11-09
布局界面效果,布局还有点麻烦,还在调试设计中。

passteen 发表于 2017-11-9 11:04:46

硬汉真是马不停蹄啊

eric2013 发表于 2017-11-10 01:03:46

2017-11-10
波形基本刷了半屏的显示区,即600*400波形区域的一半,现在的刷新速度是33帧,全程无闪烁,下一步开始添加数据采集功能,再进一步完善这个界面。

eric2013 发表于 2017-11-13 01:25:21

2017-11-13
STM32F429的3ADC快速交替采样,使能DMA,定时器触发。在触发频率高的时候达到了总线矩阵的最高极限,此时有ADC无法正常工作,详情看此贴:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=61363

eric2013 发表于 2017-11-14 10:58:35

2017-11-14
现在测试3个ADC分别独立采用DMA+定时器触发方式的快速交替采样可以正常工作在6Msps,所以觉得采用这种方式了。准备开启下一步工作的。

eric2013 发表于 2017-11-18 01:17:47

2017-11-18
将测量功能和FFT功能都已经加上了,开始添加示波器前端模块。

mingjie 发表于 2017-11-20 14:54:06

回 eric2013 的帖子

eric2013:这个不是公司在搞,这个是我一个人在搞啊,不影响公司搞什么,我搞什么,不代表公司搞什么
 (2017-10-17 10:24) images/back.gif

你们公司人多吗

mioc_hust 发表于 2017-11-20 22:24:05

开发板已经买了明天送到。。。等你们的成果直接试用了

eric2013 发表于 2017-11-21 01:57:12

回 mioc_hust 的帖子

mioc_hust:   开发板已经买了  明天送到。。。等你们的成果直接试用了 (2017-11-20 22:24) images/back.gif

非常感谢支持

eric2013 发表于 2017-11-21 02:04:28

2017-11-21
示波器前端模块衰减有问题,暂时不搞它了。
开始将示波器修改为双通道,工作量有点大,先完成了一部分
https://img.anfulai.cn/dz/attachment/forum/pw/Fid_12/12_58_3ff3a74980e80c3.jpg?83

eric2013 发表于 2017-11-24 01:55:30

2017-11-24
界面效果已经初步定型,还差一个U盘插拔的图标展示。开启进行逐渐具体功能的实现和优化。
https://img.anfulai.cn/dz/attachment/forum/pw/Fid_12/12_58_ae4db23984661b6.jpg?65

河图洛书 发表于 2017-11-24 09:11:03

回 eric2013 的帖子

eric2013:2017-11-24
界面效果已经初步定型,还差一个U盘插拔的图标展示。开启进行逐渐具体功能的实现和优化。

 (2017-11-24 01:55) images/back.gif

硬汉,期待这个示波器很久了,当初买V6开发板就是为了学习数字信号处理,这个图形界面是基于stwin还是别的gui
页: [1] 2 3 4
查看完整版本: 【二代示波器】事隔三年后开启二代示波器的设计工作,性能将更强劲,向专业示波器设计靠拢,已经发布