CCG3 PA 反向给leonvo YOGA 14S笔记本充电

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Flance_Fang
Level 4
Level 4
Distributor - Weikeng(GC)
50 sign-ins 50 questions asked 25 sign-ins

Hi.Infineon

目前使用CCG3 PA  CYPD3171做的power bank,跟大部分设备充电都能做try source,但当碰到 yoga 14S笔记本时,发现反向充电故障(笔记本给充电宝充,充电宝电量是75%;笔记本电量 30% 之间)。不断插拔C口,10次,有6次出现反冲。问下:3171在power bank上做try souce是否有优先等级的设置,比如设置成1是最高,8是最低呢?从沟通日志来看,没有看到角色切换动作,power bank直接就做成了sink。

0 点赞
1 解答
Wang_Fred
Moderator
Moderator
Moderator
5 questions asked 100 solutions authored 250 sign-ins

Hi Flance,

你说的这个门限值应该就是我上个回复中cutoff voltage, 这个电压可以通过Configuration Utility -> Battery Configurations -> Battery cutoff voltage修改。

在代码里,是在power_bank.c -> pb_debounce_cb()中会读取当前battery的电压跟这个cutoff电压进行比较,如果在debounce的时间内一直小于这个值且当前为source,就会先disable PD,关断VBUS, 触发进入到PB_BATTERY_STATE_DB_TYPEC_WAIT_DCZ状态。

也可以在下面代码中手动写死这个值,就不用从config table中读了。

if (vbatt <= pd_get_ptr_bat_chg_tbl(port)->vbatt_cutoff_volt)

Wang_Fred_0-1670234297020.png

 

在原帖中查看解决方案

0 点赞
8 回复数
lock attach
Attachments are accessible only for community members.
Flance_Fang
Level 4
Level 4
Distributor - Weikeng(GC)
50 sign-ins 50 questions asked 25 sign-ins

add config and CC log .

 

thanks

flance fang

0 点赞
Wang_Fred
Moderator
Moderator
Moderator
5 questions asked 100 solutions authored 250 sign-ins

Hi Flance,

一定程度上也是合理的,在充电宝插入笔记本的时候,有概率充电宝不能识别为source。

或者可以使能POWER_ROLE_PREFERENCE_ENABLE宏定义,首次contract完成后通过发送PR_SWAP实现角色转换。

 

Thanks, Fred

0 点赞
Flance_Fang
Level 4
Level 4
Distributor - Weikeng(GC)
50 sign-ins 50 questions asked 25 sign-ins

Hi.Fred

在CCG3 PA 3171的标准固件,并没有找到POWER_ROLE_PREFERENCE_ENABLE的相关宏定义,能提供类似固件的定义和相关工程调用工程的历程吗?我好按照历程增加到3171工程中去。

 

0 点赞
Wang_Fred
Moderator
Moderator
Moderator
5 questions asked 100 solutions authored 250 sign-ins

Hi Flance,

想问下,客户power bank的设计为什么会参考PA的固件呢?

这个宏定义在CCGx Power SDK的CYPD3171 pb的demo code中是可以找到的,但需要在config.h中enable一下,还有另外一个宏定义ROLE_PREFERENCE_ENABLE也需要enable。

 

另外一个建议稍微简单些,可以尝试用Configuration Utility把Battery Configurations -> Battery cutoff voltage适当调低一点,在pb的固件中,如果VBAT大于这个电压,正常情况会去PR_SWAP的。 

0 点赞
lock attach
Attachments are accessible only for community members.
Flance_Fang
Level 4
Level 4
Distributor - Weikeng(GC)
50 sign-ins 50 questions asked 25 sign-ins

Hi.Fred

customer current use the ref. SDK is PB812B Ver. 3.3 as below; In CCG3(CYPD3125) or CCG5(CYPD5225) standard SDK, I can find the /* Disable Fast Role Swap from Source to Sink. */
#define CCG_FRS_TX_ENABLE (0u)

In SDK CCG3 PB Ver.3.5 , I also find below information, but I can't find ROLE_PREFERENCE_ENABLE in config.h; I will let customer to add TX_enable (1) into their SDK.

#if CCG_PD_REV3_ENABLE
#define CCG_FRS_RX_ENABLE (0u)
#define CCG_FRS_TX_ENABLE (0u)
#define CCG_PPS_SRC_ENABLE (0u)

 

By the way, would you tell your SDK ver. information or share it to me.

对于可以尝试用Configuration Utility把Battery Configurations -> Battery cutoff voltage适当调低一点,在pb的固件中,如果VBAT大于这个电压,正常情况会去PR_SWAP的。 

-feedback:客户之前设置的电压是9V,修改到5V后也没有看到pr_swap.

 

thanks

flance fang

 

0 点赞
Wang_Fred
Moderator
Moderator
Moderator
5 questions asked 100 solutions authored 250 sign-ins

Hi Flance,

我看了下这个代码,跟SDK还是有些区别。SDK3.5config.h中 ROLE_PREFERENCE_ENABLE没有定义,所以需要手动加个宏定义。

另外在power_bank.c -> pb_event_handler()中有相关代码,如果当前是normal state且为sink且对方为DRP,会发PR_SWAP,关于normal state跟其他state的状态切换,代码在pb_bat_monitor()中。

Wang_Fred_0-1669796641760.png

 

至于客户修改了cutoff voltage还不能PR_SWAP的原因,可以测试下VBAT是否是真的大于cutoff V?

0 点赞
Flance_Fang
Level 4
Level 4
Distributor - Weikeng(GC)
50 sign-ins 50 questions asked 25 sign-ins

Hi.Fred

好的,谢谢!客户在他们的辅助CPU目前多做了几次hard rest,可以初步解决反冲现象,让他们也尝试你的相关建议再试试。

想问下:在代码中,我们3171是在哪个地方来设置该电池的门限值:电池电量很低时截止向外放电,笔记本也不给它充电(应该是dead battery enable),比如电池剩余电量5%或者3%,就不再放电了,否则电池就会进入加速报废状态,该状态的参数是在哪个地方设置和修改呢?

 

thanks

flance fang

0 点赞
Wang_Fred
Moderator
Moderator
Moderator
5 questions asked 100 solutions authored 250 sign-ins

Hi Flance,

你说的这个门限值应该就是我上个回复中cutoff voltage, 这个电压可以通过Configuration Utility -> Battery Configurations -> Battery cutoff voltage修改。

在代码里,是在power_bank.c -> pb_debounce_cb()中会读取当前battery的电压跟这个cutoff电压进行比较,如果在debounce的时间内一直小于这个值且当前为source,就会先disable PD,关断VBUS, 触发进入到PB_BATTERY_STATE_DB_TYPEC_WAIT_DCZ状态。

也可以在下面代码中手动写死这个值,就不用从config table中读了。

if (vbatt <= pd_get_ptr_bat_chg_tbl(port)->vbatt_cutoff_volt)

Wang_Fred_0-1670234297020.png

 

0 点赞