ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

使用4.2V以上的电池给CH248Q+SW6201方案供电,无线充无法唤醒的问题。

使用4.2V以上的电池给CH248Q+SW6201方案供电,无线充无法唤醒的问题。 一、简介CH248QSW6201方案是一个无线充充电宝的方案SW6201是电池管理芯片负责管理电池充放电以及给CH248Q供电。CH248Q则作为无线充电发射控制芯片负责无线充电的功率传输与协议管理实现一个无线充充电宝的方案。SW6201的一个USB-A对外放电的口给CH248Q供电支持CH248Q唤醒。该方案支持边充边放在给充电宝自身充电的同时也能对外输出提升使用便利性同时具备电量显示、按键控制等辅助功能整体集成度高、外围器件少便于产品小型化设计。SW6201有驱动数码管显示的能力可以显示电量信息还有多的LED驱动做快充显示指示灯。二、方案特点CH248QSW6201方案集成了无线充电与有线快充功能具备以下特点1、无线充电CH248Q负责无线充电发射控制支持标准Qi协议可为支持无线充电的手机等设备提供便捷充电最大可以支持15W快充协议。2、有线快充SW6201支持多种快充协议通过USB-A口对外放电满足不同设备的充电需求。3、低功耗唤醒SW6201在待机状态下功耗极低通过USB-A口的VBUS为CH248Q供电并支持唤醒提升整体能效。4、电池管理SW6201集成电池充放电管理具备过充、过放、过流、过温等保护功能保障使用安全。三、硬件CH248Q的参考方案的原理图中有一部分是电池供电和VBUS供电转换电路使用普通的充电器给该口供电是无法实现供电的必须要使用电池管理芯片的VBUS输出供电。这里的VHV是CH248Q的芯片供电他的来源可以是VBAT也可以是VBUSAXVBUSAX表示使用电池管理芯片的USB_A输出的VBUSA口供电后面的X表示是USB_AX口供电UDM/UDP是用于和SW6201的DMDP协商QC2.0提高供电电压。在默认状态下是由电池给CH248Q供电的在低功耗模式下会间断性Q一下线圈上是否检测到设备当Q到设备之后会尝试唤醒SW6201使用VBUSAX给CH248Q供电。这个时候CTRL会关断PMOS和NMOS关断PMOS是关断VBAT给VBUS供电CTRL会打开下面的NMOS回导通下端的R17到GND。因为SW6201的USB-A口的唤醒需要检测到VBUS上的抖动来判断设备接入唤醒打开NMOS后VBUSAX的电压经过R17电阻负载会把电压拉低做出一个唤醒的动作。所以虚线框的电路不能改动。唤醒后由VBUSAX给板子的VBUS供电。四、软件在休眠状态CH248Q是由电池供电会定期Q一下设备需要Q到设备之后才会唤醒SW6201的USB-A供电。1、电池电压采样异常问题Q到设备之后会进入PING的阶段检查PING到数据证明线圈上是有接收设备的同时PING的过程获取设备信息获取信号强度、标识包、配置包、控制误差包等。/* VHV检测到唤醒/进入睡眠 电压阈值 */ /* 以下一组值适配4.4V/4.2V电池,同时CH213可焊接可不焊接。因为要兼容CH213焊接的情况故阈值一般需要设置高一点。 * 其缺点是有线充工作时且尝试无线充唤醒如果唤醒后VBUSAx电压低于4.8V,则会判定唤醒不成功 。 */ #define VOL_VBUSA1_MIN 297 /* 唤醒电压理论4.71V实际趋近于4.57V */ #define VOL_VBAT_MAX 287 /* 睡眠电压滞回低值理论4.63V实际趋近于4.45V */ #define VOL_VBUSA1_RELIFE 301 /* 睡眠电压滞回高值理论4.75V实际趋近于4.65V */ /* 以下一组值适配4.4V/4.2V电池,同时CH213不可焊接,此时适当降低一些阈值是可以的以优化上述问题 ,因为默认是兼容CH213故此组值默认不用 */ //#define VOL_VBUSA1_MIN 289 /* 唤醒电压理论4.66V实际趋近于4.52V */ //#define VOL_VBAT_MAX 284 /* 睡眠电压滞回低值理论4.58V实际趋近于4.4V */ //#define VOL_VBUSA1_RELIFE 292 /* 睡眠电压滞回高值理论4.71V实际趋近于4.6V */ ///* 以下一组值适配4.2V电池,同时CH213不可焊接,此时适当降低一些阈值是可以的以优化上述问题 ,因为默认是兼容CH213故此组值默认不用 */ //#define VOL_VBUSA1_MIN 284 /* 唤醒电压理论4.66V实际趋近于4.4V */ //#define VOL_VBAT_MAX 280 /* 睡眠电压滞回低值理论4.58V实际趋近于4.3V */ //#define VOL_VBUSA1_RELIFE 286 /* 睡眠电压滞回高值理论4.71V实际趋近于4.45V */使用不同电压的电池供电需要调整该阈值电池唤醒还需要一个条件VBUSAX的电压比电池的电压要高否则无法唤醒。uint16_t get_wake_volt_ref( void ) { return VOL_VBUSA1_MIN; }电压检测函数。while(1) { adc_set_vhv(); adc_temp adc_start(); if(adc_temp get_wake_volt_ref()) //电源已切换到VBUSA1 4.5V以上 { break; } bat_ping_tick; if(bat_ping_tick 199) break; mDelaymS(4); }检测到VHV的电压大于电池电压开始唤醒VBUSXA。若设置的VOL_VBUSA1_MIN低于电池电压则主函数会误判已经是VBUS供电了就不会操作CTRL控制PMOS和NMOS唤醒SW6201的USB_A口所以在使用4.2V以上的电池供电时需要适当的更具实际检测的值提高VOL_VBUSA1_MIN的值。适当的减少VOL_VBAT_MAX的值VOL_VBUSA1_RELIFE VOL_VBUSA1_MIN 3。若是过了这个判断还没有唤醒SW6201可以看一下PING的过程看一下PING的过程是否收到了数据。2、PING过程异常PING的过程可以用示波器观察线圈的波形PING的过程要是没有PING上正常会尝试PING6次每次的时间间隔是180ms观察是否是有6端每次间隔180ms的波形如果是6段上述波形标识没有PING上设备检擦QII检测电路是否走线上有干扰导致通讯异常或者是PING的数据包解析有问题。//分析数据接收情况 if(bat_ping_wake 2) //收到数据,即刻唤醒 { //分析收到的数据 if((qirx.Qi_Byte_Buff[0] QI_Header_SS) || (qirx.Qi_Byte_Buff[0] QI_Header_P12) || \ (qirx.Qi_Byte_Buff[0] QI_Header_ID) ) { break; } else { bat_ping_wake 1; //收到的数据非法可能是误解码,作废处理 }在这里增加打印解析打印的数据观察数据包是否有异常。
返回列表