基于STM32的程控增益放大电路设计
2019-10-29李敏胡飞杨会伟王海欣
李敏 胡飞 杨会伟 王海欣
基于STM32的程控增益放大电路设计
李敏 胡飞 杨会伟 王海欣
(芜湖职业技术学院信息工程学院,安徽芜湖,241006)
系统采用STM32F103作为程控增益放大电路的控制核心,通过I2C总线连接低导通电阻的电子开关芯片ADG715,并将基于µC/OS-II操作系统的I2C程序移植到STM32中,实现多通道程控信号放大调理。设计的电路可用于低频数字示波器信号调理和程控放大,也可作为STM32的嵌入式教学实训平台和相关电子产品的前端检测模块。
STM32;程控增益;放大电路。
1.前言
目前,示波器作为测试分析仪器应用范围越来越广,功能也越来越强大,用户要求示波器不但具有信号采集、处理、分析、显示功能,而且还需具备通信功能[1] [2]。中高端数字示波器长期以来受国外公司垄断。我国的科研院所和高校也一直致力于高端数字示波器的研发设计[1] [2]。在数字示波器硬件架构中不容忽视的部分是前端电路,而前端电路中程控增益放大电路又决定了示波器的采样率和信号完整性,从实际工程应用和文献综述中介绍的程控增益放大电路设计方法很多,使用的程控放大电路器件也很丰富,如有些文献介绍的采用CLC5523作为程控增益放大器的核心器件;采用ARM7嵌入式处理器控制AD603、FPGA芯片TLC2543控制VCA810以及外置控件实现DAC8802程控增益信号放大等电路[3][4] [5] [6]。根据电子信息类专业的嵌入式应用技术、嵌入式操作系统、传感器与检测技术等课程的教学实训需要,同时让学生更好的理解STM32处理器在信号采集处理系统中的应用,掌握µC/OS-II操作系统的移植并应用STM32的I2C、AD、GPIO等库函数的能力,设计了基于STM32处理器的信号调理和程控增益放大电路,采用基于I2C具有低导通电阻特性的电子开关ADG715,该芯片的各通道导通和关断电阻匹配也较为接近,从而保证了各通道信号调理的一致性。借助该平台可开展电子信息类专业课程教学实训和基于µC/OS-II操作系统的STM32平台二次开发。
2.信号调理和程控增益放大电路硬件设计
2.1 信号放大及跟随电路的设计
为保证信号输入通道具有高输入阻抗,在调理电路中选择LM358运放作为放大电路及电压跟随器的设计元件,作为一款低功耗且性价比较高的通用放大器,适合运用于低频信号处理电路的前端部分。在示波器的前端电路中,输入信号经过交、直流切换开关后,输入至电压跟随器LM358同相端,再根据LM358输出信号幅值决定分压电路衰减10倍还是保持不变,然后经过由运放LM358构成的两级反相放大电路,第一级运放实现信号的程控放大,且输出信号和输入信号相反,第二级放大电路实现信号的翻转,保证输入输出信号相位一致。
2.2 模拟多路开关电路设计
在该电路中,选用双线制模拟电子开关芯片ADG715,其工作电压为5V,采用阻容元件构成的上电复位电路,A0和A1是外接多片ADG715的地址输入信号,根据电路设计需要,只连接一片ADG715,因此将两个引脚均置为低电平。为实现程控增益放大,ADG715的S1-S8引脚需要和无源元件连接形成放大电路的反馈部分,在此部分若无源元件选型不合适,那么再好的放大器和转换器也会产生较大误差,电阻作为反馈部分的主要元件,温度系数较大,精度较低的碳膜电阻不适于示波器的前端信号处理电路,因此选用精密金属膜电阻。通过反馈电阻的选择将信号放大设定为若干档位,从而实现放大倍数的调节。
2.3 控制电路部分接口设计
为实现放大电路的增益由小到大逐渐变化,因此需要控制模拟电子开关芯片ADG715的通道,多路选择开关ADG715是具有低导通电阻的I2C总线控制器,采用STM32F103的PB6、PB7作为I2C接口与ADG715的I2C引脚连接,为保证总线正常工作,将I2C的SCL和SDA分别接10K上拉电阻,程控放大电路如图1所示。
图1 程控增益放大电路
2.4 双极性电源电路设计
为满足不同极性的输入信号要求,需让LM358工作于双电源模式,而多数应用下一般不提供双电源,为提高系统抗干扰性,因此选用A1205XT芯片设计电压转换电路,基于A1205XT转换电路会产生与输入完全隔离的一组双电源,将输入的12V转换为正负5伏供电,为进一步减少输出纹波,在输出端连接一个电容滤波网络,电路设计如图2所示。
图2 电压转换电路
3.程控增益放大电路的控制软件设计
3.1 uC/OS-II系统移植
为保证程控放大电路的控制软件可移植性和可靠性,通常采用嵌入式操作系统作为平台,常见的嵌入式OS有µC/OS、µC-Linux、QNX、RT-Thread、FreeRTOS等,本文选用µC/OS-II,使用的硬件平台是基于Cortex-M3的STM32F103,因此需要在STM32中移植
μc/osII操作系统。基于意法官网提供了µC/OS-II的移植模板,根据实际系统需要做相应修改,移植工作主要考虑的问题是针对不同的处理器修改与其相关的文件os_cpu.h和os_cpu.a.asm,针对数据进行重定义、配置寄存器、系统时间中断、µCOS-II系统的配置文件os_cfg.h等,针对任务的最大数量、信号量数量、邮箱或者队列及其使用的最大数量、动态内存的管理等作出设置。考虑到程控增益放大电路控制软件需要及时捕捉并显示信号的变化情况,系统时间节拍需要在原有基础的1ms修改为0.5ms,在程序中将最小时间节拍从1000修改为2000,即如下:
#define OS_TICKS_PER_SEC 2000
3.2 任务(Task)规划
在嵌入式操作系统µC/OS-II的支持下,任务(Task)规划非常重要。首先,系统上电初始化,包括SysTick时钟和外设如GPIO、AD、I2C和外部中断EXTI等初始化,建立若干任务和信号量,使用启动任务OsStart()函数,在程控放大电路控制软件中,共设置4个任务,分别是:①TASK1:输入信号采集任务;②TASK2:ADG715通道选择任务;③TASK3:按键输入任务;④TASK4:GUI显示任务。
当有效信号接入后,进行信号固定衰减后进入AD转换电路,启动定时器,采样周期设定为500us,根据输入信号峰值大小选择相应通道,并基于μc/osII操作系统发送邮箱消息至ADG715通道选择任务,ADG715根据参数打开对应的通道,通过STM32的GPIO控制8个LED灯,显示具体通道号,系统设计的按键输入任务,当按键中断发生时,经按键去抖滤波处理后,获取当前按键变量,控制采样信号的启停。GUI显示任务采用定时刷新程序,当刷新周期到,显示输入信号的幅度频率等相关参数,软件流程图如图3所示。
3.3 I2C驱动设计
STM32F103通过I2C总线向ADG715发送从地址和控制字数据, 根据不同的放大或衰减倍数,对应于8个通道的控制字为0x01至0x80,当ADG715检测地址一致时,发送应答信号至STM32F103,接着STM32F103发送有效数据至ADG715,当数据发送完后,STM32F103释放I2C总线。
在对ADG715操作中,需配置三个函数I2C_GPIO、I2C_MODEL、ADG715_ByteWrite。其中:
(1)I2C_GPIO是用于I2C接口的STM32中引脚定义(输入输出模式、速率等),以及对I2C相关时钟的使能;
(2)I2C_MODEL配置I2C工作模式,设定I2C的寻址模式和通信速率并使能;
(3)ADG715_ByteWrite函数实现了STM32向ADG715发送起始位、ADG715的地址、一个字节的数据以及停止位,在该函数中STM32发送数据后,ADG715自动回复应答信号。
图3 基于μc/osII的程控增益放大电路控制流程图
4.实验分析
为验证ADG715程控增益放大电路的有效性,给定频率为50Hz,占空比50%,电压幅度40mv的方波输入信号,依据信号幅度大小选择ADG715通道,从而自动调节放大倍数。在该实验中,通过STM32的I2C总线发出控制字0X80,控制ADG715的S8与D8通道导通,如图4所示,输入输出信号在频率、占空比、相位上基本保持一致,但输出信号幅度略低于理论计算值。
图4 输入输出波形
5.总结
系统以STM32F103嵌入式处理器为程控放大电路的主控芯片,基于uC/OS-II嵌入式操作系统设计控制程序,STM32F103通过I2C总线与电子开关ADG715通信并传输控制字,该电路可实现8路交直流信号的切换,由于电子开关ADG715导通阻抗低,因此各通道导通和关断阻抗一致性较好。设计的程控增益放大电路可移植,电路系统经过改进后可应用于低频数字示波器及其他测量仪器的子模块。
[1]王文理,武晋,刘志强.基AT89S52单片机与AD0804的数字示波器设计[J].单片机开发与应用, 2009,25(12):114-115.
[2]何显鹏,彭力,何小龙.基于FPGA的数字示波器设计研究[J].现代商贸工业, 2009(18):327-328.
[3]张宇翔,王明利,吕运朋,等.高速数字存储示波器前端电路设计[J].自动化仪表, 2010,31(4):65-67, 40-43.
[5]黄志文,王春梅,卢美吉,等.基于VCA810可控增益程控放大器的设计[J].仪器仪表用户, 2018,25(12):41-44.
[6]林泊安.基于TI(德州仪器)乘法数模转换器DAC8802的程控增益放大研究[J].电子世界, 2016,25(16):41-44.
Design of Programmable Gain Amplification Circuit Based on STM32
LI Min & HU Fei & YANG Hui –wei & WANG Hai-xin
The system uses STM32F103 as the control core of the programmable gain amplifier circuit, connects the ADG715 with low on-resistance through the I2C bus, and transplants the I2C program under the µC/OS-II operating system into STM32 to realize multi-channel programmable signal amplification.The circuit is designed not only for low-frequency digital oscilloscope signal conditioning and programmable amplification, but also as an embedded teaching training platform for STM32 and a front-end detection module for related electronic products.
STM32; programmable gain; amplifier circuit.
TP274
A
1009-1114(2019)03-0026-04
2019-07-26
李敏(1977—),安徽芜湖人,硕士,芜湖职业技术学院副教授,研究方向为检测技术与自动化装置。
安徽省高校自然科学基金重点项目(项目编号:KJ2016A757);芜湖职业技术学院自然科学研究项目(项目编号: Wzcxcyzh201905;Wzyzr201313)。
文稿责编 钱峰