# qi **Repository Path**: yongxing912/qi ## Basic Information - **Project Name**: qi - **Description**: 无线充qi3.0演示demo工程代码 - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-02-23 - **Last Updated**: 2024-02-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # qi #### 介绍 lpc1768模拟物理层实现qi3.0 #### 软件架构 软件架构说明 #### 安装教程 1. xxx 2. xxxx 3. xxxx #### 使用说明 Lpc1768demo板子两片,使用端口说明 - P2.0 解码输入 - P2.1 发码输出 以下端口定义是为了RX端的测试,为了简化测试RX不接收无线充TX的数据与响应,RX用IO口来控制TX发ATN,既TX要求发数据 - P2.2 TX的输入: 低电平则对RP响应ATN,准备发送数据,高电平对RP响应ACK - P2.3 RX输出: 用于RX模拟让TX发送ATN,TX要发消息或主动请求降功率的CAP数据。 - P2.4 TX的输入: 默认上拉TX发送msg,接低后进入命令p运行则发送cap用于模拟主动降低功率要求RX重新获得cap来重协商功率,也就是增加推荐流程里的降低功率方法,其实在进入协议阶段也可以发GRQ_cap来请求cap的。 - 连接P2.2与P2.3对接,p2.0与p2.1对接 注:当测试TX主动请求降功率,按文档的推荐流程时,要把P2.4接地后运行。 - 生成代码下载到两块板子里,输入输出对接好测试,注:为了模拟外在物,TX端运行的测试代码对FOD回应ack、nak交替执行,所以后面测试只用了一个FOD_rf代替。 代码在CortexM3上测试的,但为了方便移植到cortexM0上考虑到数据对齐的。 - 按文档翻译的发射端协议层状态机代码、物理层实现代码与功率控制PID模块代码,加测试协议层不规范的测试代码给需要的人参考。 测试代码主要是对的通用流程测试与加部分异常流程测试:每个阶段的非法包与包计数值错误测试单独测了,不放在序列里面,这里只测协议层的正常的流程与超时(里面只提供Tnext(用最大值25ms)的超时测例分23ms能接到下一包与27ms不能接到下包显示Tnext ot情况,其他测试类似不加入了),协议层有详细的打印信息,通过看打印信息决定覆盖分支的正确、错误。为了简化测试不接收无线充TX的响应与数据,通过TX打印看。 - 提供的协议文件库为带打印的调试版本,协议库代码超时上都按最小与最大值来定 - 说明: 1. 物理层、协议层默认初始化零段变量由启动代码初始化,代码里面没有提供初始化。 2. 应用层编程不需要用到物理层的函数,只需要关心接到的数据包或数据及对定义的全局变量赋相应值(这里也是简单问题不复杂化不使用回调函数)。物理层只是定义好输入输出口与定时器计数值就行(简单问题不复杂化,所以不模块化这层了否则就要提供注册硬件接口函数) 3. 提供sch.png原理图与pcb.png文件:由于没得芯片硬件环境只能自己设计电路,设计中用脉冲计数终端探测与功率传输前的外在物探测,这个到时通过实测标定值。TX发送通过发送输出送到中断PIN的输入,用边沿中断实现改变PWM周期寄存器的值实现调制发送。功率传输过程中的校正及异物检测通过ADC采集电压与电流实现。解调电路电流低通、交流放大、整形后送入IO口。 4. 物理层qi_phy_v1.0.c为板子通讯测试协议用的理想波形的解码代码占内存少,而qi_phy.c占用内存多。 5. 添加初步调试工程代码,只提供5W下的9v占空比使用PID代码演示调节实验给有需要的参考。代码不再更新,正常使用打印调试应该用个缓冲区用串口中断发数据,也不用配置区,对于PCB板子电流采集时有时会有偏差错误的,所以代码改用窗口平滑滤波器并使用平滑滤波器的平均值作为值在采集数据超出一定量时丢弃,EPP模式无线充测试仪要设置开启FSK解码,用默认150K通讯能从5W进入15W扩展模式(只要占空比50%,在100K-200K都可以且100时11v就能达到15w)。 6. 添加办公实验环境,几张图片,真的还不如我刚毕业时设备工程实验环境一个调试实验台,一个办公。 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)