历史上的今天
返回首页

历史上的今天

今天是:2025年03月22日(星期六)

2021年03月22日 | 嵌入式设计:STM32自动量程电压表设计方案

2021-03-22 来源:eefocus

方案中的整个系统可以用一块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,使硬件电路更加简单,节省了成本,提高了可靠性。


推荐阅读

史海拾趣

AVG [AVG Semiconductors(HITEK)]公司的发展小趣事

AVG深知在竞争激烈的电子行业中,单打独斗难以取得长远的发展。因此,公司积极寻求与行业内外的合作伙伴建立紧密的合作关系。通过与上下游企业建立供应链合作关系,AVG确保了原材料的稳定供应和产品质量的可靠性;通过与高校和研究机构合作开展技术研发,AVG不断引入新的技术和创新思路。这些合作伙伴关系的建立,为AVG的发展提供了有力支持,也促进了整个电子行业的共赢发展。

诚芯微(CXW)公司的发展小趣事

在2021年,诚芯微获得了数千万元的Pre-B轮融资,由中信建投和投控东海入股、时代伯乐加投。这笔融资为公司的发展注入了新的动力。同时,公司还完成了股改,正式更名为深圳市诚芯微科技股份有限公司。股改完成后,诚芯微的治理结构更加完善,为公司未来的发展奠定了坚实的基础。

以上故事仅为概述性描述,实际发展过程中可能涉及更多细节和复杂因素。如需更详细的信息,建议查阅相关新闻报道或行业分析报告。

Analog Microelectronics GmbH公司的发展小趣事

在2017年,诚芯微被认定为国家高新技术企业,这是对公司技术实力和创新能力的高度肯定。获得这一荣誉后,诚芯微进一步加大了研发投入,加强了与高校和科研机构的合作,推动了公司技术的持续创新。同时,公司还扩大了产能,优化了供应链管理,提升了市场竞争力。

EMS GmbH公司的发展小趣事

近年来,随着汽车行业向电动化、智能化方向发展,汽车转换器注塑件的需求也发生了变化。EMS GmbH公司积极应对行业挑战,加大研发投入,推动产品向智能化、绿色化方向转型。同时,公司还关注新兴领域的发展机会,如新能源汽车、自动驾驶等领域,寻求新的增长点。这些努力使EMS GmbH公司能够保持行业领先地位,并在未来市场中保持竞争力。

Computer Conversions Corp公司的发展小趣事

在计算机行业快速发展的时代,Computer Conversions Corp公司凭借其敏锐的市场洞察力和技术实力,成功地把握住了行业发展的脉搏。公司曾面临一个重大挑战:如何使老旧的计算机硬件与新兴的软件兼容。为了解决这一问题,Computer Conversions Corp投入大量资源进行技术研发,最终开发出了一种独特的硬件转换器。这种转换器不仅解决了兼容性问题,还大幅提升了数据处理速度,赢得了市场的广泛认可。

GTE Microcircuits公司的发展小趣事
故障排查通常从检查电源开始,确认电源电压和电流是否正常。然后逐步检查各级放大器的输入输出信号,使用示波器或万用表等工具观察信号波形和幅值是否正常。此外,还可以利用替换法来排除故障元件。

问答坊 | AI 解惑

vxworks tornado不能使用类的静态成员变量?下载到模拟器出错

代码 : #include \"vxWorks.h\" #include #include \"TestDll.h\" class  CTest { public:         CTest(){};         void print(){printf(\"CTest::print()\\n\");} static char ...…

查看全部问答>

在wince 编程里面怎么做菜单?

我是在wm_create消息里面         HWND hwndcb;                         hwndcb=CommandBar_Create(hInstance,hWnd,cmd);         &nbs ...…

查看全部问答>

请问STM8和STM32是否货期紧张???

                                 代理说比较紧张,是否?…

查看全部问答>

2407有没有什么指令可以用来开根号???

要用到...不知道什么指令.先谢谢了...…

查看全部问答>

为什么总是崩溃?

我用的是Firefox最新的浏览器,浏览咱们的论坛的时候为什么总是崩溃呢?浏览别的网页的时候没有出现过这个问题,我想知道这个是浏览器的问题还是论坛的问题呢??…

查看全部问答>

求热电堆热流传感器型号及管脚资料

求一个知道输出电压范围的热电堆热流传感器 [ 本帖最后由 douyayu 于 2011-6-9 10:48 编辑 ]…

查看全部问答>

error: #20: identifier "RCC_PLLSource_HSE_Div1" is undefined

错误:User\\main.c(122): error:  #20: identifier \"RCC_PLLSource_HSE_Div1\" is undefined 意思是RCC_PLLSource_HSE_Div1未定义。 我的工程中包含了 stm32f10x_rcc.h  可仍然显示 “RCC_PLLSource_HSE_Div1”未定义 打开stm32f1 ...…

查看全部问答>

夜话51

话说51我接触大概不大半年吧!现在大二的我或许显得有些稚嫩,但是对于学习,我还是有自己得体悟得。 学习51我们是为了知道单片机是什么?知道学习完了51之后我们如何更快速得入门其他单片机,对于有一定电子制作经历得人我建议自己用洞洞板搭建自 ...…

查看全部问答>

求各位老师,师兄师姐帮帮忙·给解答一下小弟的疑问吧!!!感激不尽!

#include //g2553.h> void Clocks_Config(void)  //时钟配置 { //  if (CALBC1_1MHZ==0xFF||CALDCO_1MHZ==0xFF) //  FaultRoutine();         //如果校准数据被擦除,则运行 Fau ...…

查看全部问答>

关于msp430g2553+nrf24L01的编程问题

error #10234-D: unresolved symbols remain error #10010: errors encountered during linking; \"22.out\" not built复制代码程序编译没问题,就是debug不了,下面是它给我显示 error #10234-D: unresolved symbols remain error #10010: erro ...…

查看全部问答>