这一章在干嘛?
驱动板自带三条采集电路——电压分压、20mΩ 采样电阻 + 差分放大、NTC 热敏电阻。本章讲清它们的原理,再用 ADC + DMA 多通道采集把数据读出来,为后面电流环 PID 备好「眼睛」。
6.1 三条采集电路的原理
① 电压采集——分压降压:电源电压(最高 60V)远超 ADC 的 0~3.3V 量程,先用三电阻分压:,再经电压跟随器缓冲得到 VBUS,最后反推:
原书图 6.1.1:电压采集电路:R13/R17/R21 分压 + 电压跟随器
② 电流采集——先转电压再放大:H 桥回路串 20mΩ 采样电阻,把电流变成电压 ;这个电压太小,先差分放大 6 倍并抬升 1.27V 参考电平:
原书图 6.1.2:采样电路:20mΩ 采样电阻串入 H 桥回路
原书图 6.1.3:差分放大电路:6 倍放大 + 1.27V 偏置
为什么要抬升 1.27V?
双向电流有正有负,直接采集负电压 ADC 读不了。加一个直流偏置把 0 点抬到量程中间,正反转电流都能读。
③ 温度采集——NTC 分压:NCP18XH103 是负温度系数热敏电阻(温度越高阻值越低),与 4.7kΩ 电阻对 3.3V 分压,ADC 读出电压反算阻值,再按数据手册公式换算温度:
原书图 6.1.4:温度采集电路:NTC 与 4.7kΩ 分压 + 跟随器
6.2 硬件设计与采集通道
实验在基础驱动之上叠加 3 路 ADC 采集(ADC1 + DMA 多通道):
| 信号 | 通道 | IO | 换算 |
|---|---|---|---|
| 电源电压 | ADC1_CH9 | PB1 | ×25 |
| 温度 | ADC1_CH0 | PA0 | 反算 NTC 阻值 → 查表/公式 |
| 电流 | ADC1_CH8 | PB0 | (−1.27)/0.12 |
按键逻辑与基础驱动一致:KEY0/KEY1 增减 PWM 比较值(带符号→正反转),KEY2 停止;串口 1 打印电压、温度、电流。
原书图 6.2.1:直流有刷电机接口原理图:PWM + SD + 3 路模拟量
为什么用 DMA?
多通道连续采集若每通道都中断,CPU 负担大。DMA 让 ADC 转换结果自动搬进内存数组,程序按需取平均值即可——这是电机控制中采集三相电流的标准姿势。
6.3 验证与意义
烧录后串口可见:驱动板电压(如 12V 上下)、板温、电流随负载变化。用手轻捏电机轴增加负载,电流明显上升——这就是后面电流环要「稳住」的物理量。
原书图 6.1.2:20mΩ 采样电阻位于 H 桥回路中(复用第 6.1 节图)
本章地位:
电压采集 → 过压/欠压保护;温度采集 → 过温保护;电流采集 → 第 11 章电流环的反馈源。这三条电路在无刷驱动板上还会再见(第 23 章)。
1. 电流采集为什么要先经 20mΩ 电阻再差分放大?
ADC 只能测电压且量程小。20mΩ 电阻把电流转换成 mV 级小电压,差分放大 6 倍并叠加 1.27V 偏置后,变成 ADC 能准确测量的 0~3.3V 信号,且支持双向电流。
2. 1.27V 偏置的作用是什么?
给双向电流信号叠加直流偏置,使电流为 0 时输出约 1.27V 而非 0V,正负两个方向的电流都能落在 ADC 量程内。
3. NTC 热敏电阻测温度的基本思路?
NTC 阻值随温度升高而降低,与固定电阻分压后,ADC 读电压 → 反算 NTC 阻值 → 按厂家公式换算出温度。