发作品签到
标准版

#第五届立创电子#线性预稳压/DCDC双模切换两象限电源

工程标签

9.6k
0
0
22

简介

一个功能尽可能全都要的电源

简介:一个功能尽可能全都要的电源

开源协议

GPL 3.0

创建时间:2020-06-21 03:31:54更新时间:2022-02-16 13:51:02

描述

1、自我介绍

本人是在校学生,STM32稍微入门的水平,想学习多一种单片机,GD32或许是个不错选择。

2、项目简介

想要做一个功能尽可能全都要的电源,见识过IMAXB6充电器,发现了几个缺点,于是在他的基础上进行改造。

3、项目描述

作为数控电源,首先要分成4大模块:功率,数模,模数,人机交互

授人以鱼不如授人以渔。

我认为硬件开源的项目,比起只是把图丢出来,秀秀功能,发个HEX。还不如把原理讲清,让别人吃透你的设计,才算分享。

硬件细节

说到电源,首先从功率部分讲起

功率回路:

输入-->xl4501(我以前开源的升降压拓扑,点我个人主页查看)-->LM317(进一步稳压)-->ACS712(霍尔电流采样)-->输出
image.png

假负载回路:

输出端电流反向流入-->ACS712(霍尔电流采样)-->IRF1404(低导通电阻MOS管)-->R12(取样电阻)-->GND

image.png

外设电压产生:

首先是中间电压:

image.png

功率5V供电:

image.png

-5V产生:

image.png

其实降压拓扑的ic都是可以用来产生负压的(包括同步整流的ic),

而现在新的PDF一般不会写出来。你百度出来的图基本都是MC34063,这个芯片很全能,但效率上不去。

话虽如此,但里面的拓扑很值得学习。

简单的电源滤波电路:

RC滤波后,经过三极管放大,从而抑制纹波。

image.png

image.png

关于电源这图的线性降压为什么不用1117-5,而是用7805呢?

这要从纹波抑制这个参数说起。

下面这图是1117的,作为低压差稳压块(LDO)来说,由于用P管作调整管,这曲线符合预期。

image.png

下图是7805的,由于采用N管调整,对输入的干扰不是敏感,所以高频的纹波抑制上去的。

这对于DCDC再线性稳压给精密部分是有好处的。

(功率部分线性稳压采用LM317同理,大电流低压降的型号有LM1084)

image.png

反馈调节部分:

预稳压跟随:

LM317的电压经过R6,R7分压,输入进Q3(PMOS),当Q3的GS电压到达导通阀值时,Q3导通,FB拉高,

使得XL4051输出变低,不通过单片机控制便能电压跟随,按照图上的参数,实测LM317两端电压为3V。

而且R10的下方并不是接GND的,而是接到其中一个DAC的输出,这样便可以0V起调了。

【假设:忽略Q3,DCDC_CTRL的电压为1.25V(FB的内部参考电压也是1.25V),则输出电压也稳定在1.25V,

如果DCDC_CTRL电压比1.25V高,则输出会比1.25V低(前提是带负载,如果空载,电流会从反馈电阻流到输出)。好比一个反相比例放大电路】

image.png

DAC驱动放大:

第一个运放组成巴特沃斯滤波器,用作滤波和增加输入电阻

第二个运放组成反相比例放大器,使DAC动态范围在运放电源轨内任意调节,充分发挥DAC位数。

image.png

单端转差分电路:

由于想把ADC的分辨率用起来,所以用GS8592(性价比很高的精密轨对轨运放),做了单端转差分电路,
但目前的情况是电流读数不是很稳定,不确定这个电路是可靠的,等排查了问题修改了电路再重新编辑。

image.png

人机交互的IO复用:

LCD1602是EN下降沿才加载数据,其他时候数据脚是可以做其他用途的,

这里我引出一个按键使能端,置低后,便能读取按键状态了

LCD.png

软件细节

这是温度采样的原理图,通过三极管电流镜电路产生4mA的恒定电流流过NTC电阻

NTC.png

这是从pdf里复制出的电阻表,经过excel的计算转换,导出数组,推荐大家也这么操作

(末尾给出腾讯文档链接,可以学习下对应函数)

NTCE.png

经过二分查表法,便能将adc电压转成对于温度,代码如下:

//输出16~99度
uint8_t ntc_decode(uint16_t dat)//以降序排序的二分法查表
{
	uint8_t min=0;
	uint8_t max=83;//限制最大显示99度
	uint8_t temp;
	uint8_t i;
	for(i=0;i<3;i++)//二分查表
	{
		temp=(min+max)/2;
		if(dat>=ntc_code[temp])
			max=temp;
		else
			min=temp;
	}
	for(i=min;i=ntc_code[i])
			break;
	}
	return i+16;
}

CGRAM作模拟条显示的代码,具体效果看下面视频

通过这个模拟条,节省了1602本来不多的屏幕空间

通过实际值与目标值的百分比,让使用者知道当前是恒流还是恒压模式,预估当前设定的值,

便于查看更快的变化(万用表刷新的速度一般是4HZ,我这里的字符刷新是5HZ,模拟条是10HZ)


void lcd_write(uint8_t dat,uint8_t cmd);//1602写数据,cmd为0为命令,1为数据

void LCD_analog(uint8_t add,uint8_t dat)//模拟条CGRAM加载
{
	uint8_t temp;
	lcd_write(0x40+(add<<3),0);//CGRAM地址
	if(dat<=40)//正向百分比显示
	{
		for(temp=40;temp>dat+4;temp-=5)
			lcd_write(0x00,1);//一次填充一行空白
		if(dat>0)
		{
			dat--;
			lcd_write(0x1f<<(4-dat%5),1);
			temp-=5;
		}
		temp-=5;//当作渲染了一行
		for(;temp<40;temp-=5)//如果还没有负溢出,继续填充
			lcd_write(0x1F,1);//一次填充一行黑点
	}
	else if(dat<80)//反向百分比显示
	{
		dat-=39;//偏移,然后同理
		for(temp=40;temp>dat+4;temp-=5)
			lcd_write(0x1f,1);
		if(dat>0)
		{
			dat--;
			lcd_write(0x1f>>(dat%5),1);
			temp-=5;
		}
		temp-=5;
		for(;temp<40;temp-=5)
			lcd_write(0x00,1);
	}
}

其他代码就不放出来了,函数间耦合度很高,不是简单展示一两个函数就能表达清楚,等软硬件完善后再公开代码!

核心算法:

该电源的核心算法就是二分查表,在校准的时候,把对应DAC和ADC一并保存到flash里,

跳过的中间值用等比例填充。需要用的时候再查表找出来。

优点:简单快捷,消除了ADC的非线性误差。

缺点:避免不了PT8211的时飘和温飘带来输出的变化。而且仅校准数据占用了64kB的flash空间

(小声BB:ST家的103c8t6是有128kBflash的喔,GD家的还不知道)。

如果后面要修正误差就要加入PID运算了。

元件和遇到的问题:

物料名称遇到的问题
CS1237(电子秤ADC)逻辑电压要求是0.7VDD,然而3.3是5的0.66,所以要经过电平转换才能驱动
PT8211(音频DAC)可以用SPI兼容I2S总线,但实际输出位数远远少于标出来的16位
GS8592(精密运放)该项目用的比较多的的元件,低失调电压对于仪表类应用很合适,但不知道是布线还是ACS712问题,电流读数总是在跳。
STM32F103C8T6PWM的CH2N通道用HAL库死活调不通,刚好就是led背光驱动的IO
GD32F103C8T6还没开始移植

机械设计:

整体采用子母板设计,通过FPC排线连接,方便调整高度或者拔插STM32最小系统板

(粘白色胶带的电位器是校准好的标识)

IMG_20200912_172411.jpg

IMG_20200912_172441.jpg

成品图片:

IMG_20200819_212118.jpg

IMG_20200819_212127.jpg

画大饼:

作为一个全能型选手,怎么可能就这!

已开发的功能:待开发的功能:
完整的人机交互操作高效率输出模式
温度读取并控制风扇两象限模式
可调恒流恒压低噪声输出外接模块达到更多功能
假负载模式***

拓展模块功能:

锂电池平衡放电与单节电池电压检测

T12烙铁接口的温度读取

接到电脑上位机

视频

功能演示视频地址:https://b23.tv/sxZvqv

做视频也是门技术,可惜我没更多精力去专注其他东西,视频很差,没剪辑,没切镜。还请多多包涵。

图纸文档

【腾讯文档】NTC温度电压对照表:https://docs.qq.com/sheet/DVHR0Tk9NRnRDeWZ1

当前电路存在的问题:

恒流输出或负载时纹波较大,该版本PCB是无法解决的了,需要用仿真,修改运放的有源滤波电路,把零点极点调对才能正常使用。

设计图

原理图(1 / 4)

BOM

暂无BOM

附件

序号文件名称下载次数
暂无数据
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航