外观
电路原理分析
数控直流电源表整体由四部分组成;
- 电源输入输出电路
- 开关控制电路
- 检测电路
- 主控电路
数控直流电源表的电路原理并不复杂,电源输入后经过pd诱骗或降压芯片设置为指定的输出电压,经过固态继电器控制来导通输出到接口处。唯一需注意的是各电压之前不可互相串扰,不可同时导通,若使用mos管来进行开关的话,需要考虑高输出电压对低输出电压的影响。
电源输入输出电路
数控直流电源表采用16Pin-Typec接口进行电源输入,注意不可使用2P或6Pin,否则无法进行电源诱骗,诱骗芯片采用ch224K,焊接简单,并且可通过引脚电平来改变输出电压,非常方便,注意默认输出电压尽量设置在5V,同时该芯片其实并不只有9、12V输出,后续还有15V、20V输出诱骗,只是这些电压并不常用,这里我也就没有在代码中进行配置了,若需要15、20V电压输出,一定注意DCDC最大输入电压是否足够且电容耐压值是否足够。
在数控直流电源表中总共有三路输出,TYPE-C的VBUS,DCDC的3.3V,LDO的1.8V,这三路电源不可同时输出,否则高电压会影响低电压。同时DCDC的选型需要考虑最大输入电压的范围,如果是最大输出12V,则DCDC的最大输入电压应该大于12V,且留有一定余量。
开关控制电路
数控直流电源通过三个固态继电器来控制三路输出电源,当CON_IO口输出低电平时,内部光耦打开控制MOS导通,从而使电源连接到外部接口,注意IO口同义时间只能打开一个,最好初始化时就全部拉高,整体关闭。
检测电路
数控直流电源可检测输出电压与电流,从而实现限流保护,其中电压检测比较简单,通过两个电阻分压即可实现,不过分压值需要考虑最大输出电压时分压值是否会超过单片机的最大输入电压。
电流检测使用INA180电流检测放大芯片来进行,通过检测R15-10mR两侧的电压差来获取电流值,最大检测电流值的范围与采样电阻、工作电压、增益倍数均有关系,以本案例来说,采样电阻为10mR(0.01R),工作电压为3.3V,增益倍数100(INA180A3),I=U/R等于 3.3V / 0.01 / 100 * 1000;最大应该是3300mA;此处的/100是除以增益倍数,电压是放大过的,我们需要还原成真实的然后再代入公式。
主控电路
数控直流电源使用STM32F070F7P6作为主控芯片,使用内置晶振,并将相关引脚均进行引出使用,在引脚分配上,需要注意OLED的IIC引脚,尽量分配到硬件IIC通道上,后续就不用软件模拟了,同时将下载引脚进行引出.
一些改进的点
- 数控直流电源支持短路保护,大部分时候起作用的是芯片而不是程序,造成这个原因是因为,当后级短路时,电压会降低,此时不能满足dcdc的工作,整个系统会断电,后续如果想使用单片机来实现短路保护,可能需要单独一路电源来进行,或者尝试自行改进电路从而实现效果。
- 在开关控制电路中,固态继电器的光耦端直接连接io引脚,若单片机默认输出低电平的话,此时三个固态继电器会导通造成问题,后续大家可以尝试在每一个IO口上加入10K左右的上拉电阻,确保默认电平是关闭固态继电器的。