完整控制板
原理图
数字控制板的整体原理图如下:

PCB
正面:

反面:

控制板原理
电压采样
电压采样采用的电阻分压方式:

上电阻为R37 330K,下电阻为R38 8.2K,分压后通过AN-VOL连接到单片机的ADC输入引脚。此电阻取值可以确保测量最高136V电压。
D3为稳压管起保护作用,确保AN-VOL不会超过3.3V。
R39和R40这两个电阻没有使用,如果用户需要精细化计算电压,可以考虑使将R38设置为100K的电阻,然后通过并联R39、R40来降低下电阻的阻值。因为单片机的采样固定12比特,下电阻的越大,则测量就越精确。
电流采样
本方案采用外置采样电阻对电流进行采样,输入负极连接电源的负极输出,输出负极连接用户负载。

采用本方案会导致用户负载的负极电压比电源实际的输出电压高一点点,按照10A电流来算,仅高出0.05V,可以忽略不计。
由于采样电阻很小,两个10毫欧的采样电阻并联,最终只有5毫欧,直接通过单片机ADC测量不可行,所以必须要增加放大电路:

务必使用rail-to-rail的运算放大器,本放大器的放大倍数为24.5倍。
这样,当电源输出1A的电流时,单片机采样引脚上的电压为:0.005*1*24.5 = 0.1125V的电压。
热敏电阻
电路增加了外接热敏电阻,以测量电源开关管附近的电压,避免电源开关管温度过高。

目前仅仅是测量而已,并没有根据温度值对电源进行控制。
电池供电、继电器控制电路
当使用充电完成自动关机功能时,必须要外接电池供电,以便在关闭220V电源的场景下依旧可以控制继电器断开。
电路如下:

电池供电电路分两部分:
第一部分是充电电路:这部分直接使用TP4056对锂电池充电,编程引脚使用2K电阻,对应充电电流为580mA。
第二部分是电池供电电路:电充供电电路由一个PMOS Q4 和一个NMOS Q3 组成,控制板上电时BATCTRL输出低电平,Q3关闭,Q4也处于关闭状态,电池不供电。当需要电池供电时,单片机BATCTRL输出高电平,将Q3的栅极为高电平,Q3导通,从而导致Q4的栅极为低电平,Q4导通,电池向系统供电。使用电池供电时,系统实际不足4V。
继电器部分比较简单,通过一个NMOS控制继电器的负极是否与GND联通,当单片机将RELCTRL引脚设置为高电平时,继电器导通。
DAC输出
电源控制最关键的是控制电流和电压,如果是手动模式,可以直接使用电位器控制,但是数控时,就需要使用DAC了。
本方案使用的是 STM32F103C8T6,该MCU没有DAC模块,本方案考虑使用pwm+电容实现DAC。
原理图如下:

MCU主频固定后,PWM的最高频率也就固定了,而PWM的频率越高,则PWM的周期也就越小,而使用pwm实现DAC时,周期决定了DAC的分辨率。为了提高DAC的分辨率,本方案考虑使用两个PWM输出叠加来提高精度。
由上图可知,PWM通道1的电阻为1K,通道2的电阻为62K,相当于62进制的数据。假设PWM的周期为256,那么在线性区间内,DAC的最大有效值为 256*62+61=15933。考虑到通道2也可以达到256,所以最大有效值应为:256**62+256 = 16128。
PWM输出电阻后面跟的是105电容,起到滤波作用,确保在进入运算放大器的同向输入端时是平滑直线。
PWM输出的最高电压为3.3V,而TL494的参考电压为5V,所以这里还需要考虑对PWM的输出进行放大,如图所示,最高电压为:3.3*(5.1+10)/10 = 4.983V。
运放的工作电压为5V,最高输出电压为4.98V,所以运放必须使用轨到轨的器件!
控制板排线
控制板与电源使用8pin的排线连接,后续方便维修。
排线每个引脚的功能如下:

LCD
LCD使用240x240分辨率的TFT彩色显示屏,工作模式为SPI串口,液晶显示器的背光单独控制。

使用控制板
电源面板
面板图:

- 电源面板支持两种输出接口,XT60-F 和 插头。
- 电源调节键为EC11旋钮,支持顺时针、逆时针旋转、按键功能。
- LCD使用的是240x240的TFT彩色显示屏。
电源内部连接图
下面是电源的实物连接图:

自动断电连接
如果希望充电结束后,电源能够自动关机,那么就需要连接锂电池和继电器:
- 继电器(5V)用于控制220V输入电源的打开和关断,连接常闭线。
- 电池用于关断220V输入电源后,为继电器提供电源,确保电源能够关闭指定时间。
当启用自动关机功能,满足条件后,继电器通电,关断输入电源,此时控制板将使用电池供电。
电路连接图如下:
