耗子小兵 发表于 2018-7-21 15:37

QI协议,无线充(三)程序调试

大家好!哈哈哈!来深圳已经快两个月了,又要发工资了!!期待中!!!新的一个帖子里面,和大家讨论的是无线充的程序调试的过程,以及调试过程中新人容易出现的操作误区。并且多图!!哈哈哈啊哈!!
虽然生活所逼,老说话不栓话!但是无这个坑貌似,应该是不会弃坑的!,当然了,目前的帖子主要是以5W的为主,毕竟这个是基础。10W和7.5W只是在这个基础上增加了QC2.0协议而已,和一些通讯的细节,有了5W的,其他都不怕。板子是一定要有的,我刚开始的时候,用着人家的板子,把信号引出来,简单的调试了一下解码,电流检测,感觉还挺简单的,然后,自己真正做好一块板子的时候,调试起来的头都大了。



进入正题!!网上有那么多的电路,包括我在2贴里面也分享了我的一个工程,那个大家要是要做的话,需要把电源线加粗再加粗。毕竟有接近1A到2A的电流流过,在华为的PCB规范里面有电流个对应的线宽可以参考。到手板子以后,先开始调试的是H桥



建议那个0.02R的电流检测的电阻暂时不要焊接,然后Q1和Q2为一组PWM,Q1导通的时候,Q2截至,这个PWM的波形如下图这个样子,然后注意一下细节,就是在MOS关断和导通的边沿,有细微的波动,这个我看了一下资料,貌似就MOS固有的问题,不知道有没有大神能解释下。{:lol:}
我的电路相比与2贴有些变化,是因为我调节PWM时候不得要领,就相信也不是很懂的人的建议,哈哈哈!但是这个确实是自己PWM没有调试好。PWM调试的时候,如果MOS出现发热很严重,虽然手可以碰,但是板子非常热的情况,就是同一边的MOS出现同时导通的情况。
只要记得,上面导通,下面一定要截至。调试好一边的一组PWM,再去调试另外一边。


为什么PWM要调试好了,以为这个很影响电流的检测,你会发现,0.02那边测到的电压和运放放大出来的电压,与你设计的电路放大倍数误差很大,所以,电流测不准的情况,要看看你的PWM,而PWM有问题,也会导致系统的电源不稳定。一点就会影响全局。

一般的,5W的接收器,或者三星的手机,你直接发送PWM(160KHZ),是可以进行充电的,这个时候,你就可以进行解码的调节了!板子上一共就三个测量量,温度,电流,和数据解码。温度相对独立,不管,电流,我们刚刚已经校准完毕,就是解码了。
解码这边要说的就是由于单运放和双运放处理的波形差异,解码的程序也有席位的差异。首先来看看我的电路出来的数据波形。



可以明显的看到数据区并进行解码的,但是细心的小伙伴,会看到,在数据波形里面,有个别的字节码,高电平电压很低,那这个会不会影响我们的测量了,是的,会有影响到的。再来一个MCU特性图,每一个单片机的特性都不一样。


这里可以看到高电平的电压是3.5V以上,所以,如果遇到低于这个值的,就会无法识别到高。没有尝试过,中间电压会被识别到啥,是保留上一次有效的电平状态,还是直接就是低电平。但是这个问题即使不修改电路,也是可以通过代码解决的。
好了!就先说到这里,期待后续的跟新!!公司组织出游!海边浪一浪!!!






huang1051 发表于 2018-7-24 17:53

继续加油

zky2003 发表于 2018-7-26 14:02

我是来点赞滴

耗子小兵 发表于 2018-7-29 13:59

在完成温度检测的调试,电流检测的调试,和解码的独立调试后,下面就正式的进入程序编写的时候了!QI协议的程序分层比较明确,所以主程序一个大的switch即可,(图后续补充,现在在网吧公司周末不开门)
分为
switch(stu)

       Ping阶段
       标识配置阶段
       谈判阶段
       校准阶段
       功率转移阶段
       重新谈判阶段


今天来说的就是程序结构的搭建,因为我目前的MCU资源比较多,(价格贵),大大的奢侈了一把!各位如果资源不是很多的!可以在我的程序基础上面进行修改,改成被动触发式。
Ping阶段,用到的是PWM和数据解码模块,我在这两个基础上面重新封装了一个QI的控制模块,用于统筹QI协议里面的时间控制和协议控制,首先来说一下PWM模块提供的Ping阶段的函数清单

PWM模块
函数1:开关PWM函数
函数2:获取PWM开关状态函数
函数3:PWM初始化函数
Decode模块
函数1:获取信号强度状态状态函数,用于判断是否是第一包数据
函数2:获取信号强度函数
函数3:(此函数为解码程序,处于定时器中断,在后台扫描,可以忽略)

QIControl模块
函数1:Ping函数,实现Ping阶段定时的功能,定时开关PWM,返回是否PING成功或失败的结果。
函数2:时基,用于提供QI协议的定时基础,被定时器调用,当计数器设定值大于0时,自动减为0。协议端根据是否为0,来判断定时时间。

QIControl被Main函数调用,PWM模块和Decode模块被QIControl调用,这样系统的结构相对来说是很清晰的!而且模块之也不存在变量的互相干扰,只不过这样做的结果就是会消耗大量的空间,以及较为底下的执行效率。
毕竟函数的调用,出入函数是需要浪费一点时间的。不过楼主有钱买一片10块钱的芯片,不怕,主要是将程序结构弄的清晰明了,学习起来不费力。

程序结构说完了,再来说一下Ping阶段的一些需要判断的信息,和执行的操作。
1.协议规定,Ping的时候,先打开65ms的PWM,接着在85ms内(65+20)没有收到第一包数据就在28ms内关闭PWM,实际上我测试别人家的大概是90ms开PWM,如果没有收到信号,就关闭200ms,也就是90和200不停的循环
   直到收到有效的数据包。
2.如果发射端没接收到信号强度包,而接收到其他的包,或者啥包都没收到,也是一样的,重新来过。
3.如果收到的第一包数据是信号强度包,就继续维持90ms的PWM,接收标识配置的数据包。如果在期间没有接收到数据。也需要重新开始。


以上就是全部的Ping阶段的内容!!如果楼主有遗漏的地方,欢迎补充!!程序明天上传!学习的自行下载!如果今天下午能进公司的话,就下午发了!!


amender 发表于 2018-8-1 11:35

这个要顶一下

天空大海 发表于 2018-8-1 19:33

好贴,顶顶

zzgezi 发表于 2018-8-2 13:36

顶楼主。。。好贴。。。

lusing188 发表于 2018-8-3 13:26

支持楼主

耗子小兵 发表于 2018-8-4 15:29



楼主偷个懒!上周的完成的,这周发!Ping阶段结束的代码!用的是一颗51的MCU。有需要资料的可以见我的第二篇帖子里面的群!洗洗睡了!接了个项目!尽量保证一周一更新吧|!!!

Siderlee 发表于 2018-8-4 15:44

加油

my.yr 发表于 2018-8-4 16:10

我有量产的Qi无线充软件,谁要;还有A4WP无线充电软件

耗子小兵 发表于 2018-8-5 00:14

attach://1069946.zip转到上面链接↑
貌似发错了!!这个才是程序
到Ping结束!后续的等手头的案子结束,我继续写下去!



my.yr 发表于 2018-8-7 13:28

my.yr 发表于 2018-8-7 13:30

可以生产的哦,要代码要给钱的哦

houdingxing 发表于 2018-8-8 14:49

my.yr 发表于 2018-8-7 13:30
可以生产的哦,要代码要给钱的哦

源代码多少钱?

2018从新开始 发表于 2018-8-9 16:47

aolin 发表于 2018-8-10 21:51

楼主很专业,谢谢分享!

huang1051 发表于 2018-9-3 15:56

大家mos和驱动用的是哪一家的
有没有mos和驱动 或者mos和运放封装到一起的??

天行剑 发表于 2018-9-12 16:47

QI 对线圈有什么要求?

大秦正声 发表于 2018-9-12 18:12

5W充电需要多长时间?
页: [1] 2 3 4 5
查看完整版本: QI协议,无线充(三)程序调试