#第七届立创电赛#usb大功率计POWER-N
简介
最大功率100w以上没问题,实测过70w长时间通电不发热,系统供电电压上限26v。支持原有快充协议,能进行PDO报文抓包,PD等多协议诱骗,C口双向。主控采用N32G430K8Q7,四层板 板厚1.0
简介:最大功率100w以上没问题,实测过70w长时间通电不发热,系统供电电压上限26v。支持原有快充协议,能进行PDO报文抓包,PD等多协议诱骗,C口双向。主控采用N32G430K8Q7,四层板 板厚1.0开源协议
:GPL 3.0
描述
* 1、方案设计
主控IC:N32G430K8Q7 ( 因为本来想选用20pin的N32G430系列,无奈买不到货)
诱骗IC:2711 (多达20多种诱骗协议 ,支持读取报文,iic接口)
dc-dc IC:AN_SY8291 (5-40V电压范围,缺点:如果PPS协议诱骗的话,3.3V无法工作)
电压采样:电阻分压
电流采样:INA199B(耐压26V,系统供电电压受此限制,没有采用官方的低端采样)
四层板 板厚1.0
差分走线D+ D-
差分走线CC1 CC2
预留烧录口swd
原先版本,图中可以看出用的是20脚的封装
后换成qfn封装(焊接对萌新不太友好,不过我稍微拉长了焊盘,直接用烙铁也能搞定)
整体采用三块板子组装,连接件:M2*3铜柱*4、M2*4+3铜柱*4,、M2*3平角螺丝*4
整体厚度如下,大小和一个stm32mini开发板 差不多
*2、硬件部分
dcdc 输入电压:5-40V 输出电压:5V
采样电阻计算公式如下:
9月14日修改
dcdc 输入电压:3-25V 输出电压:5V
主要就是电源电路,电源测试成功,项目成功一半。先单独焊接电源电路,进行测试,输入电压从5-40V(我只测了30v,考虑买的电容耐压问题)慢慢调整,看输出电压是否为5V。
全部焊接完成!!!!
通过拨码切换cc1下拉到Ra进行设备握手,可以抓取PDO报文,或者进行诱骗
下面有介绍DFP和UFP的识别协议
*3、测试部分
一.该功率计支持原快充协议,采用24pin type-c接口(双向)
测试手机:小米11 充电头:55W
图中手机显示超级快充界面,电压电流显示值和网上买的功率计差不多
测试电脑:联想yoga14s 充电头:95W(这是我手头上有的最大功率c口输出设备了)
开了电池性能设置,开了游戏(LOL),才到77W左右,如下图所示
二.PDO报文读取
我这边测试了两款充电头,读取PDO报文,方便诱骗电压设置
第一款:小米11pro原装充电头 67W
PDO读出结果:
电压mv 电流ma
5000 3000
9000 3000
15000 3000
20000 3250
和充电器上标的参数基本相同,除了一条不一样,充电器上有11V6.1A,PDO15V3A(实际诱骗出也是15V)
第二款:不知道啥牌子 36W
充电头参数:
5V3A
9V2.4A
12V1.5A
PDO读出结果:
电压mv 电流ma
5000 3000
9000 2200
12000 1670
5900 3000
11000 18000
和充电器上标的参数基本相同
三.诱骗
下图为20V3A诱骗,输出端接了电子负载,恒流模式
实测60w诱骗温度40.4℃
手摸基本感受不到热量(危险操作)
*4、软件功能
界面1:电压电流功率,mah,mwh计量,时间记录,D+D-电压采集(完成)
界面2:PDO抓包(完成)
界面3:协议选择多达二十多种(目前就做了PD)
LCD_ShowString(0,0,"APPLE2.4A",CYAN,BLACK,12,1);
LCD_ShowString(0,12,"SAMSUNG2A",CYAN,BLACK,12,1);
LCD_ShowString(0,20,"BC1.2",CYAN,BLACK,12,1);
LCD_ShowString(0,30,"TYPEC",CYAN,BLACK,12,1);
LCD_ShowString(0,40,"QC2A",CYAN,BLACK,12,1);
LCD_ShowString(0,50,"QC2B",CYAN,BLACK,12,1);
LCD_ShowString(0,60,"QC3A",CYAN,BLACK,12,1);
LCD_ShowString(0,70,"QC3B",CYAN,BLACK,12,1);
LCD_ShowString(60,0,"AFC",CYAN,BLACK,12,1);
LCD_ShowString(60,10,"FCP",CYAN,BLACK,12,1);
LCD_ShowString(60,20,"SCP",CYAN,BLACK,12,1);
LCD_ShowString(60,30,"HISCP",CYAN,BLACK,12,1);
LCD_ShowString(60,40,"VOOC2",CYAN,BLACK,12,1);
LCD_ShowString(60,50,"SVOOC1",CYAN,BLACK,12,1);
LCD_ShowString(60,60,"VOOC3",CYAN,BLACK,12,1);
LCD_ShowString(60,70,"VOOC4",CYAN,BLACK,12,1);
LCD_ShowString(100,0,"VIVO5V4A",CYAN,BLACK,12,1);
LCD_ShowString(100,10,"VIVO10V2.25A",CYAN,BLACK,12,1);
LCD_ShowString(100,20,"VIVO11V4A",CYAN,BLACK,12,1);
LCD_ShowString(100,30,"MTK",CYAN,BLACK,12,1);
LCD_ShowString(100,40,"PPS",CYAN,BLACK,12,1);
LCD_ShowString(100,50,"PD",CYAN,BLACK,12,1);
LCD_ShowString(100,60,"NULL",CYAN,BLACK,12,1);
LCD_ShowString(120,70," ",BLACK,BLACK,12,1);
界面4:波形显示(空)
界面5:系统参数设置(目前做了旋转屏幕)
*5、问题总结
时间紧迫,还有很多问题待解决
1.原理图细节修改
2.波形界面未编写代码
3.外壳位置稍有偏差
4.诱骗切换可能出现系统重启(有大佬可以解释一下吗)
5.其他协议未完全写完
......................
(描述不对之处多多包涵)
程序晚点上传,写的比较急,代码很乱
(源码还在整理,hex文件能实现基础功能)
做电能存储功能的时候(flash模拟eeprom),发现手册有一处错误,
31页首地址应该为0x0800F800,手册上写着0x0807F800
*6、大赛LOGO验证
* 7、演示您的项目并录制成视频上传
有空剪个好点的视频
评论