嵌入式设计:STM32自动量程电压表设计方案

发布者:雅致人生最新更新时间:2021-03-22 来源: eefocus关键字:嵌入式  STM32  自动量程  电压表 手机看文章 扫描二维码
随时随地手机看文章

方案中的整个系统可以用一块9V电池供电,实现了低功耗和便携功能。交流测量是用AD637真有效值转换芯片将交流信号转换成直流电压后测量;用带钳位保护的反向放大器进行输入电压转换,实现了10MΩ的输入阻抗和高安全性。电路中关键器件采用TI公司的精密运算放大器OPA07和仪表放大器INA128,实现了高精度的测量;ADC采用STM32f103ZET6片内自带的12位AD,实现了低功耗,量程自动切换功能。


0 引言


在智能仪器中,常常用到自动量程转换技术,这使得仪器在很短的时间内自动选取最合适的量程实现高精度的测量。自动量程的实现一般通过控制输入信号的衰减放大倍数实现,就电压表来说其输入测量电压会大于其AD 转换器的输入范围,所以它的量程切换基本上是信号衰减倍数切换的过程。


1.系统整体方案与工作原理


系统功能框图如图1所示。STM32F103ZET6处理器是本系统的核心器件,负责控制整个系统的正常工作,包括读取AD 转换后的结果及200mV 与2V 档位的控制;按键输入动作响应;段式液晶的驱动;量程自动转换控制等。

系统功能框图


输入的电压信号经过量程转换模块,变成可供ADC模拟输入端能正常进行采样的电压。交流电压测量模块的功能是将被测的交流电压转换成相应的RMS 值。按键输入的功能是切换各种不同的测量模式以及计算相对误差时进行数值输入。


2.系统硬件结构


(1)电源管理硬件电路


本系统具有低功耗模式,即在一定的时间内没有操作,系统在单片机的控制下自动切断一部分电路的工作电源。电源管理电路原理图如图2所示。

电源管理硬件电路


电池的正极分成两路,第一路是直接接入到SPX1117的输入端,SPX1117是三端集成稳压芯片,其输出端输出恒定的3.3V,作单片机系统电源。另一路是经过三极管9012可以开关控制,本设计中在系统处于正常工作状态时,单片机控制口输出高电平,9011处于饱和状态,9012的基极电压与地电压相近,9012饱和,即处于导通状态。9V叠层电池的正极电压到达78L05 三端集成稳压芯片的输入端,其输出端输出稳定的+5V电压。-5V由负压电荷泵7660S 产生。当系统处于“低功耗”状态时,单片机控制口输出为低电平。9011处于截止状态,9012的基极电压为9V,也处于截止状态,模拟部分电源电压为零。而单片机将一直处于不同模式的工作状态。


(2)交流电压转换电路


交流电压测量真有效值的转换电路是测量交流电压的关键部分,其设计的好坏直接影响到交流电压信号的测量精度,在本次设计中我们通过比较选择采用AD637来实现交流信号到直流量的转变,电路如图3所示。

交流电压转换电路


AC_IN是交流电压输入端,DC_OUT端输出的是直流电压信号。输出直流电压的值是输入交流电压的真有效值。此电路完成了交流到直流的转换,实验测试时发现对于5000Hz 交流信号转换效果仍良好。


(3)量程转换电路


本系统量程转换采用单片机控制模拟开关和继电器实现,原理框图如图4所示。



直流/交流(0-20V)电压输入后双掷开关SW_1起到电压量程转换选择作用,固定电阻R1,R3在精密可变电阻R2的配合下组成一个电阻10倍衰减网络,且其输入电阻大于10M 欧,满足题目中输入电阻的要求。最高输入电压可到20V 。再由单片机控制SW-1 来选择是否衰减。R1和两个IN4001 构成一嵌位保护电路,使电路在高电压输入时处于安全状态。OP07 构成一个电压跟随器,起到隔离前后通道的作用,其较低的输出电阻还可以提高带负载能力。Output 端接入ADC.


(4)量程自动切换的实现


本系统中的自动量程切换对测直流电压和交流电压均有效。量程自动切换关键是通过读ADC 数据判断当前的量程是过量程还是欠量程,合理的硬件设计是量程自动切换的重要保证。量程自动转换流程图如图5所示。

量程自动转换流程图


自动量程转换由初设量程开始,逐级比较,直至选出最合适提量程为止。自动量程转换的操作流程如上图所示。继电器或其它控制开关从闭合转变为断开,或从断开转变为闭合有一个短暂的过程,所以在每次改变量程之后要延时一定的时间,然后再进行正式的测量和判断。为了避免在两种量程的交叉点上可能出现的跳动,还应考虑低量程的超量程比较值和高量程的欠量程比较值之间有一定的重叠范围。


3.软件设计


数据采集过程中,使用了八阶平均值滤波和一阶滞后滤波,有效的滤去了采样数据的脉冲干扰。程序流程图如图6所示。

系统软件流程


4.系统测试与误差分析


(1)系统测试方法


直流测试方法:使用直流稳压电源产生直流电压信号,通过高精度万用表观察实际输出直流电压值,将信号通入本系统仪器测量与标准电压值进行比较。


交流测试方法:使用交流数字信号发生器产生40~5000HZ,电压范围0~20V的正弦交流信号通过示波器观察实际输出频率,通过高精度数字万用表观察实际输出电压值,将信号通直流测试方法:使用直流稳压电源产生直流电压信号,通过高精度万用表观察实际输出直流电压值,将信号通入本系统仪器测量与标准电压值进行比较。


(2)误差分析


本系统误差主要由恒流源、AD真有效值转换、双积分ADC 器件等几个方面所带来的误差。AD 真有效值转换,在误差允许的范围内可以将所测交流电压转换成对应的真有效值,但不可避免地受到环境温度的影响,造成转换时可能引起误差。量程自动切换时将原来的微型继电器用耐高压型的模拟开关替换掉。可以进一步降低系统正常工作时的功耗,还可以提高系统的稳定性和可靠性及响应速度。


5.结束语


本设计方案实现了直流电压、交流电压的高精度测量,同时具有量程自动转换功能,采用LCD显示,可读性强。STM32F103ZET6在速度、功耗方面性能都非常优越,其丰富的外设也更加方便设计。另外,其价格较低,在成本上也有优势,适合于控制电子产品的设计。方案中采用STM32F103ZET6内部的12位ADC,既满足了测量精度,也省去了外扩AD,使硬件电路更加简单,节省了成本,提高了可靠性。


关键字:嵌入式  STM32  自动量程  电压表 引用地址:嵌入式设计:STM32自动量程电压表设计方案

上一篇:CC3000的胶囊内窥镜WiFi转发器设计
下一篇:基于STM32设计的四轴飞行器飞控系统

推荐阅读最新更新时间:2024-11-13 11:43

stm32使用过程中的注意事项
1.ADC采用值转换成具体的物理量值 ADC采样值在寄存器中是16位整形数据,要转换成具体的电压量,则必须进行换算。例如12位的转换精度,满量程的二进制为0000 1111 1111 1111,对应十进制数为1095,对应的电压为3.3V。所以计算公式为 电压 = (采样二进制值/1096)*3.3(V) 特别注意,转换电压为浮点类型,所以要将采样二进制值强制转换成浮点型。 uint16_t ADC_ConvertValue; float ADCtoVoltage; ADCtoVoltage = ((float)ADC_ConvertValue/4096)*3.3; 2.STM32F0x系列RCC配置
[单片机]
绘制stm32最小系统PCB图
一.原理图封装添加 1.添加工程 2.编译工程 3.封装原理图 打开AD软件,将封装库添加进来 添加文件到【可用库】中之后,将.PcbLib文件库移到最上面 左击需要封装的元件,在弹出的Properties中选择Add 元件封装 依次对其余元件进行封装 4.导入原理图 首先点击菜单中的设计 选择第一行 在弹出窗口中先选择验证变更,之后可以根据元件进行执行变更。成功将原理图导入PCB模块 二.PCB绘制 1.PCB布局 首先选择好相关元器件 2.PCB布线 开启交叉选择模式 这样方便对照元件查询 3.PCB覆铜 首先规划出覆铜的区域,选择工具,然后就根据之前画的线框拉出一个矩形
[单片机]
绘制<font color='red'>stm32</font>最小系统PCB图
时钟树的讲解
系统时钟的来源:1 HSE振荡器时钟 、 2 HSI 振荡器时钟 、3 PLL振荡器时钟 。其中PLL是常用的系统时钟来源。 时钟树 上图中黄色的实线是系统时钟配置的流程。红色框框起来的是寄存器RCC的响应控制位。 1:8M的初始时钟在经过PPLXTPRE选择的倍频因子/1得到的频率为8M /1 = 8M大小不变。 2:这个时候来到PPLSRC该位控制的是选择HSI RC还是 HSE OSE作为时钟源,通过控制时钟配置寄存器(RCC_CFGR)设置PLLSRC的值选择 HSE OSE作为时钟源。频率大小还是8M 3:下一步就是PLLMUL控制位选择的倍频因子为x9那么得到的频率大小为 8M x9 = 72M。 4:接下来
[单片机]
时钟树的讲解
stm32库函数学习篇---NVIC与外部中断
实现功能:外部中断线0(PA0)与线15(PA15)分别连接到两个按钮,一个按钮用于产生上升沿,另一个用于产生下降沿,两个中断函数里均对PA8口连接的led灯取反,同时PD2连接的led灯随意延时取反指示程序运行。 这次我用了官方提供的例程来构建自己的工程,这样可以省下不少时间,而且减少了出错率,调试起来容易多了。 首先是stm32中断与外部中断的概念。 ARM Coetex-M3内核共支持256个中断,其中16个内部中断,240个外部中断和可编程的256级中断优先级的设置。STM32目前支持的中断共84个(16个内部+68个外部),还有16级可编程的中断优先级的设置,仅使用中断优先级设置8bit中的高4位。 STM32可支持
[单片机]
<font color='red'>stm32</font>库函数学习篇---NVIC与外部中断
STM32学习笔记:在IAR中建立FWlib 3.0项目
开发工具:JLink V7.0 开发环境:IAR5.3 第一步:下载函数库 从ST官方网站(http://www.st.com/stonline/products/support/micro/files/um0427.zip)下载STM32 V3.0固件函数库。 第二步:复制库文件 将下载的软硬件函数库解压后,将目录中的【Libraries】目录拷贝到您的项目目录中,然后【Project】目录下的【Template】目录下的main.c、stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h四个文件拷贝到您的目录下,然后将【Project】 【Template】 【EWARMv5】目录下
[单片机]
<font color='red'>STM32</font>学习笔记:在IAR中建立FWlib 3.0项目
stm32 MDK5软件仿真之查看io口输出
第一步,编译程序,查看编译输出窗口,没有报错,也没有警告,再点击调试按钮 第二步,设置要查看的引脚端口,点击Setup 第三步,点击插入 第四步,输入要查看的引脚,例如GPIOA_Pin_0引脚,则输入PORTA.0,注意,A后面有一个小数点,而且都是大写,不能是小写 \ 此刻会出现一个错误,软件无法识别我们设置的端口引脚 点击图中所示的按钮,设置工程 点击Debug标签,转到设置Debug界面,修改里面的文本 修改为如图所示文本,其中两个方框需要根据实际使用的微控制器型号而改动 设置完成后点击OK重新设置要查看的端口引脚,点击空白部分,设置完成后,点击Close
[单片机]
<font color='red'>stm32</font> MDK5软件仿真之查看io口输出
STM32+移远MC20模块采用MQTT协议登录OneNet上传GPS数据
一、环境介绍 MCU: STM32F103C8T6 GSM模块: 移远MC20 (MT2503D)(GSM+GPS共存)功能很强大 开发软件: Keil5 MQTT协议采用OneNet的旧版协议,登录OneNet控制台创建应用时要选择旧版本。 如果想使用新版本的标准MQTT协议连接OnetNet请参考这里: https://blog.csdn.net/xiaolong1126626497/article/details/107385118 完整源代码下载: https://download.csdn.net/download/xiaolong1126626497/18245206 二、MC20模块
[单片机]
STM32+移远MC20模块采用MQTT协议登录OneNet上传GPS数据
AMD推嵌入式芯片业务 开启转型模式
近日,通用电气宣布,将基于AMD最新发布的嵌入式APU芯片开发多款嵌入式计算模块,得益于芯片的先进架构和诸多亮点特性,该计算模块有望应用在大量的工业和嵌入式环境中。这条消息对于去年徘徊在低谷的AMD来说是一个巨大鼓舞——嵌入式APU成果正在快速转化为业务优势。然而更重要的是,这意味着由嵌入式芯片业务开启的一场AMD转型大戏也正式上演。   嵌入式APU瞄准未来   从CPU到APU再到嵌入式APU,AMD身上厚重的传统x86印记正在逐渐剥离。从APU开始,AMD就致力于整合芯片的发展,将CPU和GPU巧妙联合起来,共同承担计算任务,实现了更高效率、更低能耗的计算优势。嵌入式APU的出现,不仅意味着AMD完成了整合芯片的再次进化
[半导体设计/制造]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved