版本协议

CC-BY-NC-SA 3.0

专业版
#第七届立创电赛#USB功率计与QC诱骗可调电源

创建时间:1年前

6890 8

描述

<div class="document"> <p> </p> <p><strong> 1、项目功能介绍</strong></p> <p> </p> <p>参加立创训练营的项目。</p> <p>最大输入20V3A。实现了USB功率、纹波检测。支持USB2.0直通,或者QC3.0诱骗。DC降压限流输出。</p> <p>电源部分为dcdc转3.3V为系统供电.使用了MT2492,虽然标称耐压12V,但实测19V下仍能正常输出3.3V 。</p> <p>电压检测为内部12位ADC,电流检测使用INA199对10毫欧电阻差模50倍放大后内部12bitADC。</p> <p> </p> <p><strong>2、项目属性</strong></p> <p>首次公开,原创</p> <p>参考了这个的项目。</p> <p><a href="https://www.bilibili.com/video/BV1na411T7" target="_blank">【开源】高精度QC3.0诱骗器_哔哩哔哩_bilibili</a></p> <p>谢鸣使用了这个图形库的画线函数。<br><a href="https://www.bilibili.com/video/BV1EC4y1872W" target="_blank">单片机图形库开源分享 32 51 oled_哔哩哔哩_bilibili</a></p> <p> </p> <p> </p> <p><strong>3、硬件部分</strong></p> <p>硬件结构脉络图</p> <p><img src="//image.lceda.cn/pullimage/YDadJQOeHZixBw8yWMajLl32quAkorKTGiAT7uFa.png" alt="YDadJQOeHZixBw8yWMajLl32quAkorKTGiAT7uFa.png"> </p> <p><span style="font-size:18px;">A.首先是单片的最小系统</span></p> <p><img src="//image.lceda.cn/pullimage/fwDqAt4VFB8L8d6qKyjgMkLj85J6VnYqOepbYgbf.png" alt="fwDqAt4VFB8L8d6qKyjgMkLj85J6VnYqOepbYgbf.png"></p> <p> 这个比较常规,仿照参考资料就行。值得说一下的是,为了节约成本,未使用参考电源ic,而是直接加滤波后接入ADC参考输入。然后BOOT0启动分区选择和rst仅用0603电阻留着焊点,外接按钮,当程序调试完后可以拆调,提高外观。</p> <p><span style="font-size:18px;">B.模块电源部分</span></p> <p> <img src="//image.lceda.cn/pullimage/XDWxiwJWSeUzOvBlmR4CwewpXaaXtCbCYEGLlXJQ.png" alt="XDWxiwJWSeUzOvBlmR4CwewpXaaXtCbCYEGLlXJQ.png"></p> <p><img src="//image.lceda.cn/pullimage/qjKfA7FBMEhiMbDfZ73h2wnCAR58kM0Da35VZdjX.png" alt="qjKfA7FBMEhiMbDfZ73h2wnCAR58kM0Da35VZdjX.png"> 使用了MT2492虽然标定是16VMAX,但是实测19V下仍然能正常输出3.3V。原理图的15uH是根据手册计算出来的,但是焊接完并不能正常工作。换了一个10uH功率电感后工作正常。</p> <p>20V则掉压至0.5V左右。可见对mcu保护非常好。充分宽的耐压,完整适配QC3.0的12V。</p> <p> </p> <p><span style="font-size:18px;">C.烧录与交互</span></p> <p><img src="//image.lceda.cn/pullimage/MYC7sffn7h3YyCePQi72Il250s30oSGHcuppFRCI.png" alt="MYC7sffn7h3YyCePQi72Il250s30oSGHcuppFRCI.png"></p> <p>烧录方面引出了uart串口烧录和SWD,这里推荐用SWD在keil里一键烧录。Uart需要下载国民技术的下载软件。此外uart无法debug 。</p> <p>人机交互方面,用了4个按钮。这里有更好的方案,参考国民技术的开发板,可以按钮一端接IO一端接地就行。然后为了滤波可以按钮并联一个100nF的电容。</p> <p>显示用的是0.91的spi的屏。不得不说128x32对比128x64体验真的差了挺多。绘制区小一半了,很多显示都比较凑合。驱动用的购买处的示例工程软spi,然后自己重写了中间的字符绘制等东西。再次谢鸣大佬的图形库,我复制适配了里面的一个画线函数。屏幕硬件实际是接在mcu硬件spi脚的,日后有空再搞。</p> <p><span style="font-size:18px;">D.核心采样功能</span></p> <p><img src="//image.lceda.cn/pullimage/3d4G9EzffucGgU7o3x1INB3CfbMSvUTUtiaVlVA3.png" alt="3d4G9EzffucGgU7o3x1INB3CfbMSvUTUtiaVlVA3.png"></p> <p>通过采集输入电压和总线上的电流便可计算功率。</p> <p>电压是通过电阻分压然后接入ADC引脚。</p> <p>电流则是通过INA199对10毫欧的采样电阻进行的50倍差模电压放大后进入ADC脚。然后一个设计的小点,MCU系统接入是在低端采样电阻之后,从而避免单片机系统对负载功率采样的影响。</p> <p><img src="//image.lceda.cn/pullimage/UielL1fvJtxeYuXr2Ha0OPnznuZcR5uGYOPg2lun.png" alt="UielL1fvJtxeYuXr2Ha0OPnznuZcR5uGYOPg2lun.png">群里挺多人问这个ADC系数。这里粗略的解释一下。</p> <p><img src="//image.lceda.cn/pullimage/mxMlonLqeus9CxMkf9ThL0yk9FixG0TDiD8VbqfI.png" alt="mxMlonLqeus9CxMkf9ThL0yk9FixG0TDiD8VbqfI.png">一般我们可能更多会看见左边的电路图模型,而在绘制电路时,我们更多是右边那种形式。</p> <p>利用万用表的电压档,我们可以测得任意『两点的电压差』,注意是两点的电压差。比如上图,我们会说Uab电压是6.66V,Ubc=3.333V。</p> <p>在Uxx中,我们把后者电压作为参考,如Uab,其实是Ua-Ub。</p> <p>那Ua是什么?</p> <p>其实是对0V而言,a点的电压</p> <p>而0V定在哪里?一般是锚定为电源的负极。(计做题算时则可以随意设定某点电压为0v然后以此锚点,去计算)。</p> <p>于是,在这样的电子学体系下,你会发现右图的表达方式是如此自然。</p> <p>假如你暂时还未能理解,你可以认为,我们始终把万用表的黑笔始终压在电池负极。</p> <p>而test点的电压可以通过分压计算</p> <p>Utest= VCC * 5/(10+5)</p> <p>,如果VCC=10那么Utest=3.33V。(这里是计算思路是串联电阻,电流一定,然后凭这点利用欧姆定律去推导计算)</p> <p>反过来,如果已知Utest=1V。那么</p> <p>VCC=Utest ÷[ 5/(10+5) ] =3v</p> <p>单片机的ADC就是“万用表的黑笔始终压在电池负极”,ADC脚则是红表笔。</p> <p>然后正式解释那个计算系数。</p> <p>以我的为例。<img src="//image.lceda.cn/pullimage/Lf1aSxywgqq8wGpZkoMSJ0Srn51YQEWrrhO7Zgt9.png" alt="Lf1aSxywgqq8wGpZkoMSJ0Srn51YQEWrrhO7Zgt9.png"></p> <p>如图,ADC实际采样值为679.<img src="//image.lceda.cn/pullimage/RSYswfZdliqo5jDhrUAgKnRsWIo0Tm9cix1i28ev.jpeg" alt="RSYswfZdliqo5jDhrUAgKnRsWIo0Tm9cix1i28ev.jpeg"></p> <p>而这ADC值意味着什么?</p> <p><img src="//image.lceda.cn/pullimage/qeYs4SGYW9Zg2BzXqh05ktUKPt7wzD07C2dcD6cJ.png" alt="qeYs4SGYW9Zg2BzXqh05ktUKPt7wzD07C2dcD6cJ.png"></p> <p>于是这个ADC=679的来源是</p> <p><img src="//image.lceda.cn/pullimage/sRBwU1CHvyG2Rqbb3oATJus4gyAWBgGvsjQDvHFx.png" alt="sRBwU1CHvyG2Rqbb3oATJus4gyAWBgGvsjQDvHFx.png"></p> <p>ADC=Utest/3.3 *4095= 679</p> <p>那么我们逆推</p> <p><img src="//image.lceda.cn/pullimage/vXqRSjxZXcCXyYHxBPz3s0Tb658sPPD8in5654ZV.png" alt="vXqRSjxZXcCXyYHxBPz3s0Tb658sPPD8in5654ZV.png"></p> <p>Utest=ADC ÷4096*3.3=0.547v</p> <p>然后结合前面的电阻分压</p> <p>Vcc= Utest÷[10/(10+82)]=5.03v</p> <p>再深入一些:</p> <p>Vcc= Utest÷[10/(10+82)]</p> <p>Vcc= (ADC ÷4096*3.3) ÷[10/(10+82)]</p> <p>然后我们把里面的常数化简到一起:</p> <p>Vcc=ADC* (7.4121X10^-3); Vcc=ADC*0.0074121 (伏特);</p> <p>如果先前接触过编程,就知道浮点计算是有误差的,于是我们把系数扩大1000倍,使得输出结果单位由伏特变为毫伏。</p> <p>Vcc=ADC*7.4121;可见与例子中的十分接近了。但为什么还是不一样呢?那是因为MCU的ADC采样时有偏差的。想理解的看[数据手册]的74页(不是用户手册,有2个pdf,重点不同)</p> <p>。以及善用搜索引擎。</p> <p> </p> <p><img src="//image.lceda.cn/pullimage/6TwFWGIl1l3pgSzzxqnRuyjDL5Dz9hX3K20WLOxl.png" alt="6TwFWGIl1l3pgSzzxqnRuyjDL5Dz9hX3K20WLOxl.png"></p> <p>然后是电流获取。这里利用了INA199的50倍差模电压放大。「差模」可以理解为万用表表笔是压在电阻两端测得的电压值。</p> <p>那么知道电阻两端的电压值,由I=U/R,即可计算得到电流,这里不再赘述了。</p> <p><img src="//image.lceda.cn/pullimage/w0h29OeNotUkhRcMz52f06QwmnI0MfxucEPpmYVJ.png" alt="w0h29OeNotUkhRcMz52f06QwmnI0MfxucEPpmYVJ.png"></p> <p>为了修正偏差,我这里是使用了可调电源进系数矫正。可见是与理论计算相当接近的。(想实现这个,自行搜索excel拟合曲线)</p> <p><span style="font-size:18px;">D.QC诱骗与通道切换</span></p> <p><img src="//image.lceda.cn/pullimage/P23MPqAiCVELw6joOd5LFclLTptTm4hUo5ZvIdHk.png" alt="P23MPqAiCVELw6joOd5LFclLTptTm4hUo5ZvIdHk.png"></p> <p>左边是一颗USB2.0的模拟开关ic。利用usb3.0的公头,保证系统先进上电进行工作,默认导通USB2.0的输入输出。原理图可见我的正负与ic的对不上,这里是方便实体pcb中的走线。数据手册中写的是轨到轨。所以我才敢这样做。至于QC3.0充电协议,这个部分自行搜索。</p> <p><strong>4、软件部分</strong></p> <p>程序结构主体大体是这样:</p> <p><img src="//image.lceda.cn/pullimage/vgBDcZ0NOgYiQymJG12hxhhAtH42PpwaqdevtEEz.png" alt="" width="1084" height="892"></p> <p>之后应该会在B站详细讲解</p> <p>演示视频:</p> <p>【立创训练营USB功率计-哔哩哔哩】 <a title="https://b23.tv/eCdln06" href="https://b23.tv/eCdln06" target="_blank">https://b23.tv/eCdln06</a></p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </h3> <hr class="horizontal-splitline normal-bold-2"><p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">END.作品与立创电赛logo展示</p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><img src="//image.lceda.cn/pullimage/jdcDPtd59cau5utQnZE7HOGT0rZhstWWUIjKwuh3.jpeg" alt="jdcDPtd59cau5utQnZE7HOGT0rZhstWWUIjKwuh3.jpeg"></p> <p><img src="//image.lceda.cn/pullimage/wnCKt5lkwWUWt9BfqcYLZOXoPRkxYSbbNKbnoNpr.jpeg" alt="wnCKt5lkwWUWt9BfqcYLZOXoPRkxYSbbNKbnoNpr.jpeg"><img src="//image.lceda.cn/pullimage/dvGseSepAyCM0696dx9tUIoiXU8DmavjlGK7up5U.jpeg" alt="dvGseSepAyCM0696dx9tUIoiXU8DmavjlGK7up5U.jpeg"></p> <p><img src="//image.lceda.cn/pullimage/FMwJhbkCDQSj2HBjcocMumKRtUyfZRfJTm6B0EC8.jpeg" alt="FMwJhbkCDQSj2HBjcocMumKRtUyfZRfJTm6B0EC8.jpeg"></p> <p><img src="//image.lceda.cn/pullimage/8L2ELE9Qp2bkXys7HrQo25wT4GGbcDd1pVs2xM00.jpeg" alt="8L2ELE9Qp2bkXys7HrQo25wT4GGbcDd1pVs2xM00.jpeg"></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p> </div>

文档

BOM

暂无

附件

附件名 下载
N32G430C8L7_USBMeter_COPY.zip

成员

评论(2)

  • 表情
    emoji
    小嘉工作篇
    小嘉日常篇
  • 图片
成功
工程所有者当前已关闭评论
立创电赛 回复
<p>请进一步完善文档哦·····</p>
立创电赛 回复
<p>在文档内添加更多内容<br/><img src="//image.lceda.cn/pullimage/IwBBhOoJ5ER6RKJXha5m3T9wfYcgm9FsX9SXAXeS.png" alt="123.png"></p>
goToTop
svg-battery svg-battery-wifi svg-books svg-more svg-paste svg-pencil svg-plant svg-ruler svg-share svg-user svg-logo-cn svg-double-arrow