谁说壁虎没有用相关系列前帖: 谁说壁虎没用?基于EFM32电容触摸按键实验(原理讲解+测试代码)|http://bbs.mydigit.cn/read.php?tid=1792761 (精华)谁说壁虎没用?用efm32做个USB电压电流表(可诱导QC2.0)|http://bbs.mydigit.cn/read.php?tid=1701621 快充技术研究相关帖: 炬为QC2.0/3.0 充电加速器到手测试+拆机|http://bbs.mydigit.cn/read.php?tid=1820437 联发科mtk-pe+快速充电诱导成功(MediaTek Pump Express plus)|http://bbs.mydigit.cn/read.php?tid=1740978 事情的起因还是因为撸了一元的pos机,然后其中一款机器拆开后,里面发现了两个宝贝,于是就催生了弄这个usb表的念头 拆开的pos机,正面有大家说的没啥用的efm32g222f128单片机,也被称为壁虎单片机 ![]() 板子背面的右下角贴着二维码的那个就是bm77蓝牙模块(注意区分开,不是东芝的661) 这个蓝牙模块可以直接实现串口透传 ![]() 然后,选定了用壁虎做主控方案以后,又找了找找到一块价格比较便宜的彩色显示屏幕,再搭配bm77,就开始了这个usb表的制作 整个过程前后大概花了一个半月的样子,确定方案和画板上大概花了半个月,等待pcb生产和备料半个月,然后从中秋节那天收到快递开始焊接调试码代码,知道昨天晚上基本弄完了,预计的功能该有的都有了。 先上原理图 ![]() 这是pcb,大小刚好5*5,方便拼板 pcb目前发现两个小问题,一个是为了方便焊接,我吧元件丝印全部改成了阻值和容值,但是有几个电阻阻值因为一开始计算失误,弄错了,所以丝印值也是错的,这个下面我会说具体的 第二个就是被封装坑了,usb公头的封装是正好反过来的,也是就是说,公头只能焊在背面,如果焊在正面,电源正负就颠倒了 但是usb座的丝印对应的接线是对的,这个注意一下就不会错了 PCB中,其实也是第一次碰2.4G的天线,因为没有专业设备,只能照猫画虎的弄了个蛇形线,实际的效果测试在穿墙一堵后还能延续5m,没有原装的好但是也能凑合用,毕竟射频方面真是纯小白 ![]() 修正过以后的丝印,焊接以这两张图片所标识值为准 这个二维码,和之前自制开发板、核心板用的是一样的二维码,感兴趣的可以扫一扫 ![]() 其中,图中表示的阻值后面有&后缀的,比如1K&,60k4&的电阻,是对精度有严格要求的 ![]() 空板实物图 ![]() 成品的正面(屏幕几乎占据了大半个正面) 细心的小伙伴可能看到看到了右侧的水泥电阻,这个电阻的作用是用来诱导MTK-pe快充的,后面我会详细介绍 对于电流取样电阻,预留了贴片电阻和康铜丝两种方式 ![]() 背面几乎放置了所有的元件 单片机,蓝牙等大家都集中背面 注意观察图中usb公头的焊接方式,这才是正确的 ![]() 点亮的主界面 主界面下显示电压电流,D+,D-电压,电阻和功率 如果按下键,则会开启功率积分,可以测试充电宝的容量之类的,长按下键,则清零计数 ![]() 在大部分界面短按中键,都会进入快充诱骗选择界面,这里可以选择要诱骗哪种快充 目前列表最后的FCP还在研究中,暂不支持,光标也到不了那里 ![]() 这是关于界面 ![]() 关于蓝牙传输,焊上蓝牙芯片和外围电路后,就可以在手机或者笔记本电脑里面搜索到 如果是我已经将蓝牙改名为J-USB-voltmeter 蓝牙芯片改名方法,参加坛友研究帖 【狙沙】 pos机 BM77蓝牙模块即is1677蓝牙IC使用教程|http://bbs.mydigit.cn/read.php?tid=1567440 ![]() 数据实时传输ing 空载数据 ![]() 这是在快充下的一些数据(同时已经开启功率积分) ![]() 相关技术参数 功能:usb电压电流测量,d+/d-电压测量,高通qc2.0/qc3.0快充诱骗,联发科mtk-pe快充诱骗,电压电流曲线绘制,蓝牙实时传输数据,功率累计(mwh和mah)。 参数: 电压量程0-20v,最小分辨率:0.0025v/(0-10v)0.005v/(10-20v) 电流量程0-4a,最小分辨率0.0005a(0-2a)/0.001a(2-4a) d+/d-电压:0-3.3v(严禁测5v) 诱骗支持:(需要输出设备支持,本表不具备主动判断是否具有的功能) qc2.0:5v,9v,12v,20v(9,12v需输出设备支持classA)(20v需输出设备支持classB) qc3.0手动:3.6-20v(需输出设备支持) qc3.0自动:4.2-12v(需输出设备支持,可修改为支持classB) mtk-pe:4-12v(需输出设备支持) 暂不支持海思fcp,研究中 视频,欢迎观看 楼下继续,没完之前麻烦不要插楼,图太多了,2-3楼发不完 这楼详细介绍快充诱骗实现技术 一、高通公司的QC2.0/QC3.0的协议 1、手机在d+上加0.6v电压,这时充电器内部d+和d-是联通的,d-也是0.6v。 2、在1.35秒后,充电器断开d+和d-的联通,d-电压降到0,这时表示充电器支持协议。 3、接下来就是手机请求电压,并保持: 在d+加0.6v,d-加0v时,输出5v; 在d+加3.3v,d-加0.6v时,输出9v; 在d+加0.6v,d-加0.6v时,输出12v; 在d+加3.3v,d-加3.3v时,输出20v; 在d+加0.6v,d-加3.3v时,充电器进入continuous mode 也就是我们称的qc3.0模式。 而classA最高支持12v,classB则最高支持20v ![]() 然后就可以靠这协议来骗一把充电器了。在d+上我用dac直接实现,这很方便,d-上接adc,同时有一个引脚推挽输出高,10k和2.2k分压为0.6v,这样就可以让充电器输出9v了 在qc3.0方面上,因为qc3.0是一个连续的模式,按设计是在3.6-12v\20v连续可调的,调节的梯度是200mv,那么在d+加0.6v,d-加3.3v的时候,输出电压保持不变,此时,D+瞬间上升到3.3v再降回0.6v(产生一个高脉冲)则输出电压升200mv,而如果D-瞬间降到0.6v再升回3.3v,(产生一个低脉冲)则输出电压降200mv,连续的给充电器一个高脉冲或者低脉冲,就能实现电压的连续升高或降低。这种情况下,如果需要一个可调电源而手上又没有的话,可以试试用qc3.0的充电器诱骗一个出来应付下使用。 二、联发科公司的MTK-PE协议 (这部分偷了点小懒,复制了部分老帖的内容) 大家知道的快充中,了解最多的当然是高通公司的qc2.0和qc3.0快充技术,其次就是满大街喊的充电5分钟通话2小时的某绿色大厂的快充。 然而,作为手机soc厂家的另一巨头mtk联发科也不甘在这大潮中落后,于是先后推出了mtk-pe(MediaTekPump Express)和mtk-pe+(MediaTek Pump Expressplus)快速充电技术。这样说了,其实大家感觉根本没听说过。 然而并不是,魅族所谓的mcharge说白了,就是基于mtk-pe+的快充技术,只是搞了个听起来好听点的营销帽子罢了 ![]() 联发科用的协议与高通的原理不同。 qc2.0用的是在usb的数据线d+和d-上加电压信号来触发输出高电压。 而mtk-pe+,不需要使用usb数据,只需要电源正负极线就可以啦,所以对usb线的要求更低,充电器的成本也能有所下降 他的通讯方式是通过充电电流的大小来触发协议,最后触发升压或者降压。 协议图片,左边是降压,右边是升压。 图片中,下图表是通过电流变化来触发协议,上图表是对应协议触发后的电压变化。 ![]() 也就是说有快速充电协议的手机,需要对充电电流做一些定时的导通,关断来与充电头交流 下图是时间的限制和对电流的现在 时间abcd限制了最大值和最小值,如ta,也就是上方时序图中最后一段的500ms,在410-600毫秒直接都是被认可的 而对于电流的限制,要想表示低电平,则电流不能超过130ma,而要表示高电平,则需要350ma以上的电流 ![]() 以为按照时序图来一遍就出电压了吗?其实不然。 再仔细看图,这里有点难理解,在一组诱发电平后,我们可以看到电压发生了变化,可是为啥在wdt时间以后,也就是240ms后,电压恢复到了5v。也就是说为啥诱导出来的电压为啥没有保持住呢? ![]() 其实这个机制的作用在于,假设在你以9v充电完成后,拔下手机后,为了保证安全,充电器必须回复到通用的5v,不然如果谁不慎插上了不支持协议的手机,不就完蛋了? 所以对于手机或者诱导器来说,一旦诱导出所需要的电压后,必须在240ms内接上负载,否则充电器会视为负载被拔除而电压恢复默认5v,则诱导失败。 对于负载的理解,我认为要大于350ma才能算作有效负载,才能保持住协议电压。 这个列表显示了MTKPE协议所支持的电压输出范围,其中12v输出只支持1.5a ![]() 350ma的负载怎么产生呢?当然时水泥电阻+mos管了,pwm控制即可 ![]() 后面就是诱导实验 我手上有三个实验品 一个是华为的快充充电器,支持qc2.0,fcp,最高输出9v ![]() #p#分页标题#e# 一个是一块拆机的移动电源板,支持qc2.0,最高输出12v 这个板子使用了业界很普遍的双向快充方案bq25895+tps61088双ti方案制成 其中图中就是tps61088升压芯片 ![]() 这两片芯片,性能可以说是,非常的暴力,典型的ti黑科技 大家不方便,我就放点中文资料了 ![]() ![]() 一个时刚刚在论坛代购的炬为充电加速器,买它的目的就是为了调试和测试我的表 支持qc2.0,qc3.0,最高12v ![]() 一个魅族5原装充电器up1220(找人借的),支持qc2.0和mtkpe,最高输出12v ![]() 然后下面展示下诱导效果,只选取了部分图片(如果能看视频的小伙伴,看视频效果更直观内容更多) qc2.0效果,注意观察D+,D-电压 ![]() ![]() ![]() qc3.0的一部分电压图(完整详见楼上视频) 炬为加速器最低输出 ![]() 炬为加速器最高输出 ![]() ![]() ![]() mtkpe的7v和9v ![]() ![]() 魅族up1220充电头和表合影 ![]() 这两楼制作过程中拍的图片的一部分,算是心路历程吧 中秋那天收到板子,迫不及待的开始焊接 先焊壁虎efm32单片机 ![]() 搞定测量部分的外围电路,顺便吧板子洗干净了 ![]() 屏幕焊上,按键和led也少不了 ![]() 开始弄程序,首先肯定是先吧屏幕弄亮 花了好大点时间才移植过来,之前是跑在stm32上的 ![]() 哈哈,有我在数码之家的id ![]() 可以读取并显示四路adc的读数了 ![]() 屏幕弄成横屏又花了不小的功夫,重新吧主控芯片手册啃了一遍 ![]() 这里的usb公头是反的,不要这样焊,还好第一次插电虽然没亮,赶快拔下来倒是没烧毁啥元件 ![]() 这次就对了 可惜焊上发现不对拆下时不慎吧固定孔弄坏了 ![]() 头子在背面长这样 ![]() 简单计算后的显示,那时还没有校准,只是看功能是否都正常 ![]() ![]() 后面就开始界面设计工作了,主界面,前前后后改动的次数很多 ![]() ![]() 用之前做的诱导器测试高电压,此时界面依旧不完善 ![]() 继续修改界面,还是不好看 ![]() 更难看了 ![]() u i感觉也有点奇怪 ![]() 这个捡来的移动电源板子,支持双向快充,可对电池达到4.5a充电电流,输出一个口5v3a+另一个口支持qc2.0 12v,过几天请期待详细玩法介绍帖 给电池充电,这功率很猛啊 ![]() ![]() 最终吧ui也删了,简洁为好 电压大于13v会变为红字,电流大于2a也会变红 测出2v的原因是1117的倒灌造成的 ![]() ![]() 功率积分也加上了 ![]() 焊上蓝牙并测试 注意,蓝牙模块上方最靠近安装孔的地方,的10k电阻,焊上就进入下载模式,可以给蓝牙修改配置,拆下就是工作摸索 ![]() 快充诱导选择界面写好的样子 ![]() 诱导界面,吧电压电流的大字的行间距压缩了一点,上面加了一行来显示详情 ![]() 这是设置界面,用于设置背光亮度和校准参数采集的,设置参数会自动保存到芯片的最后一个扇区 ![]() 后台数据,用于校准 ![]() 关于界面 ![]() 电压电流波形曲线记录界面(不是很完善,以后再弄弄) 在主界面按上键进入或退出该界面 ![]() 负载开关了一下 ![]() 最后一张图(注意右上角图片水印关系) ![]() 之前支持了的QC2.0/QC3.0/MTK pe+的诱骗,然后国庆这几天研究了一下下,吧华为海思fcp( HiSilicon Fast Charging Protocol)快充诱骗也给啃了。 关于fcp,资料很少,不得不说华为的保密政策还是弄的不错的 我大概讲下这个协议,详细的讲出来不知道会不会被菊花大大欺负,如果想知道的人多了,我再细细说。 首先一开始和qc2.0协议一样,d+给0.6v,充电器短接d+和d-,1.35秒后,断开,d-下降为0v。这时,d+依然保持0.6v,手机就通过d-线和充电器交流。相当于是,这是一个单线通讯,而且信息传输是双向的,关于为啥判断是双向的,来自fp6601q 的手册里面,提到了一点点蛛丝马迹 文字上叙述了tx和rx,而且还提到了下来电阻,顺便也告诉了总线时钟频率是125khz ![]() 那就开始弄呗。没有华为的手机,只有个之前捡华为活动漏洞撸的支持fcp和qc2.0的充电头,所以是让朋友帮忙抓的逻辑 d-线上的信号,大致如图 ![]() 一开始我还以为时pwm或者什么的,结果华为真恶心,弄这么复杂的协议,只能对着波形一一还原了,好在,也还是有点规律的,弄了4-5天,边试边修改,终于在那个瞬间看到了久违的9v 实验时候的乱七八糟的东西。上镜的东西:华为的充电器,efm32开发板,万用表,逻辑分析仪,jlink ![]() 因为是都是在efm32的环境下开发的,所以,吧诱骗逻辑合成到表里面的,很快的 开放诱骗列表最后一栏 #p#分页标题#e# ![]() 诱骗成功 注意d+和d-的电压,和qc2.0不同哦 ![]() 10月21日更新 这里是坛友的制作帖,欢迎大家参考。焊接、程序烧录什么的都有介绍 一款基于efm32的彩屏USB电压电流表的制作过程|http://bbs.mydigit.cn/read.php?tid=1855800 大壁虎之USB电压电流表(原创:2545889167)装机|http://bbs.mydigit.cn/read.php?tid=1849207 以下惯例无图 1.如果在使用测量源供电的情况下输入电压范围应为4.3-12v,为达到完整量程0-20v,测量超出额定电压部分请拆除板上ams1117并使用外接3.3v电源供电。原因:电压低于4.3v,1117需要1v压降则不能达到系统工作所需电压。高于12v,1117将承受超过10v的压降,极易造成烧毁。 2.本表需要自行校准,初始化程序不可能涵盖所有特异性。 3.包括并不仅限于以下情况可能会造成的损坏: 超出量程极限的测量 焊接错误 焊接损坏(如静电击穿等) 不按操作规则错误操作 在快充诱骗生效的情况下负载接入设备造成负载设备损坏(如,诱骗9v成功直接插入手机等) 在mtkpe诱导模式下,长时间保存12v诱骗,可能造成水泥电阻热量积累过多而发生意外 4、mtkpe诱导模式诱导过程中(显示请稍候),插入外部负载会造成诱导失败,但是在手动模式的情况下诱导成功后(显示就绪),可以插入外部负载,而且外部负载的接入可有效减轻水泥电阻的负担 (责任编辑:admin) |