模拟电路 (图 1)
为了满足 0-30V 和 0-1A 的规格要求,我需要在模拟电路部分寻找能够承受高电压(< 35V)的元器件。我选择了 MCP6V51 系列高压运算放大器和 MCP6C02 高侧电流传感器,因为它们符合我的设计要求。

该设计采用传统的恒压恒流误差积分反馈电路。选用的运算放大器MCP6V51可承受高达49V的电压,并以其低漂移和良好的直流性能而著称。反相输入端和同相输入端的电阻值均设置为较低(10kΩ)且相等,以最大程度地减少失调误差。这些电阻与1µF电容(C1、C2)共同构成RC滤波器,用于消除数模转换器(DAC)输出端的残余噪声。微控制器的DAC提供0至3.3V的调节电压,因此必须使用R1和R2将输入电压反馈设置为该范围。.

关于电流测量,最好在高电位侧进行,以保持共地并尽可能使用最低的电流检测电阻,从而最大限度地降低电压降和功耗。MCP6C02 高电位电流传感器符合这些要求。它可在高达 65V 的电压下工作,增益为 100,允许使用较小的电流分流器。由于此应用的最大电流预计为 1A,因此分流电阻应约为 30mΩ,这将产生 30mΩ * 1A * 100 = 3.0V 的反馈电压。该电阻器在印刷电路板上以 40mil 宽(约 1mm)和约 64mm 长的铜走线实现(参见图 3)。.


实验室电源的负载范围从开路到短路,因此需要额外的保护元件。反向连接的1A通用二极管(D1、D2)以及限流电阻R3确保电流检测芯片的差分输入电压在任何情况下都低于1.2V的最大值。电流放大器中的积分电容(C3)必须比电压侧的积分电容大几个数量级,以补偿电流检测放大器引入的传播延迟,从而稳定回路。微控制器DAC的第二个通道向电流误差放大器U2提供调整后的电压(进而提供调整后的电流)。
两个放大器的输出通过逻辑或门互连,并由小信号二极管D3和D4驱动输出端的达林顿管。该或门决定电源处于恒压模式还是恒流模式。

 

微控制器电路(图 2)
微控制器控制键盘和液晶显示屏,并为模拟控制回路生成参考电压电平,这需要两个高分辨率的数模转换器 (DAC) 通道。模数转换器 (ADC) 将用于测量各种电源参数。

之所以选择 Atmel SAML21,是因为它采用小巧的 32 引脚 TQFP 封装,集成了两个 12 位 DAC 通道和一个 12 位 ADC。该应用并不需要完整的 12 位 DAC;但是,由于固件计算数值时会受到规格和舍入误差的影响,精度略有损失,因此建议预留一些额外的余量。.


固件
代码用 C 语言编写,驱动程序有两个版本:一个版本名为 PowerSupplyBasic.c,提供基本功能,用于调节和测量电压和电流;完整版本名为 PowerSupplyFull.c,除了提供基本功能外,还能测量散热器温度,根据散热器温度控制风扇运转,显示输入电压和功率,以及功率晶体管的功耗。这些驱动程序可在参考文档中找到,应与 PowerSupply.h 头文件一起添加到 Studio 7 项目中。该程序使用 Studio 7 IDE(版本 7.0.129)编译,并使用 Atmel ICE 进行编程和调试。印刷电路板上的编程引脚与编程器自带的标准连接器不兼容,因此必须安装新的连接器,以确保引脚与图 2 所示的引脚以及电路板布局对齐。

上电时,电压设置为 0 V,电流设置为 50 mA。显示屏第一行显示设定电压和测量电压,第二行显示设定电流和测量电流(图 5)。
如果安装了完整版的驱动程序(以及下文所述的相关硬件),则可以显示辅助功能。

主界面如下所示:

硬件:
对于被动式表面贴装元件而言,击穿电压通常无需关注,因为大多数电路的工作电压都很低。但此应用是个例外,因此必须重视此参数。我在印刷电路板上使用的一些电容器的额定电压为 50V 或更高。如果能找到这种尺寸的封装,最好在所有位置都使用 50V(或更高)的陶瓷电容器。陶瓷片式电容器的电容值与电压相关;当电压接近其最大工作值时,电容值会降低。

我为 L78L3.3 稳压器 VinLOW 添加了一个独立的 VDD 电源。该稳压器的最大输入电压为 30V。如果您的电源电压更高,则 VinLOW 必须由一个独立的低压电源供电,或者必须插入一个元件来在 Vin 和 VinLOW 之间产生压降。电阻或稳压二极管也可以;该电路消耗约 25mA 的电流,主要用于点亮屏幕背面的 LED。.

如果您选择完整版本,则还必须连接二极管 D5,以确保与功率晶体管 (TIP140) 良好的热接触。电阻 R14 提供约 100µA 的恒定电流,因此二极管上的压降仅取决于温度,典型值为 0.7V 和 -2mV/°C。然而,不同二极管的绝对电压值和温度系数(斜率)存在显著差异。因此,必须在软件中单独校准此参数。SAML21 内置出厂校准的温度模块,因此是一个不错的起点。
我选择了铝制外壳,完整的电源如图 5 所示。


变体:
如果您只想构建不带散热风扇的基本版本,则不需要以下元件:T3、R9、R14、R7、R8、D5。
我使用的变压器在空载时可提供约 40V 的整流电压,额定电流为 1A。因此,我将最大稳压电压设置为 30V,最大电流设置为 1A。满载时,功率晶体管的集电极和发射极之间的总电压应为 4-5V。
如果您使用的变压器提供的电压更低或更高,您可以修改设置 DAC 参考电压的代码。如果所需的电压变化超出电位器 R2 的调节范围,则必须更改电阻 R1 的值,使 U1 反相输入端的电压低于电源最大输出电压对应的 DAC 最小高电平 (VDD – 150mV)。
最大电压限制由运算放大器和/或功率晶体管的最大额定电压决定。对于所选的运算放大器,空载输入电压必须低于 49.5V 并留有安全裕量。电流上限取决于功率晶体管的承受能力。TIP140 可承受 10A 的直流集电极电流,但可以通过并联多个功率晶体管(并配合合适的均流电阻)来进一步提高输出电流。电流越大,功耗也越高,因此需要采用合适的散热器设计来解决。我将旧电脑主板上的散热器和风扇组合在一起,在 30W 的功率下散热效果非常好。即使在 10A 的电流下,基极控制电流也不会成为问题,因为 TIP140 的 hFE 值仍然很高。
较小的达林顿控制晶体管 BCV29 的连续集电极电流限制为 0.5A,在该电流下 hFEMIN = 4000,因此可以为运算放大器 U1 提供非常小的负载。该晶体管焊接在印刷电路板上。对于仅需低电流的应用,可以省略外部安装的 TIP140 功率晶体管,并将 BCV29 的发射极直接连接到电源输出端。该晶体管采用 SOT89 封装,适用于表面贴装,因此散热量极小,功耗也会受到限制。如果考虑采用此方案,请务必密切关注 BCV29 晶体管的温度。

图 4. 输出屏幕。.

 

总之,
微控制器为这款电源集成多种功能提供了可能,例如在测试和其他应用中对电压/电流曲线进行编程。
本项目的目标并非设计一款高精度商用电源,而是一款适合我工作台使用的实用电源,但最终成果却超出了我的预期。

  

32 位电源的物料清单