|
去年论坛爱淘优惠购推荐了这个风扇,那时候没赶上14.9元的活动,花19.9买了个无电池USB供电的版本。
因为没有内置电池,需要一直插着USB使用,不太方便,一直想着要改造。
终于,过了一年之后,利用闲暇时间把控制板画出来了,于是有了这个帖子里的改造过程。
本帖采用介绍在上/图片在下的排版方式。
先上几张图看一下风扇的外观。
正面,全白的外观,底座上面有一个按键,可以在3个挡位之间切换
侧面,仰角可以调节,这是最低的位置
最高的位置
底部,由于买的是不带电池的版本,贴纸把18650电池盒覆盖了
拆开之后,控制板下方原来有一个18650电池盒,我把它切掉了,准备装上聚合物锂电池
底盖内侧,可以看到18650电池盒的盖子
自带的控制板,左上角的LTH7是LTC4054充电芯片(99%是假货),充电电流最大只有500mA,这是改造原因之一。
右上角的SOT-23 MOS管型号是SI2301,在USB没插上的时候,它会导通,将电池的电源连接到升压电路的输入端。
中间是SOT-23 MOS管是升压电路的主开关管,配合电感和SS14肖特基组成Boost电路,将电池的3.7V升高来驱动电机。
无字IC是个单片机,用于检测按键,输出PWM给升压电路等。
下面的SOT-23 MOS管型号是SI2302,用于输出断接。由于Boost电路有一个缺陷:不工作时,输入电压会经过电感和肖特基,流到输出端,这样关机之后电机还会转动,因此还需要一个MOS管在关机后把输出断开。
LTC4054简介,是个线性充电芯片
SI2301,常见小封装PMOS管
SI2301,常见小封装NMOS管
控制板背面,有按键和LED
改造原因二:原控制板的Boost电路是非同步整流,效率较低,改成同步整流可以提高电池续航时间;
改造原因三:原Boost电路性能较渣,最大挡位,风扇会偶尔停转大概半秒钟,买过这个风扇的应该都知道这个问题;
改造原因四:第一挡的风力大了些,不适合长时间吹。
下面是自己画的PCB,j**免费打的四层板
第二层,是全地层,有利于散热
第三层走各种信号线和电源线,电源线采用大面积覆铜。底层没什么元件,就不展示了
PCB回来之后,放进去试了下,大小正好。画两个螺丝孔的时候游标卡尺量了好久,一点都不差。电池是蜂语移动电源里面拆的,容量10000mAh
自己画的USB-C小板,注意上面有两个电阻
参考USB-IF官方的Type-C规范,现在常见的PD充电器都需要受电端(Sink)的CC1/CC2引脚有两个5.1k下拉电阻Rd,才会有输出
下面是Type-C接口的引脚定义,外观相同的一般定义都一样。取电时CC1/CC2需要分别接5.1k到地
自己做的控制板,焊接好的样子
充电芯片采用TI的BQ25890,可以软件编程控制充电电压,电流等非常多的参数,还可以控制QC2.0/QC3.0充电器输出高压来快充
BQ25890之前已经自己做成了小模块,模块通过底部的焊盘,焊在主板上。
BQ25890的数据手册,可以实现5A的充电电流(要很强的散热),充电速度是风扇自带控制板的10倍
按键周围的4个RGB LED,只有1mm大小,可以自由控制各种颜色
STC15单片机,现在连8位单片机都疯狂涨价了,32位根本买不起
MP2015A 3.3V LDO芯片。因为锂电池的电压会在3.2V-4.2V之间变化,如果直接供给LED,会导致LED亮度在电池快没电和满电时不一样,所以这里用了LDO.
MP2015A数据手册
Buck-Boost芯片MP28167-A,用于将电池升压后驱动风扇的电机。其实这里用纯Boost芯片就可以了,但是没找到合适的。
MP28167-A数据手册,这个芯片还是挺强的,输出电压在1V-21V之间可编程,输出电流最大3A,这些都可以通过I2C来编程,不需要再用DAC和运放自己搭调压电路了
输出端的150uF 16V聚合物钽电容POSCAP
POSCAP电容的数据手册,具有非常低的ESR@100kHz,比普通钽二氧化锰电容低很多
4.7uH电感
PCB左半边
PCB层数标识
层数标识
单片机下载口
BQ25890芯片背面,准备用硅胶粘上散热片
PCB焊好了,先试试最重要的RGB灯,紫色:
天蓝色:
灯没问题了,再焊上USB-C小板,事先已经写了程序来打开BQ25890的快充握手功能
插上USB,成功进入了QC2.0模式,充电器输出9V
9V输出没问题了,接上电池试试24W快充,单片机软件里限制了功率。
充电器输出9.02V*2.561A=23.1W,电池端的电流有5A了,充太久发热比较严重,后面在程序里把功率改小点
最后测试MP28167-A Buck-Boost芯片,程序里设置一组输出电压和对应的LED发光颜色。
4.5V,实测4.43V,右边万用表是自己做的
6.5V,实测6.42V
9V,实测8.86V,有点偏差,因为分压电阻和芯片的基准电压有一定误差。
至此,所有硬件工作正常,再把单片机软件所有功能写好,就可以正常使用了。
目前的软件已经实现了QC2.0快充,RGB LED控制,调整输出电压来控制风扇转速等,完美解决了原控制板充电慢、风力大小不合适等问题。
下面继续介绍单片机软件的实现方法。
主函数包含硬件初始化,初始化完成后,直接关闭升压电路和LED,让单片机进掉电模式。
如果按键按下了,会触发外部中断,把单片机唤醒,把升压电路设定好输出电压并打开,点亮RGB LED后,单片机又可以继续睡觉去了。
充电器插上也会触发中断,单片机读BQ25890寄存器判断充电器类型(电脑USB/普通5V充电器/快充充电器等),调整好各种充电参数之后,就可以继续进掉电模式了。充到4.2V之后BQ25890会自动截止,同时通知单片机把RGB灯一直点亮表示充满。
BQ25890各项充电电压电流设置,图片里只是一小部分,至少有四五十个可以设置的项目。
设置好了之后,执行PMIC_update函数,就会把设置值更新到BQ25890寄存器里
PMIC_update函数的工作原理如下:
比如QC_12V使能,如果设成了1,就把PMIC寄存器[1]的bit1设成1,否则设成0
预充电电流的LSB是64mA,那么就把电流值除以64之后左移4位,放到PMIC寄存器[5]的bit4~7
QC3.0握手过程如下:
A点是BQ25890自动在D+/D-线上握手,让充电器进入QC2.0模式,然后给D+加3.3V,D-加0.6V,控制充电器输出9V
QC3.0的程序需要自己写。单片机可以控制BQ25890的寄存器来调节D+/D-电压,从而实现QC3.0握手。
B点是QC3.0 Continuous mode升压脉冲,一个脉冲可以让VBUS从5V开始升高0.2V;
C点是Continuous mode降压脉冲,一个脉冲可以让VBUS降低0.2V;
B/C是为了测试充电器是否支持QC3.0模式。如果发送了B/C点的脉冲序列,但VBUS没有变化,说明充电器不支持QC3.0模式。
D点的升压脉冲是为了把VBUS调到想要的7V,然后开始充电。
充电电流限制在3A,此时功率约21W
下表是QC2.0/3.0模式下,D+/D-电压对应的VBUS输出电压
在程序中,如果充电器插入,BQ25890会发送一个中断信号,单片机如果读取到充电器是QC2.0模式,就会开始尝试握手QC3.0
此时单片机会走Timer2中的QC3.0握手流程。
v_increase_2变量决定升压脉冲的数量。10个脉冲可以让充电器输出电压升高到5V+(0.2V*10)=7V
按键按下之后会进入中断,在中断里调整挡位,并设置RGB LED的颜色
至于低电量检测、通过RGB LED显示电池电量等,就需要获取电池电压。
BQ25890已经提供内置ADC,只需要自己写一个程序就可以调用了
本次改造的所有文件都在下面的压缩包里了,包括PCB文件(包含所有元器件的参数)、可以直接做PCB的Gerber文件、数据手册、源代码(还在写,写好后会把完整版发上来,BQ25890和MP28167-A控制程序已经写好了)
链接:https://pan.baidu.com/s/1ETl3_ilS_skCn5vmaYiioA
提取码:6789
大家比较关心的改造成本:
BQ25890:电赛时用学校邮箱申请的,免费;
MP28167-A:大约8元;
STC15W404AS:大约3元;
两个电感:大约7元;
PCB:免费打样
电池:以前买的蜂语移动电源拆的,好像不到20元
总成本大约40+
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|