我的设计是在初始电缆插入时由VBUS导轨供电。正确协商了接收器轮廓:
_______ _________ _______
/_ __///_///|_ |||_ |
//////\\_ / _/_/_/_/
//\______________///__/
PD Stack v 0.98
===================================================
TCPM初始化
未附加_SRC
端口[0]:地址:0x20,DRP,Rp:3.0A,标志:try-SNK。
VID:0x0451
PID:0x0422
DID:0x0100
版本:0x02
PD初始化
TUSB初始化完成
CC状态= 0x13
Attach _Wait_SNK
CC状态= 0x13
已附加_SNK
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
PE_SNK_启动
tcpm_mux_controlMux:usb
PE_SNK_发现
PE_SNK_WAY_OR_CAPS
PD处方
PE_SNK_Evaluate_Capability
PE_SNK_SELECT_Capability
PD处方
PE_SNK_过渡_接收器
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
PD处方
PE_SNK_就绪
PD处方
PD处方
PD处方
PD处方
PD处方
PD处方
PE_SNK_Evaluate_Capability
PE_SNK_SELECT_Capability
PD处方
PE_SNK_过渡_接收器
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
PD处方
PE_SNK_就绪
策略引擎状态历史记录:
[0] SNK_STARTUP
[1] SNK_DISCOVERY
[2] SNK_WAY_for _CAPS
[3] SNK_Evaluate_Capability
[4] SNK_SELECT_Capability
[5] SNK_transition接收器
[6] SNK_READY
[7] SNK_Evaluate_Capability
[8] SNK_SELECT_Capability
[9] SNK_transition接收器
->[10] SNK_READY
C型状态:Attached_SNK (最后:Attach_Wait_SNK)
然后设备重启(这会导致VDD和VCONN在TUSB422上重启),但MCU保持打开,电缆保持插入状态。 在关闭电源后重启时,我正在重新初始化SW堆栈。 在此期间,CC似乎出现硬复位。 这会导致SW堆栈卡在发现状态,并忽略传入Source_Cap消息:
_______ _________ _______
/_ __///_///|_ |||_ |
//////\\_ / _/_/_/_/
//\______________///__/
PD Stack v 0.98
===================================================
TCPM初始化
未附加_SRC
端口[0]:地址:0x20,DRP,Rp:3.0A,标志:try-SNK。
VID:0x0451
PID:0x0422
DID:0x0100
版本:0x02
PD初始化
TUSB初始化完成
CC状态= 0x13
Attach _Wait_SNK
已附加_SNK
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
PE_SNK_启动
tcpm_mux_controlMux:usb
PE_SNK_发现
PE_SNK_WAY_OR_CAPS
PE_SNK_hard_reset
PE_SNK_transition _to_default
tcpm_hal_vbrUS_disable (端口,vbrUS_SNK);
PE_SNK_启动
PE_SNK_发现
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
CC状态= 0x13
tcpm_hal_vbrUS_enable (端口,vbrUS_SNK);
策略引擎状态历史记录:
[0] SNK_STARTUP
[1] SNK_DISCOVERY
[2] SNK_WAY_for _CAPS
[3] SNK_hard_reset
[4] SNK_Transitation_to_default
[5] SNK_STARTUP
->[6] SNK_DISCOVERY
tcpC-0注册表:
10:00
11:00
12:FF
13:0f
14:FF
15:7F
18:60
19:00
1A:0A.
1B:06
1C:60
一维:13.
1E: 00
1F:00
2E:02
2F:00
70:00
71:00
72:00
73:00
74:00
75:00
76:00
77:00
78:00
79:00
90:00
92:00
94:04
A0:00
基于寄存器转储,它看起来有点像硬重置掉电导致TUSB422重置,但不是MCU。
电源树
VBUS -------- 3V3--MCU
\----------- 3V3-----TUSB VDD
\----------- TUSB VCONN
是否有办法从这种情况中恢复(我想,如果我重新初始化堆栈,我会发现自己处于死锁状态)?
或者,在我重新初始化堆栈以准备TUSB422之前,是否应该调用某些内容?
注:尽管打印了标题,我仍在使用堆栈的rev 0.99。