基于efm32的彩屏蓝牙USB电压电流表,支持QC2.0/QC3.0/MTK快充诱
时间:2017-07-08 14:03 来源:数码之家 作者:2545889167 点击:次
谁说壁虎没有用相关系列前帖: 谁说壁虎没用?基于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 ![]() (责任编辑:admin) |
- 上一篇:DIY了一台300W电子负载
- 下一篇:4.8元的微型电压表头改电流表头~