主题中讨论的其他器件:TPS61023、
您好、先生!
我一直在为我的应用在 DRP 模式下使用 TUSB320、并将 TPS61023用作升压转换器。 我的电池充电电路工作良好。 但当我尝试给手机等外部设备充电时。 有些手机会显示充电状态、但可以选择慢速充电。 而另一部手机甚至不提供充电状态。 需要注意的是、我目前已将 CC 引脚配置为1.5A。 但当我将其更改为3A 时、没有任何器件显示充电状态。 请在这方面协助我。 我附加了原理图和 PCB 布局。 谢谢
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好、先生!
我一直在为我的应用在 DRP 模式下使用 TUSB320、并将 TPS61023用作升压转换器。 我的电池充电电路工作良好。 但当我尝试给手机等外部设备充电时。 有些手机会显示充电状态、但可以选择慢速充电。 而另一部手机甚至不提供充电状态。 需要注意的是、我目前已将 CC 引脚配置为1.5A。 但当我将其更改为3A 时、没有任何器件显示充电状态。 请在这方面协助我。 我附加了原理图和 PCB 布局。 谢谢
您好、Hamza:
感谢您的联系。 您能否以 PDF 格式共享原理图? 您在显示的图片中很难看到详细信息和网络名称。
我有几个问题需要更好地了解这个问题:
某些电话显示充电状态但提供慢充选项。 而另一部手机甚至不提供充电状态
1.在您的情况下、某些手机会充电、而某些手机会在电流模式设置为1.5A 时不充电?
当我将其更改为3A 时、没有设备显示充电状态
2.当您为3A 配置 CURRENT_MODE 时,您的手机根本无法从端口充电?
3.如何控制 C 型 VBUS? 仅当 TUSB320上的 ID 变为低电平时、才应启用 VBUS。
此致!
谢恩
大家好、感谢您的观看。 是的、我以 PDF 格式共享我的原理图、以便您查看。
e2e.ti.com/.../CO_5F00_Detector.PDF
您的问题的答案如下。
在您的情况下,某些电话会充电,而某些电话则在当前模式设置为1.5A 时不会充电?
1.可以,我已将电流模式设置为1.5A (下面为配置当前模式附加了代码片段)。 实际上我正在测试我的电路,所以我连接了一个手机从小米 Redmi 注12。 而另一部手机是来自 Apple 的 Iphone15。 连接电缆时,小米 手机显示充电状态,但大约1分钟后,会显示一条消息,说"手机充电缓慢。 请检查您的电缆或充电器"。 而另一方面、Apple 设备甚至不会显示充电状态。 我还连接了三星手机它也显示慢充电状态. 不过、我已经检查了 VBUS 的电压、它们大约为5.07V。
void usb_currentseler()
{
uint8_t data = 0x40;
HAL_I2C_I2C2 Mem_Write (&hi2c2、(0x60<<1)、0x08、1、&data、 11000);
}
当您将 current_mode 配置为3A 时,您的手机根本无法从端口充电?
2、前面说过手机充电慢,所以我设置电流模式为3A,但现在我设置了连接小米设备,但没有充电。 我还连接了一些其他设备、但根本没有充电迹象。 我还可以了解到、TPS61023无法提供3A 电流、但能提供1.5A 电流、因此 TUSB320无法提供所需的电流来为手机充电。
如何控制 Type-C VBUS? 仅当 TUSB320上的 ID 变为低电平时、才应启用 VBUS。[/报价]3、我目前在设计中已经拉高了 ID 脚。 所以它很高。 我通过使用 CC 引脚来控制 VBUS。
谢谢
您好、Hamza:
从原理图中看、您的5V 电源轨和 Type-C VBUS 之间没有 VBUS 开关:
在 Type-C 端口中、应仅在 CC 线路上建立连接后才应用 VBUS。 完成该连接后、我们的 TUSB320会将 ID 引脚拉低。 当 ID 为低电平时、VBUS 开关应采用 VBUS。 以下是 有关如何使用 TUSB320控制 Type-C 端口上的 VBUS 的良好资源。
为什么 TUSB320无法提供所需的电流来为手机充电[/报价]TUSB320不向 Type-C 端口提供电流。 CURRENT_MODE 引脚只会告知连接的器件 VBUS 上预期的电流是多少。 实际的 VBUS 将通过 VBUS 开关和电源提供。
您能展示一下从电源到 Type-C VBUS 的电源路径方框图吗? 我希望确保我没有错过原理图中的任何内容。
此致!
谢恩
尊敬的 Shane:
感谢您的帮助、但我需要让一些事情变得更简单、目前 R59是 DNP。 而 P1是配置焊盘、可在5V_1.5A 和5V_3A 电源之间进行选择。 目前我正在使用5V_1.5A、因此 焊接了电源和5V_1.5A。 为了更好地理解、请附上图片。
我看不到5V 电源轨和 Type-C VBUS 之间的 VBUS 开关:
在软件中使用 TUSB320寄存器进行切换。 但也添加了一个小电路、表明何时提供 VBUS。 外部设备仅在以下情况下充电(提供 VBUS): EXT_DEV_CHRG_EN 设置为高电平。 我将附加一个代码片段和开关电路、以便您进行审阅。 谢谢。
如果您在原理图或代码中发现任何错误、敬请告知。 所以我可以修复它。 目前我的问题是某些设备正在充电、而某些设备没有充电。 不过、我已经读取了 DEVICE_ID 并正常运行。
uint8_t usb_cabledetect_statedetect ()
{
uint8_t wr_addr[3]={0x08、0x09、0x0A};
uint8_t cable_nd_state_detection[3];
uint8_t 标志= 2;
for (int i=0;i<3;i++)
{
HAL_I2C_I2C2 Mem_Read (&hi2c2、0x60<<1、wr_addr[i]、1、&cable_nd_state_detection[i]、 11000);
}
if (cable_nd_state_detection[1]& 0x40)//外部设备充电
{
HAL_GPIO_WritePin (EXT_DEV_CHRG_EN_GPIO_Port、EXT_DEV_CHRG_EN_Pin、GPIO_PIN_SET);
HAL_GPIO_WritePin (CHG_EN_GPIO_Port、CHG_EN_Pin、GPIO_PIN_RESET);
标志=1;
}
否则、if (cable_nd_state_detection[1]& 0x80)//电池充电
{
HAL_GPIO_WritePin (EXT_DEV_CHRG_EN_GPIO_Port、EXT_DEV_CHRG_EN_Pin、GPIO_PIN_RESET);
HAL_GPIO_WritePin (CHG_EN_GPIO_Port、CHG_EN_Pin、GPIO_PIN_SET);
标志= 0;
}
否则//无
{
HAL_GPIO_WritePin (EXT_DEV_CHRG_EN_GPIO_Port、EXT_DEV_CHRG_EN_Pin、GPIO_PIN_RESET);
HAL_GPIO_WritePin (CHG_EN_GPIO_Port、CHG_EN_Pin、GPIO_PIN_RESET);
}
返回标志;
}
您好、Hamza:
我没有意识到 D7未被填充。 感谢您的澄清。
看看 VBUS 开关电路、当 T4变为高电平时、您的 EXT DEV CHRG EN 将驱动 T4。 这将把 T5上的栅极拉至 GND 并 启用 VBUS 开关。 我假设这意味着 EXT DEV CHRG EN 信号为 高电平有效(当信号为高电平时提供 VBUS)。 您能确认吗?
如果是这种情况、我不明白 在器件断开后、T5的栅极如何被上拉以禁用开关。 当 EXT DEV CHRG EN 信号变为低电平并禁用 T4时、T5的栅极将是悬空节点。 您能否检查以下各项:
1.插入设备时, 您是否看到 T5 (和 VBUS)已启用?
2.当您分离设备时,您是否看到 T5 (和 VBUS)被禁用?
此致!
谢恩
Shane、您好!
EXT dev CHRG EN 信号处于 高电平有效
是的、 EXT DEV CHRG EN 是一个高电平有效信号。
T5的栅极将是一个浮点节点
是的、您很正确、一旦器件已连接(VBUS 已启用)、但当器件因 T5栅极的悬空状态而断开时(VBUS 仍启用)。 我认为这是我这边关于电源开关的问题!!.
关于如何使电流电路在充电方面正常工作的任何建议。 我会在不久的将来修改原理图。 谢谢