
开源协议
:LGPL 3.0
(未经作者授权,禁止转载)描述
本次立创训练营使用硬木课堂的H750核心板来制作简易示波器拓展板,在日常电子制作中可以简单的使用此示波器来进行简单的测量。
H750核心板介绍:
硬木课堂H75核心板购买链接硬木课堂 STM32 电赛学习板 开源口袋仪器 软件无线电 FM对讲机-淘宝网 (taobao.com)
H750采用STM32H750VBT6这款MCU,带DSP和DP-FPU的高性能ARM Cortex-M7 MCU,具有128 KB Flash、1 MB RAM、480 MHz CPU、一级缓存、外部存储器接口、JPEG编解码器、硬件加密和大量外设
如果有动手能力的也可以直接将芯片集成在示波器拓展板上面,节约成本,减小示波器的整体体积。
简易示波器拓展板介绍
核心板和拓展板的引脚连接位置,可以直接将示波器拓展板插在核心板上面。
电源部分介绍:
拓展板通过板载TYPE-C供电,也可以从核心板供电,两种方式供电都能正常使用,示波器需要不同电压的电源,通过线性稳压器LD1117-3.3将5v电压转换为3.3v给信号继电器提供电源。5v的电源也通过MT3608电源芯片和LCD等元件转出-12v、+5v、+12v的电源,供给给示波器运放使用。
示波器用电源供电需要注意相对应的电阻阻止需要正确无误,否者可能导致示波器的波形显示偏差过大的问题。
当STM32H750的VREF用3.3V供电时,STM32的ADC输入范围为0-3.3V,而我们的输入信号最大是±15V,所以我们需要解决大信号输入不能饱和的问题,
解个方程:
15*a+b = 3.3
-15*a+b = 0
得到a=0.11,b=1.65
就是说我们需要将输入信号至少衰减到0.11倍(约衰减为1/9),再加上1.65V直流,就能满足ADC的满量程输入。于是我们使用下面的运算放大器电路,电阻网络完成1/20衰减,运算放大器实现x2倍放大器和1.65V电压平移,从而实现了0.1INB+1.65V;
可以使用叠加定理来分析这个电路,首先分析输入信号INB对输出Vo的贡献时,将电路中另一路电压源-1.65V接地,这样输入信号经过R14和R18后被分压到1/20,接着被同相放大器电路放大2倍,输入信号的整体增益就是1/10;而分析-1.65V对输出的贡献时,将输入信号AIN接地,-1.65V的放大倍数是-1倍。于是得到输出Vo = -1.65V * (-1) + AIN/10 = 1.65V + AIN/10。
上面的-1.65V由-12V经过电阻分压和缓冲器得到这个电路解决了±15V输入匹配到ADC的0-3.3V输入范围的问题呢,我们还要考虑当输入信号较小时也能够准确采样的问题,例如当10mV信号输入时,经过上面的电路,会衰减到1mV,为了尽可能保证输入信号的信噪比,我们这里在模拟前端加入切换分档的方式,当采集小信号的时候,使用开关选择直通INB进入运放同相端,而不再选择INB衰减后的信号进入运放同相端,这样确保进入ADC的信号尽可能大。再配合16位ADC,可以让采样结果准确可靠。
示波器通道介绍:
示波器有双通道输入,通过信号继电器对输入的信号进行调理,需要注意的是输入处的滤波电容24pf、220pf、不需要焊接,焊接会导致示波器拓展板峰峰值偏移过大,通过串联的电阻分压实现1MΩ的输入阻抗,对输入的信号提供两个选择,一个输入直通,一个衰减为1/20。
在1M欧姆输入分压电阻后面我们加入一个信号开关(继电器或手动开关),用于选择INB是直接进入运放同相端还是分压到1/20之后进入,两种方式对于INB来说输入阻抗都是1M欧姆。当我们需要采集小信号时,我们可以拨动开关使用直通输入来获取更精确的测量结果。
可以计算得到:当选择直通输入时,Vo = 2AIN + 1.65,而当选择衰减输入时,Vo = AIN/10 + 1.65
选择直通信号或衰减为1/20的信号进入第一级同相放大器,同相放大器完成两个工作,第一是将同相端输入信号放大两倍,二是将放大后的信号平移1.65V,计算公式为Vo = 1.65 + 2*Vi。因此,对应电路整体增益为2倍或1/10倍。最后经过同相放大器放大和平移后的模拟信号与STM32H750开发板连接,进入H750的ADC中,TrigerA、TrigerB:AnalogA、AnalogB与直流参考电平(由H750的一路DAC产生)经过比较器后产生的方波信号,进入STM32H750的定时器进行测频。
比较器部分介绍
为了实现触发功能和频率计功能,我们在板上设计了两路比较器通道,将两路模拟输入通道进入ADC前的波形转换为方波信号给H750的定时器输入使用。这里之所以使用进入ADC前的波形进行比较,是因为进入ADC的波形经过前端模拟电路调理已经落到已知的0-3.3V范围之内,这样比较器的比较门限容易设计。
H750利用内部的DAC2输出一个0-3.3V的直流,来和进入ADC前的通道2波形进行比较,将通道2的波形变为方波,这样H750的定时器功能就可以利用方波信号进行中断处理和定时器捕获处理。
示波器信号源介绍:
DAC_OUT2: 直流参考电平,通过STM32H750配置内部DAC2发出。包括了电阻分压和运算放大器实现的信号调理,和比较器实现的方波输出(供触发和测频使用)。STM32H750的DAC1输出的范围为0-3.3V的波形。两阶RC滤波器,实现低通滤波器功能。信号源电源部分经过电阻分压和缓冲器,将5V输入变为低阻的2V输出,后续放大-5倍用于平移输出信号。输出放大器,完成两个功能,第一将同相端输入放大6倍,第二将放大6倍后信号平移-10V后输出,计算公式为Vo=-10+6*Vi;分压网络,用于输出小信号时利用模拟电路分压来获得好的效果。
当STM32H750的VREF用3.3V供电时,内部DAC的输出范围是0-3.3V,为了达到题目中要求的±10V输出,我们需要解个方程:
0*a + b = -10V
3.3*a + b = 10V
解得a=6.06,b=-10
可以设计出上图中的电路。
上图中STM32H750内部的DAC输出的0-3.3V的信号,经过低通滤波器后从TL082的同相端输入,构成了放大倍数为6倍的同相放大器,放大后得到波形为0-19.8V;然后我们利用TL082反相放大器部分的-5倍放大能力,将5V分压得到的+2V经过-5倍放大得到-10V,和同相放大器输出的0-19.8V信号叠加得到约±10V输出。计算公式为:Vout = 6*Vin -10。
跟ADC类似,要使信号源输出覆盖±10mV到±10V,同时兼顾大信号范围和小信号精度,DAC的分辨率是个问题。H750的DAC是12位,DAC满量程(也就是4096个码值都用满时)输出是±10V,当我们靠调小DAC码值输出小信号时,要想波形的电压分辨率达到7位精度,也就是波形的垂直分辨率有128个点,只能将波形衰减128/4096=1/32,换算到输出电压范围±10V/32 =±0.3215V,在±0.3125V以下更小的信号,再靠调小码值输出的话,DAC的分辨率就不足了,波形上的台阶就比较明显。于是我们使用模拟分档的方式,当要输出±0.3125V以下更小的信号的时候,使用开关切换电阻分压将波形衰减1/20输出,确保了小信号下的电压分辨率。同时,R57和R62的组合也使得电路在1/20衰减下的输出电阻为50Ω,R5使得电路在x1档下的输出电阻为50Ω。
信号继电器部分介绍:
示波器输入输出通道通过信号继电器达到切换不同挡位的选择。
显示屏部分介绍:
采用2.8寸TFT液晶屏显示屏,分辨率:240*320, 驱动:ST7789V , 接口方式:SPI, 串口屏18PIN插接,购买连接2.8寸TFT液晶屏显示屏240*320 驱动ST7789VSPI串口屏18PIN插接-淘宝网 (taobao.com)
显示屏与拓展板引脚连接座展示。
拓展板拓展接口介绍:
将拓展板上的一些引脚进行引出,可以供测量使用。
按键部分介绍:
使用四个功能按键对示波器的界面进行操作控制,SW1为光标左移、SW2为光标右移、SW3为通道1/2的切换选择开关、SW4为DAC的开关。
旋转编码器介绍:
使用贴片型EC11,方便布线,同时这一款编码器不会触发旋转一次跳两次的BUG,非常不错。
PCB布局走线介绍:
元件摆放布局需要注意电源和运放部分要隔开一点,防止电源干扰,PCB采用4层板布线,内层作为内电层,使用线条分割来走电源线。
后期板子优化可以将SMA接口直接换为BNC接口,这样在使用示波器探头的时候就不需要再转接了,建议替换下图这种BNC,小巧不占位置。
PCB、2D图展示:
PCB、3D图展示:
PCB、3D外壳展示:
3D外壳使用立创EDA绘制简单便捷,外壳边框整体高于拓展板,可以将拓展板嵌入其中,盖上面板后可以保证美观性。
拓展板面板展示:
面板整体采用简约高雅的白色作为低色,在上面点缀上了本次训练营的发起者立创,还有本次训练营的赞助商和技术指导的硬木课堂。
并且对相对应的按键旋钮进行了标识,使用上面更加的简单便捷,同时有了立创吉祥物的加持,可以让你在日常测试中不容易烧板子。
实物PCB展示:
焊接时注意引脚密集的运放芯片和排线插座,不要有连锡、虚焊的情况。
焊接完成后,检查下电源有没有短路的情况存在,如果正常的话,就可以尝试将拓展板插在H750上面上电连接电脑进行烧录了。
这里需要注意的是,H750有两个USB的接口,烧录的时候需要接入CMSIS-DAP的接口使用,正常连接上电脑的时候,DAP接口的LED灯会有规律的闪烁,如果没有闪烁的话需要将电脑端的USB口换一个再试试看,目前得出的信息是最好使用电脑主板上本身自带的USB接口使用比较好,使用USB集线器或着引出到机箱前面板的USB接口会导致电脑无法识别的情况。
烧录链接介绍:
连接上电脑打开烧录文件”5_DAC_1“运行Keil的时候,会提示需要安装STM32的运行库,按提示安装就好了,如下图
安装好后需要添加一下flash编程算法,否者会出现flash报错提示,如下图
出现此报错提示需要设置flash编程算法,如下图
按照上图这样设置就可以正常的编译和烧录文件了。
软件代码部分介绍:
代码直接使用的李工的历程,只对其中的按键和编码器进行了优化修改。
修改按键1和2的光标移动方向,默认的是按键1控制光标往右走,按键2控制光标左移,在代码中调换他们两的扫描位置就可以实现更顺手的按键1往左走,按键2往右走的设定。
编码器器的旋转方向默认是左旋增加数值,右旋减少数值,不是很符合常规的旋转习惯,可以将代码中的标记位置改为下降沿触发,这样就能使编码器左旋减少,右旋增加的效果。
外壳安装介绍:
整体安装使用了两种螺丝和两种隔离柱,型号分别为上图所示,其中螺丝是自己手里边就有的,隔离柱是立创商城购买的,商品编号分别为C5452279、C5452233。
PCB放入3D外壳中的样子:
大小合适,不过外壳底面由于面积较大,应该在绘制底面外壳的时候给内部加上加强筋,以此来加固底面,虽然这样用也没有什么大问题,后面我会去工程里边修改一下外壳,把加强筋加上。
盖上面板展示:
整体体积还算是比较小巧,就是因为想留着核心板的引脚日后他用,要是将核心板的背面引脚剪掉的话,厚度可以再少个1cm左右的样子。
编码器旋钮帽的购买链接铝旋钮编码器声卡电位器内孔6mm旋钮精车高品音量功放调节金属帽-淘宝网 (taobao.com)
按键帽的购买链接A06-01按键帽配4.5*4.5圆头轻触开关按钮帽内径2.3尺寸6*7H(20只-淘宝网 (taobao.com)
为了使显示屏更好的贴合在面板下面,需要对显示屏垫高处理,我使用的是3M泡沫胶,厚度为1mm,叠在一起粘了三层,使屏幕贴合在面板下面。
示波器界面介绍:
最后附上简易示波器的测试使用视频
设计图

BOM


评论