SciTech-EECS-MCU-STM32: 高精度实时测量: 电压、电流
硬件开发>单片机>STM32: 电流电压检测模块
参考Links
- MCU实现高精度的PWM输出和电流采样 - 21ic论坛
- Analog.com: 宽动态范围的高端电流 检测:三种解决方案
- keyence.com: 高精度测量 - 在线超高速高精度2D/3D稳定测量
- INA226: 电流,功率监控芯片应用(基于STM32工程)
- Rensas: 基于MCU的高精度测量系统
STM32电流电压检测模块
用于实时监测电路中的电压和电流值, 基于STM32微控制器(Microcontroller Unit,MCU)设计的硬件系统。
- STM32系列是意法半导体(STMicroelectronics)推出的一款高性能、低功耗的32位微控制器,
广泛应用于工业控制、消费电子和物联网等领域。
在设计这样的检测模块时,
-
首先需要了解STM32的基本架构。
- STM32通常具有多个模拟输入通道(ADC,Analog-to-Digital Converter),
这些通道可以连接到外部传感器,如电流互感器或电压分压器,将模拟信号转换为数字信号。 - ADC的质量直接影响到测量的精度和稳定性,因此选择合适的ADC分辨率和转换速率至关重要。
- 硬件层面,确保ADC的输入电压范围与实际电压匹配,防止过压损坏芯片。
- 软件层面,STM32的固件需要实现ADC的初始化、采样和数据处理功能。
- 初始化: 包括设置ADC工作模式、转换速率、通道选择等参数。
- 采样: 采样频率的选择, 需考虑到实时性需求,过高可能会增加处理器负担,过低可能导致测量延迟。
- 数据处理: 可能涉及滤波算法,以减小噪声影响,提供更准确的读数。
- 此外,为实现监测数据的可视化和远程监控,
该模块可能还会集成串口通信(如UART、SPI或I2C) 或 无线通信接口(如Wi-Fi或Bluetooth)。
这些接口能让模块与上位机、PC或移动设备交换数据, 用户可实时查看和记录测量值、参数、系统的变化。
- STM32通常具有多个模拟输入通道(ADC,Analog-to-Digital Converter),
-
电压测量(最常用):
先用比例采样的分压电路, 将高电压适配到STM32 ADC的可接受范围。
然后ADC会采集分压后的电压,并将其转换为数字值。 -
电流检测(电流测量 转换为 测量电压):
通常通过 霍尔效应电流传感器 或 电流互感器 实现。
这两种方法都需要将测量值送入STM32的ADC,通过软件算法进行处理,得出实际电流值。- 霍尔效应传感器: 利用霍尔效应,即磁场对电流产生的横向电压,来测量通过导线的电流。
- 电流互感器: 则基于电磁感应原理,将大电流转换为小电流进行测量。
在电压电流监测模块资料包 V1.1,可能包含以下内容
- 设计文档:详细介绍模块的设计思路、硬件选型和软件实现。
- PCB布局图:展示模块的电路布局和元件位置。
- STM32固件源码:包含ADC配置、数据处理和通信协议实现的代码。
- 用户手册:指导用户如何使用该模块,包括硬件接线、软件配置和数据读取方法。
- 测试报告:提供模块在不同条件下的性能测试结果,验证其功能和性能。
- 示例代码和应用实例:帮助用户快速掌握,展示如何与上位机通信和数据解析。
STM32电流电压检测模块, 结合先进的微控制器技术和精密测量技术,
为各种应用提供可靠的电源监控解决方案。
开发者需要掌握STM32的硬件特性、ADC操作以及信号处理知识,才能充分利用该模块的功能。
高精度电流测量电路(MCU)
嵌入式(单片机)开发过程,会有测量电流的需求。涉及到的有:
- uA 级别的
- mA 级别的
- A 级别的
以上的需求电路, 都可有通用的“同相放大”电路:
- VDD–R6–GND: 代表待测电路,
- R6: 负载(假定),目的是为使环路形成我们想要的待测电流。
- U1: 同相放大电路的放大器
- R4: 是测量电阻, 例如1KΩ: 表示它是用于检测小电流的(uA级别的)
- 放大倍数为10倍:(R3+R2)/R1
示例分析: 假设这是一个理想放大电路,并且待测电路的电流为100uA(500KΩ)时,
- 在R4(测量电阻)上的电压是100uA*1KΩ = 10mV,
- 经过U1(放大器)的10倍放大后就是100mV。
- 经过单片机的ADC采样就可以推算出电流值。
测量范围
上面那个电路的测量范围可以这么计算,
- 前提是设置 ADC 的 Vref(参考电压) = 0.6V,
- 放大器输出端的 VAout(最大输出电压) = 0.6V,
- 放大器输入电压就是 VAin = 0.06V(因为放大器的放大倍数为10倍)。
- 就可计算出该电路的"最大测量电流"为: Icmax = VAin/Rc = 0.06V/1000Ω = 60uA(即0.00006A)。
因为,电阻上的电压降 及 通过电流,符合“欧姆定律”
高精分段测量
为精确测量一个很大范围的电流值,可在以上电路基础上,更改R4的阻值实现。
在实际应用过程,通过设置多路的测量电路,每一路对应设置不同的测量电阻,
并且用MCU控制各路切换, 以达到精确的电流测量。
比如可以设置"测量电阻(可选)":
阻值 | 测量的最大电流 |
---|---|
1000Ω | 60uA |
120Ω | 500uA |
15Ω | 4mA |
2.3Ω | 26mA |
0.23Ω | 260mA |
0.02Ω | 3A |
使用比较器(MCU内部的 或 外部的)可及时转换对应通道,以 比较 检测到的输入电压 与 MCU内ADC的参考电压 的高低,
注意: 检测到的输入电压 如果 高于 MCU内ADC的参考电压时,
“有可能会”出现 ADC转换的数值 不是最大值, 而是一个随机值的情况。
实例应用之 电机控制
通过MCU实现 高精度的PWM输出 和 电流采样 是确保电机运行平稳、高效的关键。
以下是一些具体的步骤和方法::
实现高精度的PWM输出
- 选择合适的MCU:
选择有高性能处理器和丰富外设资源的MCU, 例如最高支持248 MHz主频,
才能够快速处理“电机控制算法”的复杂计算任务。 - 配置Timer(定时器) 与 PWM控制:
利用MCU的高级定时器功能,每个定时器都支持 多种PWM模式 和 死区控制 功能。
通过精确配置定时器,可以生成高质量的“三相PWM驱动信号”,
确保电机绕组电流的波形平滑,有效降低电机的转矩脉动和电磁噪声。 - 优化PWM信号:
为提高PWM信号的精度,可以使用2K CPLD资源来优化PWM信号生成,
使其有更高的 分辨率和精度,满足电机在不同工况下的驱动需求。
实现电流采样
- 选择合适的电流采样方式:
根据系统需求和成本考虑,可以选择:- 高端采样、
- 低端采样(包括单电阻、双电阻、三电阻采样)
- 霍尔电流传感器,
- 电流互感器。
- 配置ADC:
对需要高精度电流采样的应用,建议使用高精度的ADC模块。
例如,AG32 MCU内置了3x12位ADC,每个ADC具备17个通道,支持高达3M SPS的采样率,
可以实现对 电机电流 和 反电动势 的 实时、高精度采样。 - 优化电流采样电路:
在设计电流采样电路时,需要考虑“采样电阻”的功率、精度和温度系数,以及运算放大器的选择。
同时,还需要注意PCB布局布线,以减少干扰和提高采样精度。 - 软件处理:
对“低端采样”方式,可能需要在软件上对采样数据进行重构和补偿,以获取准确的电流值。
此外,还可以通过滤波器等方法进一步提高采样数据的精度和稳定性。
综上所述,通过选择合适的MCU、配置定时器与PWM控制、优化PWM信号、选择合适的电流采样方式、配置高精度ADC模块 以及优化 “电流采样电路”和“软件处理”等步骤,
可在电机控制上,实现高精度的PWM输出和电流采样。
这些措施有助于提高电机控制的精准性、稳定性和高效性。