(更新)基于STM32的数字示波器设计(完整的设计资料) 前言 是德科技(NYSE:KEYS)-原安捷伦电子测量事业部,是全球电子测量技术和市场的领导者,致力于推动无线通信、模块化和软件解决方案的持续创新,专注于为客户提供卓越的测量体验。是德科技提供的电子测量仪器、系统、软件及服务广泛应用于电子设备的设计、研发、制造、安装、部署和运营。 此次,是德科技为工程师分享了包括示波器、物联网、5G通信、汽车电子等热门领域的技术知识,手把手教会工程师如何通过示波器行之有效的实现相关领域的专业测试测量。 从朋友得知ST公司在搞活动,可以申请STM32F429的探索套件,作为穷学生一枚的我不免动了心。大二上学期参加完全国大学生电子设计竞赛之后闲来无事,就自己做了一个数字示波器来作为学习STM32的实战检验,前后花费了大概1个月的时间完成了初稿,之后又断断续续的完善我的示波器,并且为它编写了上位机程序和制定了通信协议。使用了前端程控模拟电路和上层电路板,uCOS-II,uCGUI,FFT,SD,上位机等等,现在因为参加老师的项目研发也就暂时闲置了下来,之前就打算在各大论坛开源,但是一直没有时间整理设计文档,恰巧现在ST公司这个活动,所以就全部开源分享给大家吧,一起学习。 下一步计划重新设计模拟电路部分使用CPLD和高速AD实现更高的采样率。 硬件平台: 1. 主控器:STM32F103ZET6 64K RAM 512KROM 2. 屏幕器:SSD1963 3. 分辨率:480*272 16位色 4. 触摸屏:TSC2046 5. 模拟电路:OP-TL084 OP-U741 SW-CD4051 CMP-LM311 PWR-LM7805 -LM7905 -MC34063 -AMS1117-3.3 DRT-ULN2003 6. 继电器:信号继电器 7. 电源:DC +12V 注:芯片的数据手册等信息可以在集成电路查询网站搜索https://www.datasheet5.com/ 芯片询价和在线购买链接 https://www.bom2buy.com/ 软件平台: ※ 开发环境:RealView MDK-ARM uVision4.10 ※ C编译器:ARMCC ※ ASM编译器:ARMASM ※ 连机器:ARMLINK ※ 实时内核:UC/OS-II 2.9实时操作系统 ※ GUI内核:uC/GUI 3.9图形用户接口 ※ 底层驱动:各个外设驱动程序 数字示波器功能: 1. 波形发生器:使用STM32一路DA实现正弦,三角波,方波,白噪声输出。任意一种波形幅值在0-3.3V任意可调、频率在一定范围任意可调、方波占空比可调。调节选项可以通过触摸屏完成设置。 2. SD卡存储:SD卡波形存储输出,能够对当前屏幕截屏,以JPG格式存储在SD卡上。能够存储1S内的波形数据,可以随时调用查看。 3. 数据传输:用C#编写上位机,通过串口完成对下位机的控制。 (1)实现STOP/RUN功能 (2)输出波形电压、时间参数 (3)控制截屏 (4)控制波形发生器 (5)控制完成FFT (6)波形的存储和显示 4. 图形接口:UCGUI 5. 水平扫速:250 ns*、500ns、1μs、5 μs、10μs、50μs、500 μs、5ms 、50ms 6. 垂直电压灵敏度:10mV/div, 20mV/div,50mV/div, 0.1V/div, 0,2V/div, 0.5V/div, 1V/div,2V/div, 5V/div 7. 被测信号的各种参数屏幕显示,包括频率、电压峰峰值等。 数字示波器性能参数: ※ 主控: STM32F103ZET6 ※ 液晶屏: 4.3寸TFT480×272 65K彩色LCD显示屏 FSMC ※ AD: 12位1MHz采样率 ※ 最高实时取样率:1MSa/s 12Bits ※ 取样缓冲器深度:5K ※ 垂直灵敏度:5V,1V,500mV,200mV,100mV,50mV,20mV,10mV; ※ 水平时基范围:2S,1S,500mS,200mS,100mS,50mS,20mS,10mS,5mS,2mS,1mS,500uS,200uS,100uS,50uS,20uS,10uS,5uS,2uS,1uS ※ 输入阻抗:≥1MΩ ※ 最高输入电压:30Vpp ※ 耦合方式:AC/DC ※ 触发功能:实现自动、常规、单次触发方式 ,上升或下降边沿触发 ※ 参数计算:频率、周期、占空比、交流峰-峰值、平均值、光标追踪显示 ※ RUN/STOP 实物展示: 上位机截图: 设计心得分享 由于程序量比较大,所以在程序中我完成了大量的注释,详细的说明了具体的实现方法,其中的示波器原理和FFT原理请自己查阅相关教材。我个人认为最值得参考的就是如何制定一个效率较高的通信协议。我查阅了很多资料最后结合实际设计了一套通信协议,这套通信协议效传输速率理论最大可达16000bps,实际采用10666bps速率传输。协议的编码、解码算法的详细说明附在附件中。随着程序量的增加,F103也渐渐感到比较吃力了,其中FFT的运算就是典型代表,也希望借此机会申请到F429带DSP指令的MCU来进一步提高示波器的性能。 限于目前的知识水平,这套示波器是实践大于理论的产物,其中很多设计存在先天的不足,以后会继续改进,向更高性能迈进。 文章出处: 电路设计技能 |