STM32G0示波笔
简介
基于STM32G030的示波笔
简介:基于STM32G030的示波笔开源协议
:GPL 3.0
描述
基于【STC示波器笔】的升级版
新版本【STM32G4示波笔】已发布,新增DAC功能
使用了STM32G030F6P6单片机,支持双通道的可调频率可调占空比PWM输出,以及ADC双通输入,且将单片机超频到了100M的主频
板子也可集成到其他模块上进行采集
目前功能为:
AD输入电压0-3.3V
12bits @ 5Mhz/12bits @ 2.5Mhz
1-2-5时基步进从200ns到500us
垂直放大1-2-5-10倍
三种触发方式,0-90%的10种触发电平
波形测量功能
1-2-5时基切换PWM输出频率从10MHz到200Hz
10%步进切换PWM输出占空比从0%到100%
3个独立按键多层次菜单切换
1个可编程LED灯
预留USB串口通信,但是我搞不出来摆了
---------
BOM不可信,请自行去X信购买类似封装的元件(指接插件)
FPC座子务必购买上接
---------
代码整理中,暂未开源,目前仅提供固件下载已开源,见上文
若运行过程中出现bug,请通过立创开源/b站私信/评论区或邮箱,本人会及时修改程序并更新。
若需要更多的合作请唯一指定邮箱 Defenver@foxmail.com
------------讲解环节----------
原理其实不难,使用DMA+ADC+TIM循环采样,随后将数据搬运到内核处理即可
而根据实际操作,发现ADC的时钟貌似可以超频,只需要保证AXI总线时钟对齐即可,因此将其超频到100M的ADC时钟,并适当增加采样延时,使得ADC采样速率达到恐怖的5M(TSMC yyds)
定时器采用了TIM1的TRGO,连接到ADC作为时钟触发源,随后DMA一直搬运数据到内存中方便后续处理,此处可见安富莱相关教程了解原理
还有一个PWM输出,这玩意原理非常简单就不解释了,可以参考安富莱的教程来了解原理,总的来说G0相较其他系列,这方面调节方式较为简单
接下来是其他的外设,之前的项目使用的是0.96寸的屏幕,虽然能用但是显示的东西不多,因此此处换了个1.14寸的屏幕
原来的按钮手感太$了,因此这里换了个波轮开关,手感确实好了不少
串口坏掉了,感觉是芯片问题,等后继者修复吧(
最后是软件部分,软件部分和先前两个示波器没多大区别,基本都是把所有东西丢进while(1)里面处理
页面显示部分经典画点函数,触发点部分为了节约代码大小使用了三目运算符来判断,最后是页面切换部分使用了switch语句配合键值来进行对选项的切换等
本项目代码和思路大致如此
实物图见下
------------
评论