0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何制作功能为自动量程的简易示波器?

电子森林 来源:电子森林 作者:马尚清 2021-04-01 10:15 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

这是南信大马尚清同学的作品

因为本人也没学几天,学识浅薄,有错误问题难以避免。

已经实现的功能

Ain通道示波功能(量程为0-3.3V)

示波器相关数据显示功能(通过二级菜单显示)

波形自动量程功能

仍需完善的功能

波形频率测量(软件测量波形周期代码编写过于简单,测试对于规则的上下对称的波形还可以测量,而对于其他的则测量偏差太大,仍需完善)

未能实现的功能

采样速度的调节功能(对于采样率,时钟之间联系的理解不够,如果简单的改变采样间距会导致波形变形,造成偏差)

快速傅里叶变换(不太能理解快速傅里叶变换是如何实现的,直接带入网上代码也会导致占用空间过大)

上位机通讯功能(对于DMA理解不够,不知道应该如何将DMA中读取到ADC的数据上传到上位机中)

采集板上的音频信号(采集信号波形与实际情况不合,故在设置中将MIC对应的PA1管脚关闭,后续可以继续优化)

实现过程

这个项目是我第一次接触stm32系列的项目,也是第一次用HAL库来开发项目(虽然建议使用LL库来减少空间的占用,但是对于LL库,本人有点更难理解,所以就没有采用)。所以在实现的过程中,遇到了很多的困难,加上HAL库的教程也比较少,并且G031系列单片机也是比较新的产品线,所以没有多少能够借鉴的例子,所以一些看似很简单的功能,在实现他们时反倒难住了我,包括OLED屏幕点亮,ADC采样,波形显示等等问题。

示波器实现过程的原理其实并不困难:由ADC采样到数据,将数据乘以330 除以4096,从而得到实时电压值,在把数据进行量化之后,储存进数组(数组内成员个数需要大于波形显示区域的横向像素点),通过数组的比较函数,得到数组内的最大电压以及最小电压(由于数组的最大值与最小值受到之前测量数值的影响,于是我采用每隔一段时间就复位一次来达到最大值和最小值能够随着测量进行不断更新而不会卡死在某一数值)。

之后进行需要将电压值转换成应在应该显示在屏幕上的坐标(其中我将128*64的OLED显示屏的取107*47作为波形显示部分,因此右侧和下侧显示区域只留有不到16像素点,而正常的OLED显示程序里面字体是远大于此,所以我们需要使用0806字体,否则会造成字体显示错位),如果是固定量程则是由测量值与量程之间的比值得到示波器纵向坐标的比值,从而达到计算出点坐标。如果是动态范围则是测量值与数组范围内最大值与最小值的差之间的比值得到,此外还需要根据最大值和最小值更新网格线旁边的数值,这里就使用sprintf函数来达到不断更新字符串的目的,在通过OLED的字符串显示函数显示到OLED屏幕的指定位置上。之后波形的绘制则是通过ADC不断的采样,写入数组,读取数组,进行画点,更新数组,从而达到连续不断的显示输入波形的效果。

而按键功能的实现可以通过按键中断回调函数(本人使用过程中会出现中断不了的现象,可能是中断优先级配置的问题)或者自行编写按键判断函数,放入while函数中不断循环运行从而达到不断扫描按键的效果。按键触发的逻辑也需要自己仔细的考虑,否则会造成连击,无法触发,循环触发等出乎意料的现象。此外而按键功能的设计一定要有严密的执行逻辑,否则容易造成按键冲突,或者程序卡死。此外需要设立按键标志位,来判断按键触发的次数,从而达到按键多用的功能。

项目的一些细节部分:

波形的显示函数中加入插值函数,这样才能使得示波器有能够轻易看出的连续波形,而不是一个个离散的点。

按键的读取需要进行延时消颤处理,并加上触发判断,不然按键会多次激发,或者不激发,影响操作。

按键多次触发功能是通过按键中断中简单的计数函数来判断按键被按下几次,判断按键是否进行长按与短按则是通过延时判断来的。

波形显示时,需要将超出量程的值限制为最大值,否则会导致显示在其他区域。

自动量程,通过测量值与最小值的差与数组内最大值与最小值差的比来算得测量值应该在OLED屏幕上的坐标,并且将示波器旁的数值改变为最大值与最小值,从而达到动态量程的效果。

示波器的背景网格线最好不要使用图片显示,而使用间隔画点功能,从而达到绘制背景网格线的效果。否则容易造成OLED显示错乱和频闪等情况。

在进行单片机数值计算时候,一定要注意运算完成后,数据类型已经精度问题,否则容易造成数据不准确,甚至错误数据的出现。

实现功能注意事项:

注意OLED屏幕显示函数的位置坐标,有的代码是以默认的OLED最下方一排为0,有的进行了反相。

OLED Clear()函数不能够完全清屏,会有残留。

使用OLED直接操纵点显示的函数时,一定要注意运行频率,否则会造成闪屏。

实现项目的感触

通过这次寒假在家练项目,收获颇丰。通过自己亲自参与到项目的实现过程来,才能够发现问题,分析问题,寻找解决思路,从而解决问题。作为刚刚接触到STM32的萌新,这项项目让我能够快速学习。之前学习他人教程,觉得思路很清晰,实现起来很简单。但是当自己真正的接触到一项陌生的项目,没有现成的答案和结果等着自己的时候,才发现自己原来很多都不知道。正是由于项目中一个个出乎意料的问题的出现,才能逼迫着自己去查找资料,学习大神们写的代码,并尝试自己去解决。

未来完善功能

能够兼容所有波形的频率测算功能

学习快速傅里叶算法,简化FFT函数,使其能够在单片机剩余空间内实现

波形发生器以及其他附加功能的开发

原文标题:具有自动量程功能的简易示波器

文章出处:【微信公众号:FPGA入门到精通】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 示波器
    +关注

    关注

    113

    文章

    6988

    浏览量

    194805
  • 电压
    +关注

    关注

    45

    文章

    5757

    浏览量

    121130

原文标题:具有自动量程功能的简易示波器

文章出处:【微信号:xiaojiaoyafpga,微信公众号:电子森林】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深入解析Keithley 6517B静电计手动量程设置:精准测量的关键步骤与实操指南

    在现代精密测量领域,Keithley 6517B静电计/高阻表凭借其卓越的灵敏度和宽泛的量程范围,成为半导体研究、绝缘材料测试及微弱信号检测的核心工具。手动量程设置作为仪器操作的核心环节,直接影响
    的头像 发表于 12-11 17:17 515次阅读
    深入解析Keithley 6517B静电计手<b class='flag-5'>动量程</b>设置:精准测量的关键步骤与实操指南

    Rigol普源数字万用表DM858自动量程使用教程

    作为RIGOL普源精电旗下的经济型5.5位数字万用表,DM858E凭借高精度、多功能及智能化的设计,成为工程师们的得力工具。以下是其自动量程功能的详细使用教程,帮助您快速上手。   一、开箱与准备
    的头像 发表于 11-13 12:00 183次阅读
    Rigol普源数字万用表DM858<b class='flag-5'>自动量程</b>使用教程

    RIGOL普源示波器DS2000A系列自动测量功能设置指南

    RIGOL普源DS2000A系列示波器凭借其强大的自动测量功能,可快速获取信号参数的精确数据,极大提升测试效率。本文将详细介绍如何设置DS2000A的自动测量
    的头像 发表于 11-13 11:40 213次阅读
    RIGOL普源<b class='flag-5'>示波器</b>DS2000A系列<b class='flag-5'>自动</b>测量<b class='flag-5'>功能</b>设置指南

    横河功率计量程跳跃功能

    横河WT310E功率计量程跳跃功能(即自动量程切换功能)在复杂电力测试场景中至关重要,其作用、设置方法及最佳使用场景如下
    的头像 发表于 11-07 21:26 182次阅读
    横河功率计<b class='flag-5'>量程</b>跳跃<b class='flag-5'>功能</b>

    用普源示波器DH1204自动测量功能提升效率的实用指南

    在现代电子测量中,示波器是工程师不可或缺的工具。普源示波器DH1204凭借其强大的自动测量功能,可显著提升信号分析效率。本文将结合操作要点与实用技巧,为您解析如何高效利用该
    的头像 发表于 10-18 09:59 1075次阅读
    用普源<b class='flag-5'>示波器</b>DH1204<b class='flag-5'>自动</b>测量<b class='flag-5'>功能</b>提升效率的实用指南

    解决罗德与施瓦茨MXO44示波器新探头量程不匹配的实用指南

    作为精密测量仪器,罗德与施瓦茨MXO44示波器在电子工程领域广泛应用。当用户更换新探头后遇到量程不匹配问题时,可能导致测量结果失真或无法正确显示波形。本文将针对该问题提供系统化的解决方案,帮助用户快速恢复示波器的正常
    的头像 发表于 10-14 16:54 368次阅读
    解决罗德与施瓦茨MXO44<b class='flag-5'>示波器</b>新探头<b class='flag-5'>量程</b>不匹配的实用指南

    再探与AI共同设计制作STM32FXXX简易示波器和频谱仪

    qqxjyxjy清风:STM32F407与STM32F743谁更适合作简易示波器和频谱仪的输入调理方案的选择,感觉颇为为难,1.采用输入调理和ADC集成在一起的集成块,带宽和采样频率难以满足;2.运
    的头像 发表于 10-09 18:04 479次阅读

    Tektronix泰克MDO32示波器FFT功能使用指南

    一、引言 在电子工程与信号分析领域,快速傅里叶变换(FFT)是分析复杂信号频谱特性的核心工具。泰克MDO32示波器作为一款高性能混合域示波器,其内置的FFT功能为用户提供了强大的频谱分析能力,可广泛
    的头像 发表于 08-18 17:02 850次阅读
    Tektronix泰克MDO32<b class='flag-5'>示波器</b>FFT<b class='flag-5'>功能</b>使用指南

    是德示波器MSOX3054T远程控制自动化测试

    在现代电子测试领域,自动化测试技术已成为提升效率、降低人力成本的关键。是德示波器MSOX3054T作为一款高性能仪器,其远程控制自动化测试功能为工程师们打开了全新的效率之门。本文将深入
    的头像 发表于 07-08 17:09 508次阅读
    是德<b class='flag-5'>示波器</b>MSOX3054T远程控制<b class='flag-5'>自动</b>化测试

    是德示波器MSOX3104A自动测量功能详解与实战技巧

    一、引言 在电子工程、通信调试、自动化控制等领域,示波器是工程师不可或缺的测试工具。是德科技(Keysight)的MSOX3104A示波器凭借其高精度、多功能特性,尤其在
    的头像 发表于 07-03 13:52 416次阅读
    是德<b class='flag-5'>示波器</b>MSOX3104A<b class='flag-5'>自动</b>测量<b class='flag-5'>功能</b>详解与实战技巧

    如何解决罗德与施瓦茨示波器新探头量程不匹配问题

    在电子测量领域,示波器与探头的匹配度直接影响测量精度与效率。当用户为新购的罗德与施瓦茨示波器配置新探头时,若出现量程不匹配(如信号显示异常、测量误差过大等),往往源于探头参数设置、硬件兼容性或环境
    的头像 发表于 06-07 15:32 558次阅读
    如何解决罗德与施瓦茨<b class='flag-5'>示波器</b>新探头<b class='flag-5'>量程</b>不匹配问题

    普源数字万用表DM858自动量程功能操作指南

    在精密电子测量领域,普源精电(RIGOL)旗下的DM858系列数字万用表凭借其5.5位高精度、125次/秒的快速测量速率以及全面的自动功能,成为工程师与科研人员的核心工具。其中,自动量程(Auto
    的头像 发表于 04-27 17:23 791次阅读
    普源数字万用表DM858<b class='flag-5'>自动量程</b><b class='flag-5'>功能</b>操作指南

    泰克示波器余晖功能的使用指南

    泰克示波器作为电子测试和测量领域的佼佼者,其强大的功能和优越的性能深受工程师和技术人员的青睐。其中,余晖功能是一项非常实用的特性,能够帮助用户更好地观察和分析周期性信号的特征。本文将详细介绍如何开启
    的头像 发表于 03-26 17:48 1421次阅读
    泰克<b class='flag-5'>示波器</b>余晖<b class='flag-5'>功能</b>的使用指南

    动量感知规划的端到端自动驾驶框架MomAD解析

    端到端自动驾驶框架实现了感知与规划的无缝集成,但通常依赖于一次性轨迹预测,这可能导致控制不稳定,并且对单顿感知中的遮挡问题较为敏感。为解决这一问题,我们提出了动量感知驾驶框架Momentum-Aware Driving(MomAD),该框架引I入了轨迹
    的头像 发表于 03-18 09:31 1487次阅读
    <b class='flag-5'>动量</b>感知规划的端到端<b class='flag-5'>自动</b>驾驶框架MomAD解析

    泰克示波器的TekHSI功能解析

    您是否曾希望能够更快地从示波器上提取波形数据?在本篇中,我们将探讨TekHSI(泰克高速接口)及其带来的速度提升,并通过一些示例来了解该功能为什么如此便于使用。
    的头像 发表于 02-12 09:50 952次阅读
    泰克<b class='flag-5'>示波器</b>的TekHSI<b class='flag-5'>功能</b>解析