项目实现功能
由tft lcd液晶屏幕显示的升压斩波直流电源转换器boost dc-dc电源电路,并完成了锂电池充放电电路的设计和仿真分析。先来看看项目效果演示:
,时长02:49项目实现的功能:
1. 全数字方案;
2. 电路输入15~26v,输出15~35v,最大电流5a;
3. 单片机pwm控制boost电路输出;
4. pid算法构成反馈环;
5. 状态机控制系统的输出模式;
6. rtos协调整个系统的不同任务;
7.按键交互设置输出模式及参数。
硬件框架及设计
先来看看系统的硬件框图,如下:
整个系统分为四个部分进行设计:
1)在boost电路的功率计设计方面,采用了集成度更高,更加小体积的电感,电容和开启内阻极小的功率增强型金属氧化物场效应管mosfet。2)在boost电路的控制系统方面,采用了小封装体积的stm32单片机微处理器作为中心处理器件,并采用了霍尔传感器作为反馈单元。3)在显示屏的设计方面,采用了2.2寸的tft lcd的rgb全彩屏幕进行显示,并采用spi通信协议进行控制和写入。4)在人机交互方面,采用了5个功能分明的按键,保证了系统的易用性,同时也没有对系统的交互性进行损失。
最终我们得到了一个电路上效率较高,显示性能和交互性也较强的boost dc-dc电源转换电路。
✓ boost功率级设计boost电路是一种升压型dc-dc电源变换器,通过pwm信号控制电子开关,促使电感电容不断传递能量从而实现输出升压,它的基本拓扑结构如下
通过脉宽调制信号pwm对三极管的基极进行控制,使三极管快速的通断。
在三极管导通时,相当于输入电压直接加在电感两侧,电感电流呈线性增加,储存能量,同时二极管反向偏置,防止电容电压放电;当三极管断开时,由于电感的电流不会突变,则电感的电流会流经二极管到电容及负载上,此时储存在电感内的能量被释放,使得电容两端电压高于输入电压,以此实现升压的过程。更改脉宽调制信号pwm的占空比,就改变了电感储存能量的时间长短,时间越长,电感的能量就越多,从而关断期间释放的能量也就越大,输出电压也就越大。
通过对原理的研究,我们可以得到下面两个公式
根据工作条件:输入电压17v,输出电压26v,工作频率114khz,负载50ω,最大允许纹波50mv。计算电感及电容参数:
l1=32.45uh,取l1=33uh
c》31.57uf,取c=50uf
在实际情况中,电路的负载变化时,如果保持pwm占空比不变,则输出电压会有所变化。为了保持输出电压稳定,我们需要反馈调节机制:pid算法,反映了控制器输出量和误差之间的闭环关系。
将计算好的l1和c参数代入simulink仿真,并设置pid反馈环:设置kp=10,ki=1,kd=0
运行仿真,可以得到较为稳定的电源输出:
为了实现电路的反馈,需要电压电流采样。电压采样使用分压电阻,电流采样使用霍尔传感器acs712。
由于单片机pwm输出的驱动能力有限,故要想控制boost电路,需要mosfet驱动器的辅助,这里使用ucc27511。
系统中其他器件的选型为:
mcu采用stm32f103c8t6;
mosfet驱动器采用ucc27511;
tft-lcd采用1.44寸彩屏;
霍尔电流计采用acs712-20a;
辅助电源采用k7812-2000;
mosfet采用csd18540ktt;
电感采用hsc1770封装的功率电感;
肖特基二极管采用cls03;
输入输出电容采用2220封装的钽电容;
✓ 单片机控制级设计
单片机控制级负责pwm信号输出,电压电流采样以及屏幕控制,需要在单片机最小系统的基础上引出pwm输出,adc采样和spi通信引脚。
✓ 按键交互设计
五个按键功能分别为:
menu:停止输出,模式选择
up:选择恒压模式,增加设定值
down:选择恒流模式,减少设定值
ok:确认该位设定值,切换下一位
start:开启电源输出按键采用下降沿触发方式输入单片机,使用电容进行硬件滤波,减小误触概率。
系统软件设计
本系统的软件基本架构如下图:
然后在stm32cubemx内,对该框架进行一个使能和初始化。外设设置说明:adc双路采样使用dma循环模式;5个按键采用下降沿触发;spi通信协议由于使用gpio软件模拟,故设置成推挽输出即可;pwm输出采用高级定时器pwm模式;使用st link v2对代码进行烧录;
高速时钟源采用外部8mhz晶体振荡器,并将apb1总线倍频到64mhz。
✓ tft屏幕通信设计
tft lcd屏幕的底层我们采用gpio软件模拟spi通信协议,单向只输出;
从最高位开始,依次移位对要发送的8位数据和指令进行发送。
引脚定义:
pb10:数据/命令切换信号
pb13:时钟信号
pb15:串行数据发送
✓ rtos任务设计
本设计由三个rtos任务构成,分别是:
void state_change_function(void const * argument);//状态切换任务void tft_show_function(void const * argument);//屏幕内容刷新任务void drive_sample_function(void const * argument);//pwm输出及采样反馈pid运算任务
其中:
状态切换只有在按键按下之后才会触发;
屏幕内容刷新只有在内容需要更改的时候才会触发,防止系统资源过度占用,并且在实时显示输出量时更新频率为20hz;
pid运算只有在start之后才会开始进行。
✓ 状态机设计
假设要操控某一系统,通过按键设定功能,这时我们可以采用有限状态模型,系统拥有有限的一些状态,而我们只需指定有限的状态切换条件即可,这就是状态机。
通过上述关系图的分析,我们可以将有限状态模型应用到本设计的功能设定和运作当中,使得系统运行逻辑性更强,效率更高。
所有代码都严格写在了user code范围内,可以直接用cube更改外设。
元宇宙不止是畅想 “科幻畅想 元宇漫游” 主题论坛开讲
管式土壤墒情监测仪的功能介绍
分析闭锁器结构与材料及如何判断闭锁器坏了
奔驰正式发布史上首款高端皮卡X- 卖29万起 图文详解
华硕最近发布了具有一些荒谬规格的ROG Phone 3
基于TFT LCD的BOOST DC-DC电源电路设计
电离辐射与我们时刻相伴
高通物联网的万物互联平台大布局
5G 设计推动射频前端模块化更接近现实
电子元器件基础知识大总结
如何发现EUV过程中产生的缺陷
LG与联想合作推出13英寸可折叠平板
Wobbleworks推出新款3D打印笔3Doodler Create
CAN总线和RS-485总线的主要区别
索尼PCM-A10录音笔评测 轻盈的体态下蕴含着不凡的实力
采用温度传感器构成的温度控制电路图
航锦科技拟20亿元收购两军工企业 提升军工电子领域竞争力
音圈模组加持的AI烹饪机器人
深度:MIMO系统与波束赋形(上篇)
一加电视曝光 越南制造售价超万元