目录
一、项目描述
二、原理图
三、实物
四、论文
五、程序
六、资料清单
本项目设计了一款用于小功率电子设备的无线充电器,该充电器由发送控制器、接收控制器和充电监测三部分所组成。整个项目是基于电磁耦合方式设计,由能量发送线圈产生磁场,接收线圈感应到电动势之后由接收控制器处理,实现设备的无线充电。发送控制电路由高频大功率供电芯片XKT-412和供电传输芯片T5336为主要器件构成。接收控制器主要由电磁耦合接收电路和供电电路组成,输出稳定的电压和电流。整个项目设计了以STM32单片机为核心的实时充电监测模块,并能在OLED液晶显示屏实时显示充电压,充电电流和功率。
系统电磁耦合机构选用PP拓扑结构,如图所示,是系统结构图。左边是发送控制端,包括电源,发送控制和发送线圈组成,右边是接收部分,由单片机,显示器,接收控制器和接收线圈组成,接收控制器给充电设备进行充电。发送端采用12V直流电压源进行供电,能量在发送控制器与接收控制器形成的电磁耦合机构中进行传输,进而实现电能的无线传输,接收控制器进行电能的整流后给充电设备充电。检测系统由单片机控制完成,对充电过程进行检测,并且使用液晶屏进行信息的显示。
无线充电器的发送电路采用XKT-412芯片和T5336芯片搭建,采用此搭配可以稳定地提供发射频率。
XKT-412芯片的工作电压范围在直流5V到直流12V之间,采用CMOS制程工艺,具备极强的自动适应供电电压调节功能,这一特点使得它在比较宽的电压下都可以正常工作,XKT-412芯片还具备自动频率锁定,自动检测负载,自动功率控制等。使用XKT-412芯片可以提升能量输送的速度,提高能量转换效率。表1是 XKT-412的引脚功能。
表1 XKT-412引脚功能
编号 |
引脚名称 |
功能描述 |
1 |
VD |
电压检测 |
2 |
FT |
频率微调 |
3 |
MFA |
多功能调节 |
4 |
WL |
功率加强 |
5 |
GND |
地 |
6 |
OUT |
输出 |
7 |
TD |
功率驱动 |
8 |
VDD |
电源正极 |
XKT-412 的主要任务是,负责处理系统中无线电能传输的功能,依据的是电磁能量转换原理,对接收部分进行实时监控,而且控制发送电路与接收电路的能量转换;它还需要负责各项充电设备的快速充电智能控制,XKT-412 设计的发送控制器,不必太多的外围电路,几个外围的元件就能让系统做成高可靠的无线快速充电器、无线电源供电。
充电电路需要外部电源模块提供12V的直流电,12V的直流电通过一个47uF的电容进行整流,这一个步骤是确保电压稳定。
T5336受XKT-412的控制,它输出一个可以控制的低电压。12V的直流电压与这个低电压进行减法运算,得到的电压差控制L1和C3,C4,C5,C6的LC振荡电路,将发射出稳定的高频电磁波。
T5336 是芯科泰最新开发的廉价优质高频大功率输出集成电路,配合XKT-412芯片工作,体积小,输出功率大,芯片采用最先进的宽电压自适应技术芯片设计工艺,同样的发射电路可以适用于任意电压范围内,可以不改变任何器件,使用极为方便,电路极为简单。T5336芯片的功能引脚如图所示。
T5336芯片
T5336直接作用于发送线圈,控制线圈进行电能的发送,它采用电磁能量转换原理并配合接收部分做能量转换及电路的实时监控;该芯片一般都是配合XKT412芯片或者是XKT408芯片搭建稳定的发送控制电路。
LC振荡电路在振荡过程中由于线圈的内阻不能忽略且在能量传输过程的能量损耗导致电路中振荡电流肯定会大幅衰减,这时通过控制T5336的7、8号输出口电压,调整LC振荡电路两端的电压,用以补偿电路中阻抗和能量传输损耗的电压,使发射线圈所发射的电磁波能维持在稳定状态。无线充电器发送原理图如图所示。
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "adc.h"
#include "oled.h"
#include "iwdg.h"
int main(void)
{
u8 t;
u16 adcx;
u16 adcx2,adcx3,adcx4;
float temp,temp3,temp4,foult,tempp,power;
delay_init(); //延时函数初始化
uart_init(9600); //串口初始化为9600
LED_Init(); //初始化与LED连接的硬件接口
Adc_Init(); //ADC初始化
OLED_Init(); //初始化OLED
OLED_Clear();
IWDG_Init(4,625); //与分频数为64,重载值为625,溢出时间为1s
t=' ';
while(1)
{
OLED_ShowCHinese(18,0,4);//电
OLED_ShowCHinese(36,0,5);//压
OLED_ShowCHinese(72,0,4);//电
OLED_ShowCHinese(90,0,6);//流
OLED_ShowCHinese(18,4,7);//功
OLED_ShowCHinese(36,4,8);//率
adcx3=Get_Adc_Average(ADC_Channel_2,10);
printf( "%2d\n",adcx3 );
temp4=(float)adcx3*(3.3/4096);
temp3=2.0*temp4;
tempp=temp3;//
adcx3=temp3;
OLED_ShowNum(18,2,adcx3,1,16);
OLED_ShowString(26,2,".");
temp3-=adcx3;
temp3*=1000;
OLED_ShowNum(28,2,temp3,3,16);
adcx=Get_Adc_Average(ADC_Channel_1,10);
temp=(float)adcx*(3.3/4096);
foult=temp*10*1000;//temp*10为电流值,单位为mA
adcx=foult;
OLED_ShowNum(72,2,adcx,4,16);
power=temp*10*tempp;
adcx4=power;
OLED_ShowNum(60,4,adcx4,1,16);
OLED_ShowString(68,4,".");
power-=adcx4;
power*=1000;
OLED_ShowNum(70,4,temp3,3,16);
IWDG_Feed(); //喂狗
delay_ms(250);
}
}