wang6623 发表于 2025-4-30 00:36

灵动MCU可以通过一些内置功能和软件手段处理小电压信号。

在没有外部运放的情况下,灵动MCU(如 MM32 系列)可以通过一些内置功能和软件手段处理小电压信号。虽然这无法完全替代高精度模拟前端,但对一些低速、低精度应用是可行的。

方法一:调整 ADC 参考电压(间接提升灵敏度)
灵动MCU的部分型号支持 内部参考电压源(V<sub>REFINT</sub>),你可以:

将 ADC 的参考电压设置为内部 1.2V 或 2.5V(若支持)

小信号(比如 0.2V、0.5V)在 1.2V 参考电压下更容易占满 ADC 有效位数

举例
0.5V 在 3.3V参考下仅占 ADC 滿量程的 ~15%

改为 1.2V参考下可提升到 ~42%,提高分辨率

⚠ 注意:是否支持内部参考电压要查具体芯片的数据手册,如 MM32F103 无此功能,而 MM32L系列部分型号支持。

方法二:多次采样 + 软件平均(增强有效位)
利用 ADC 多次采样 + 平均滤波或加权累积 可提高精度,间接“放大”信号:

c
复制
编辑
uint32_t sum = 0;
for (int i = 0; i < 64; i++) {
    sum += ADC_Read();
}
uint16_t average = sum / 64;
64次平均理论上提升2~3位有效分辨率

对小电压的微小波动更敏感

软件简单,适合低速信号(如电池、温度类)

方法三:使用内部比较器(COMP)判断低电压阈值
部分灵动芯片(如 MM32L系列)内置模拟比较器(COMP)模块,可用来:

检测某电压是否低于某固定值

无需ADC、无需MCU干预

你可以连接小电压信号到 COMP 输入,与参考电压比较,判断其是否越界。

优点:硬件快速判断、支持中断、低功耗
⚠ 限制:只能判断“高/低于阈值”,无法获取电压值

方法四:ADC 软件“归一化放大”处理(比例缩放)
对于输入信号范围已知的小电压(如 0~500mV),可在软件中将其按比例扩大处理:

c
复制
编辑
float voltage = (adc_val / 4095.0) * 3.3;// 得到原始电压
float scaled = voltage * 6.6;            // 归一化到0~3.3V区间
用于软件后处理、界面显示、算法决策

并不会实际提高 ADC 分辨率

MCU 本身无法模拟硬件“增益放大”的限制

项目        支持情况
模拟前级增益                                        MCU 不支持(需外部运放)
数字后处理放大                                        可软件实现
内部可编程增益放大(PGA)                灵动多数型号无此模块
低压信号判定                                           可用比较器/滤波优化

磨砂 发表于 2025-5-5 09:38

通过降低ADC的参考电压,将小电压信号映射到更宽的ADC量程范围,从而提升分辨率

晓伍 发表于 2025-5-5 11:58

需查阅芯片手册确认是否支持内部参考电压(如MM32L系列部分型号支持,MM32F103不支持)

八层楼 发表于 2025-5-5 14:17

部分灵动MCU(如MM32L系列)内置模拟比较器,可直接检测电压是否低于/高于某个阈值,无需ADC转换

观海 发表于 2025-5-5 16:49

使用内部比较器(COMP)判断低电压阈值具有快速硬件判决,支持中断触发,低功耗的优点

guanjiaer 发表于 2025-5-5 19:05

使用内部比较器判断低电压阈值无法获取具体电压值,仅能判断高低状态

heimaojingzhang 发表于 2025-5-5 21:28

通过软件配置,同一引脚可切换为ADC输入和GPIO输出,实现电压采集与IO控制的双重功能

keaibukelian 发表于 2025-5-6 07:37

传感器数据采集+按键输入:同一引脚在不同时段分别用于ADC采样和GPIO中断

paotangsan 发表于 2025-5-6 09:57

通过软件配置,同一引脚可切换为ADC输入和GPIO输出,实现电压采集与IO控制的双重功能

renzheshengui 发表于 2025-5-6 12:15

ADC软件“归一化放大”处理不提升ADC硬件分辨率,仅用于后续处理

wowu 发表于 2025-5-6 14:30

结合PID算法动态调整采样频率或增益,减少稳态误差
页: [1]
查看完整版本: 灵动MCU可以通过一些内置功能和软件手段处理小电压信号。