[硬木课堂] AFE03示波器信号源扩展板
简介
配合H750核心板使用的示波器+信号源模拟前端扩展板
简介:配合H750核心板使用的示波器+信号源模拟前端扩展板开源协议
:GPL 3.0
描述
本项目仅供电路设计参考,欢迎大家根据自己的需求进行二次开发设计
本项目的io分配仅适用于硬木课堂的H750核心板,具体分配情况请看原理图
本项目如需打板请直接使用附件中的Gerber文件,防止PCB文件出现问题
成品效果如上图所示 👆
软件代码在附件中!
信号调理电路的实现:
下面我们先简单介绍AFE03板卡上的模拟输入和模拟输出通道,后续我们再详细介绍设计和计算方法。
模拟输入通道介绍:
包括了电阻分压和运算放大器实现的信号调理,和比较器实现的方波输出(供触发和测频使用)。
INA、INB:示波器的输入端,口袋仪器发出模拟信号与此处连接,这里通过电阻串联分压实现1MΩ的输入阻抗,并产生两个信号供选择,一个输入直通,一个衰减为1/20。
gain:选通开关,选择直通信号或衰减为1/20的信号进入第一级同相放大器,同相放大器完成两个工作,第一是将同相端输入信号放大两倍,二是将放大后的信号平移1.65V,计算公式为Vo = 1.65 + 2*Vi。因此,对应电路整体增益为2倍或1/10倍。
AnalogA、AnalogB:经过同相放大器放大和平移后的模拟信号与STM32H750开发板连接,进入H750的ADC中;
TrigerA、TrigerB:AnalogA、AnalogB与直流参考电平(由H750的一路DAC产生)经过比较器后产生的方波信号,进入STM32H750的定时器进行测频。
DAC_OUT2: 直流参考电平,通过STM32H750配置内部DAC2发出。
模拟输出通道介绍:
包括了电阻分压和运算放大器实现的信号调理,和比较器实现的方波输出(供触发和测频使用)。
STM32H750的DAC1输出的范围为0-3.3V的波形。
两阶RC滤波器,实现低通滤波器功能。
电阻分压和缓冲器,将5V输入变为低阻的2V输出,后续放大-5倍用于平移输出信号。
输出放大器,完成两个功能,第一将同相端输入放大6倍,第二将放大6倍后信号平移-10V后输出,计算公式为Vo=-10+6*Vi;
分压网络,用于输出小信号时利用模拟电路分压来获得好的效果。
下面我们来详细介绍一下模拟电路的计算:
模拟输入通道计算:
本节需要大家对运算放大器有一定的基础知识。
首先,我们要认识到当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,可以让采样结果准确可靠。
如上图,在1M欧姆输入分压电阻后面我们加入一个信号开关(继电器或手动开关),用于选择INB是直接进入运放同相端还是分压到1/20之后进入,两种方式对于INB来说输入阻抗都是1M欧姆。当我们需要采集小信号时,我们可以拨动开关使用直通输入来获取更精确的测量结果。
可以计算得到:当选择直通输入时,Vo = 2AIN + 1.65,而当选择衰减输入时,Vo = AIN/10 + 1.65
模拟输出通道计算:
当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Ω。
比较器电路:
为了实现触发功能和频率计功能,我们在板上设计了两路比较器通道,将两路模拟输入通道进入ADC前的波形转换为方波信号给H750的定时器输入使用。这里之所以使用进入ADC前的波形进行比较,是因为进入ADC的波形经过前端模拟电路调理已经落到已知的0-3.3V范围之内,这样比较器的比较门限容易设计。
如上图,H750利用内部的DAC2输出一个0-3.3V的直流,来和进入ADC前的通道2波形进行比较,将通道2的波形变为方波,这样H750的定时器功能就可以利用方波信号进行中断处理和定时器捕获处理。
评论