之前在淘宝上用淘金币买了一块无线充电的发射板,由于当时不知道无线充电还有QI协议,所以认为买回来做一个线圈就能接收电能了,主控是IDTP9035
买回家用自绕的线圈测试,发现LED是间隙闪烁,占空比非常低,当时以为坏了,后来查手册才知道接收端通过线圈发射信号给发射端有点类似有RFID,所以感觉被坑了,本来想买一接收板的,但是觉得没必要,自己应该也能做一个出来,然后通过查数据手册和相关的QI协议资料终于弄明白是咋回事了,最终成功让无线发射板持续稳定的供电,下图是用单片机去驱动控制板在驱动线圈可以长时间点亮LED不熄灭,单片机和控制板都是线圈供电
下面就简单的讲一下QI协议吧,或者可以看百度文库,
https://wenku.baidu.com/view/f9600a96336c1eb91a375ded.html 讲的很详细,还可以参见英文版QI协议
这两个是驱动电路,我用的是电阻调制电路
这个编码格式采用差分双相编码,频率2KHz
这个单个数据格式,一共有11位,偶校验
这个包格式
前导:11个-25个1
包头:
常用的就是0X01,0X51,0X71,0X03,0X04,
发包顺序是0X01,0X71,0X51,包中间间隔小于21ms
然后0X03和0X04包在充电中发出,间隔小于1.5S和23S
信息:这个就看我发的链接发内容比较多
校验:把包头和包信息异或检验
下面是用NV32开发板的程序,LED3就是调制波形, LED3_On();调制MOS管栅极为高电平
void Header (void)//前导11到25个1,这里用18个1
{
uint8 i;
for(i=0;i<18;i++)
{
LED3_On();
delay_us(250);
LED3_Off();
delay_us(250);
}
}
void Code (uint8 aa)//字节编码
{
uint8 i,j=0;
LED3_Toggle();//起始位
delay_us(500);
for(i=0;i<8;i++)//数据位
{
if(aa&0x01)
{
j+=1;
LED3_Toggle();
delay_us(250);
LED3_Toggle();
delay_us(250);
}
else
{
LED3_Toggle();
delay_us(500);
}
aa>>=1;
}
if(j%2)//检验位
{
LED3_Toggle();
delay_us(500);
}
else
{
LED3_Toggle();
delay_us(250);
LED3_Toggle();
delay_us(250);
}
LED3_Toggle();//停止位
delay_us(250);
LED3_Toggle();
delay_us(250);
}
void ping (void)//PING包
{
Header();
Code(0x01);
Code(0x80);
Code(0x01^0x80);
LED3_Off();
}
void id (void)//id包
{
Header();
Code(0x71);
Code(0x10);
Code(0x00);
Code(0x01);
Code(0x00);
Code(0x01);
Code(0x00);
Code(0x00);
Code(0x71^0x10^0x00^0x01^0x00^0x01^0x00^0x00);
LED3_Off();
}
void config (void)//配置包
{
Header();
Code(0x51);
Code(0x0a);
Code(0x00);
Code(0x00);
Code(0x00);
Code(0x00);
Code(0x51^0x0a^0x00^0x00^0x00^0x00);
LED3_Off();
}
void ConErr (void)//误差控制包
{
Header();
Code(0x03);
Code(0x02);
Code(0x03^0x02);
LED3_Off();
}
void RecPWR (void)//接收功率包
{
Header();
Code(0x04);
Code(0xff);
Code(0x04^0xff);
LED3_Off();
}
int main (void)
{
sysinit();
SysTick_SetCallBack(SysTick_CallBack);
delay_us(500);
LED3_Init();
ping();delay_ms(10);
id();delay_ms(10);
config();delay_ms(50);
while(1)
{
ConErr();//修改包数据可以改变功率
delay_ms(500);
}
}
这个代码没有话,没有进入睡眠模式,电路方面全桥整理效率也比较低,这次主要是为了熟悉QI协议而做的实验
[ 此帖被yhj416606438在2018-02-05 10:47重新编辑 ]