· 9 min read
电子负载 Rev.3 开发笔记
上次做的电子负载 Rev.1,核心功能是没问题的,但是电压和电流读数不理想,可能还不是误差或者偏差,所以重新设计了两次电压电流检测方案,最终在 Rev.3 上改用 MCU 片上 OpAmp 做处理再送入 ADC,并修复和改进了一些地方。 Rev.3 目前硬件部分没什么问题了,这次另一个主要内容就是软件实现。搞上了 Web USB,效果还可以,无线部分估计要继续鸽了~
电压检测
上图就 Rev.3 的远端和近端电压采集电路的原理图。这个电路右边是母线电压,左边是 MCU 片上运放的输入端,最终实现的是一个差动放大器。就像 Rev.1 中的采样电路一样:
能看出来, Rev.3 的电路原理上和 Rev.1 的电路一样,增加了一些滤波和保护电路。不过目前电压检测的结果不是很理想,在没进行额外校准的情况下误差会比 Rev.1 大一些,我怀疑是因为 MCU 片上 OpAmp 不够给力。
我还特地为 HAL 实现了 MCU 自带的硬件校准,还是没有改观。这部分使用到 ADC 和 OpAmp 代码是我补充到 HAL 里的,我是觉得不太可能写错。OpAmp 内部连接 ADC 还是外部通过引脚复用送到 ADC 误差都差不多,只有改成电压信号单端直接送到 ADC,不经过 OpAmp,才没这个误差。
本文后面会提到电压和电流读数以及 DAC 的软件校准。
电流检测和硬件恒流
这次比较大的硬件变化就是电流检测部分了。电流信号的增益改用了 MCU 片上 OpAmp,毕竟片上资源不要浪费!设计上是支持独立模式和 PGA 模式:
- 独立模式:MCU 片上 OpAmp 所有连接都引到引脚,通过外置电阻配置增益,实现了 11V/V 增益的差分放大器。
- PGA 模式:MCU 片上 OpAmp 使用内置电阻配置增益,增益可以动态调节,但只能实现同相放大器。
独立模式 vs PGA模式对比:
特性 | 独立模式(传统差分) | PGA模式 |
---|---|---|
增益公式 | ( G = \frac{R_f}{R_g} ) | ( G = 1 + \frac{R_f}{R_g} ) |
电阻数量 | 4颗(需严格匹配) | MCU 内置 |
CMRR | 依赖电阻匹配(1%电阻→≈46dB) | 依赖PCB对称性(≈60dB) |
适用场景 | 高CMRR需求、信号源阻抗低 | 中精度、布局紧凑场景 |
我目前选择的是独立模式。
硬件恒流部分就没使用片上 OpAmp 了,因为作为负载的 MOSFET 的 V_{GSth} 是 2~4 V,所以设计上是使用 5 V 的电压驱动它。那么咱就得让运放的供电是 5 V,才能让运放输出 0 ~ 5 V 的电压,这就不得不用外置运放了。
目前原理图上标注的前馈电容电阻的值都是我根据实际测试得到的结果,估计这个还得根据使用的运放来确定。 如果发现负载吸入的电流和 DAC 输出的电压有很大的出入,并且不怎么受 DAC 输出变化的影响,那么得用示波器看看运放输出和电流信号的电压波形是否是振荡的。如果是拿万用表测运放输入端之间的电压,可能会看到有电压差,那不不用像我一样懵逼地研究运放是不是还有什么神奇的特性还没掌握,赶紧拿上示波器看看。 如果振荡的话,一点点地加电容就行(C12、C13;C31、C32)。加到波形比较平滑就差不多了应该,我不是很懂模电,都是跟着感觉走的。
电压、电流信号输入保护
由于这次使用 MCU 片上模拟外设,还是用了比较贵的 MCU,找了好久才找到比较便宜的型号和店家,18 元人民币捏,所以还花了点时间选了下保护器件。
由于我不确定信号电压是否会超过 VDDA(3.3V),所以首先要做钳位保护,然后就是防止静电浪涌。这个保护主要还是给电压检测使用的。
我找了一圈,我在 Rev.2 上使用了 PESD3V3L5UY,但是我后面发现了一个很狗血的问题,同一个型号居然有两个版本的内部结构图,一种是没钳位,每个 IO 使用双向 TVS 的,另一种是有钳位,所有 IO 共用一个 TVS,这把我搞蒙圈了。最后在做 Rev.3 时,找到了 CH412K,能买得到,价格还便宜,一次搞定钳位和 TVS。
CH412K: 南京沁恒的四路ESD保护二极管阵列,用于高速信号保护。
好的,这是 CH412K 的参数表格内容:
绝对最大值
名称 | 参数说明 | 最小值 | 最大值 | 单位 |
---|---|---|---|---|
TA | 工作时的环境温度 | -40 | 125 | ℃ |
TS | 储存时的环境温度 | -55 | 150 | ℃ |
VCC | CH412K 电源电压 (VCC 接电源, GND 接地) | -0.5 | 6.5 | V |
VIO | 保护通道引脚上的静态连续电压 (CH412K) | -0.5 | VCC+0.5 | V |
VIO | 保护通道引脚上的静态连续电压 (CH412Z) | -0.5 | 6.0 | V |
IMAX | 保护通道内部二极管的静态连续电流 | 0 | 100 | mA |
电气参数 (测试条件: TA=25℃, VCC=5V)
名称 | 参数说明 | 最小值 | 典型值 | 最大值 | 单位 |
---|---|---|---|---|---|
VCC | CH412K 电源电压 | 1.0 | 3.3 | 5.5 | V |
ICC | CH412K 静态电源电流 | 0.1 | 2 | uA | |
VF10 | 10mA 正向电流时, 二极管正向电压降 | 0.6 | 0.75 | 1.0 | V |
VZBR | 内部稳压箱位电压 (1mA 电流) | 6.0 | 6.5 | 8.0 | V |
IRK5 | 5V 输入时 CH412K 保护通道漏电流 | -0.1 | 0.02 | 1 | uA |
IRK | 0V~3.3V 输入时 CH412K 保护通道漏电流 | -0.1 | 0.1 | uA | |
IRZ5 | 5V 输入时 CH412Z 保护通道漏电流 | 1 | 8 | uA | |
IRZ | 0V~3.3V 输入时 CH412Z 保护通道漏电流 | 0.02 | 0.5 | uA | |
VP5Z | 10uS 宽度 5A 脉冲电流下 CH412Z 箝位电压 | 15 | 20 | V | |
VP5K | 10uS 宽度 5A 脉冲电流下 CH412K 的箝位电压 | 23 | 30 | V | |
CIK | CH412K 保护通道的内部寄生电容 | 0.4 | 1 | 2 | pF |
CIZ | CH412Z 保护通道的内部寄生电容 | 10 | 20 | 36 | pF |
虽然它的 TVS 钳位会在 6.5V,不过因为接了 3.3V 电源,所以一般情况下是由电源吃掉 IO 脚上超过 V_{CC} + V_{FIO} = 3.3V + 0.75V = 4.05V 的电压。
而 MCU 对应引脚耐压是 3.6V 的,极限值是 4.0V。不是静电放电事件的情况下,能保护到多少我就不知道了,听天由命了先,SOT-363 封装的保护器件好像不太能满足,没炸 MCU 前就先这样吧。 静电放电事件情况下 ,因为 ESD 器件和 MCU IO 口之间是有串电阻的,所以不用担心。
EEPROM
M24C64-F: STMicroelectronics的64-Kbit I2C串行EEPROM。
目前计划直接在固定的地址存储数模、模数转换查找表和一些设置数据。
防反接二极管
没接风扇的时候,这俩货平分 5A 电流,温度能到 120℃。如果有下一个版本,得考虑每路再多贴一个。