Hello,
I'm trying set up a TUSB422 device to sink at higher voltages. Something appears to be incorrect in the negotiation.
I see the capabilities message and corresponding Request message as follows:
Rx msg len: 12-bytes, type: 1 (SRC_CAPS) MsgID: 0 rx_buf: 0x2c 91 01 08 2c c1 03 00 fa b0 04 00 PE_SNK_EVALUATE_CAPABILITY $$$tcpm_connection_state_machine: state_change = 0, state = 0xa. timer_cancel_no_response PDO[0] = 0x0801912c Remote SRC_CAPS externally powered bit is set. PDO-1 Fixed, 5000 - 5000 mV, 3000 mA, 15000 mW PDO[1] = 0x0003c12c PDO-2 Fixed, 12000 - 12000 mV, 3000 mA, 36000 mW PDO[2] = 0x0004b0fa PDO-3 Fixed, 15000 - 15000 mV, 2500 mA, 37500 mW PDO-3 0x0004b0fa selected selected_snk_pdo_idx: 2 PE_SNK_SELECT_CAPABILITY Tx msg_type: 2 (REQUEST), sop: 0, ndo: 1 buf[0-2]: 0x06 42 10
After this though I am not seeing any Accept, Reject or Ready Message. Instead the low voltage Alert appears to fire:
->P0 IRQ: 0x012a Lo-Voltage alarm Hard Reset Rx'd. PE_SNK_TRANSITION_TO_DEFAULT
Is there actually any way to see in SW stack that the message was sent correctly (ie TUSB422 received GoodCRC)?
Full log output attached
________ _________ ____ ___ ___
/_ __/ / / / __/ _ )/ / /|_ ||_ |
/ / / /_/ /\ \/ _ /_ _/ __// __/
/_/ \____/___/____/ /_//____/____/
PD Stack v0.98
=====================================
TCPM Init
UNATTACHED_SRC
Port[0]: addr: 0x20, DRP, Rp: 3.0A, Flags: Try-SNK.
VID: 0x0451
PID: 0x0422
DID: 0x0100
REV: 0x02
PD Init
TUSB Init Complete
->P0 IRQ: 0x0002
*****TCPC_ALERT_POWER_STATUS****
pwr_status = 0x00
$$$tcpm_connection_state_machine: state_change = 1, state = 0x0.
SRC VBUS off.
tcpm_source_vbus_disable()SNK VBUS off.
tcpm_hal_vbus_disable(port, VBUS_SNK);
tcpm_set_voltage_alarm_hi: 25575mV
tcpm_set_voltage_alarm_lo: 800mV
tcpm_set_sink_disconnect_threshold: 0mV
PE_UNATTACHED
tcpm_mux_controlMux: Disable
pe_dummy_state_entry
->P0 IRQ: 0x0100
Lo-Voltage alarm
$$$tcpm_connection_state_machine: state_change = 0, state = 0x0.
Random Number:
27 F4 AC 3E 69 C8 96 5F 64 48 78 D8 57 6F 44 0A | '..>i.._dHx.WoD.
94 51 0D D2 D6 D9 2A 89 37 13 DB 0E 78 8E 4D 58 | .Q....*.7...x.MX
Random Number:
A3 5E 30 67 07 1E 34 AD EC A5 CF 90 72 65 2E A5 | .^0g..4.....re..
47 C9 AF BE 98 FA 87 59 59 86 15 AF 8D 9C 1E 2F | G......YY....../
Random Number:
6B 5F 84 69 62 5C B1 9D 14 C6 70 05 F6 29 8A 7D | k_.ib\....p..).}
70 FE 16 E9 27 03 0F 20 0F DD E8 C5 20 F9 9A 01 | p...'.. .... ...
Random Number:
22 5B 5A 50 3C B0 D1 F2 B6 D8 22 A7 6F A2 42 22 | "[ZP<.....".o.B"
59 60 D9 AB 63 CD 08 DB 3B D3 E8 C6 48 3B 14 D9 | Y`..c...;...H;..
->P0 IRQ: 0x0001
CC status = 0x10
$$$tcpm_connection_state_machine: state_change = 0, state = 0x0.
->P0 IRQ: 0x0001
CC status = 0x13
ATTACH_WAIT_SNK
$$$tcpm_connection_state_machine: state_change = 1, state = 0x3.
timeout_cc_debounce CC status = 0x13
ATTACHED_SNK
$$$tcpm_connection_state_machine: state_change = 1, state = 0xa.
SRC current: 3.0A
tcpm_set_voltage_alarm_lo: 4000mV
-> SNK VBUS.
tcpm_hal_vbus_enable(port, VBUS_SNK);
PE_SNK_STARTUP
tcpm_mux_controlMux: USB
PE_SNK_DISCOVERY
PE_SNK_WAIT_FOR_CAPS
tcpm_set_voltage_alarm_lo: 4000mV
Enable PD Rx: SOP'=0, SOP"=0
->P0 IRQ: 0x0002
*****TCPC_ALERT_POWER_STATUS****
pwr_status = 0x0c
VBUS present
$$$tcpm_connection_state_machine: state_change = 0, state = 0xa.
->P0 IRQ: 0x0004
PD Rx
Rx msg len: 12-bytes, type: 1 (SRC_CAPS)
MsgID: 0
rx_buf: 0x2c 91 01 08 2c c1 03 00 fa b0 04 00
PE_SNK_EVALUATE_CAPABILITY
$$$tcpm_connection_state_machine: state_change = 0, state = 0xa.
timer_cancel_no_response
PDO[0] = 0x0801912c
Remote SRC_CAPS externally powered bit is set.
PDO-1 Fixed, 5000 - 5000 mV, 3000 mA, 15000 mW
PDO[1] = 0x0003c12c
PDO-2 Fixed, 12000 - 12000 mV, 3000 mA, 36000 mW
PDO[2] = 0x0004b0fa
PDO-3 Fixed, 15000 - 15000 mV, 2500 mA, 37500 mW
PDO-3 0x0004b0fa selected
selected_snk_pdo_idx: 2
PE_SNK_SELECT_CAPABILITY
Tx msg_type: 2 (REQUEST), sop: 0, ndo: 1
buf[0-2]: 0x06 42 10
->P0 IRQ: 0x012a
Lo-Voltage alarm
Hard Reset Rx'd.
PE_SNK_TRANSITION_TO_DEFAULT
*****TCPC_ALERT_POWER_STATUS****
pwr_status = 0x08
VBUS not present
UNATTACHED_SNK
$$$tcpm_connection_state_machine: state_change = 1, state = 0x1.
SRC VBUS off.
tcpm_source_vbus_disable()SNK VBUS off.
tcpm_hal_vbus_disable(port, VBUS_SNK);
tcpm_set_voltage_alarm_hi: 25575mV
tcpm_set_voltage_alarm_lo: 800mV
tcpm_set_sink_disconnect_threshold: 0mV
PE_UNATTACHED
tcpm_mux_controlMux: Disable
pe_dummy_state_entry
->P0 IRQ: 0x0101
Lo-Voltage alarm
CC status = 0x30
$$$tcpm_connection_state_machine: state_change = 0, state = 0x1.
->P0 IRQ: 0x0001
CC status = 0x13
ATTACH_WAIT_SNK
$$$tcpm_connection_state_machine: state_change = 1, state = 0x3.
timeout_cc_debounce CC status = 0x13
$$$tcpm_connection_state_machine: state_change = 0, state = 0x3.
->P0 IRQ: 0x0002
*****TCPC_ALERT_POWER_STATUS****
pwr_status = 0x08
VBUS not present
$$$tcpm_connection_state_machine: state_change = 0, state = 0x3.
->P0 IRQ: 0x0002
*****TCPC_ALERT_POWER_STATUS****
pwr_status = 0x0c
VBUS present
ATTACHED_SNK
$$$tcpm_connection_state_machine: state_change = 1, state = 0xa.
SRC current: 3.0A
tcpm_set_voltage_alarm_lo: 4000mV
-> SNK VBUS.
tcpm_hal_vbus_enable(port, VBUS_SNK);
PE_SNK_STARTUP
tcpm_mux_controlMux: USB
PE_SNK_DISCOVERY
PE_SNK_WAIT_FOR_CAPS
tcpm_set_voltage_alarm_lo: 4000mV
Enable PD Rx: SOP'=0, SOP"=0
->P0 IRQ: 0x0004
PD Rx
Rx msg len: 12-bytes, type: 1 (SRC_CAPS)
MsgID: 0
rx_buf: 0x2c 91 01 08 2c c1 03 00 fa b0 04 00
PE_SNK_EVALUATE_CAPABILITY
$$$tcpm_connection_state_machine: state_change = 0, state = 0xa.
timer_cancel_no_response
PDO[0] = 0x0801912c
Remote SRC_CAPS externally powered bit is set.
PDO-1 Fixed, 5000 - 5000 mV, 3000 mA, 15000 mW
PDO[1] = 0x0003c12c
PDO-2 Fixed, 12000 - 12000 mV, 3000 mA, 36000 mW
PDO[2] = 0x0004b0fa
PDO-3 Fixed, 15000 - 15000 mV, 2500 mA, 37500 mW
PDO-3 0x0004b0fa selected
selected_snk_pdo_idx: 2
PE_SNK_SELECT_CAPABILITY
Tx msg_type: 2 (REQUEST), sop: 0, ndo: 1
buf[0-2]: 0x06 42 10
->P0 IRQ: 0x012a
Lo-Voltage alarm
Hard Reset Rx'd.
PE_SNK_TRANSITION_TO_DEFAULT
*****TCPC_ALERT_POWER_STATUS****
pwr_status = 0x08
VBUS not present
UNATTACHED_SNK
$$$tcpm_connection_state_machine: state_change = 1, state = 0x1.
SRC VBUS off.
tcpm_source_vbus_disable()SNK VBUS off.
tcpm_hal_vbus_disable(port, VBUS_SNK);
tcpm_set_voltage_alarm_hi: 25575mV
tcpm_set_voltage_alarm_lo: 800mV
tcpm_set_sink_disconnect_threshold: 0mV
PE_UNATTACHED
tcpm_mux_controlMux: Disable
pe_dummy_state_entry
->P0 IRQ: 0x0101
Lo-Voltage alarm
CC status = 0x30
$$$tcpm_connection_state_machine: state_change = 0, state = 0x1.
->P0 IRQ: 0x0001
CC status = 0x13
ATTACH_WAIT_SNK
$$$tcpm_connection_state_machine: state_change = 1, state = 0x3.
timeout_cc_debounce CC status = 0x13
$$$tcpm_connection_state_machine: state_change = 0, state = 0x3.
->P0 IRQ: 0x0002
*****TCPC_ALERT_POWER_STATUS****
pwr_status = 0x08
VBUS not present
$$$tcpm_connection_state_machine: state_change = 0, state = 0x3.
->P0 IRQ: 0x0002
*****TCPC_ALERT_POWER_STATUS****
pwr_status = 0x0c
VBUS present
ATTACHED_SNK
$$$tcpm_connection_state_machine: state_change = 1, state = 0xa.
SRC current: 3.0A
tcpm_set_voltage_alarm_lo: 4000mV
-> SNK VBUS.
tcpm_hal_vbus_enable(port, VBUS_SNK);
PE_SNK_STARTUP
tcpm_mux_controlMux: USB
PE_SNK_DISCOVERY
PE_SNK_WAIT_FOR_CAPS
tcpm_set_voltage_alarm_lo: 4000mV
Enable PD Rx: SOP'=0, SOP"=0
->P0 IRQ: 0x0004
PD Rx
Rx msg len: 12-bytes, type: 1 (SRC_CAPS)
MsgID: 0
rx_buf: 0x2c 91 01 08 2c c1 03 00 fa b0 04 00
PE_SNK_EVALUATE_CAPABILITY
$$$tcpm_connection_state_machine: state_change = 0, state = 0xa.
timer_cancel_no_response
PDO[0] = 0x0801912c
Remote SRC_CAPS externally powered bit is set.
PDO-1 Fixed, 5000 - 5000 mV, 3000 mA, 15000 mW
PDO[1] = 0x0003c12c
PDO-2 Fixed, 12000 - 12000 mV, 3000 mA, 36000 mW
PDO[2] = 0x0004b0fa
PDO-3 Fixed, 15000 - 15000 mV, 2500 mA, 37500 mW
PDO-3 0x0004b0fa selected
selected_snk_pdo_idx: 2
PE_SNK_SELECT_CAPABILITY
Tx msg_type: 2 (REQUEST), sop: 0, ndo: 1
buf[0-2]: 0x06 42 10
->P0 IRQ: 0x012a
Lo-Voltage alarm
Hard Reset Rx'd.
PE_SNK_TRANSITION_TO_DEFAULT
*****TCPC_ALERT_POWER_STATUS****
pwr_status = 0x08
VBUS not present
UNATTACHED_SNK
$$$tcpm_connection_state_machine: state_change = 1, state = 0x1.
SRC VBUS off.
tcpm_source_vbus_disable()SNK VBUS off.
tcpm_hal_vbus_disable(port, VBUS_SNK);
tcpm_set_voltage_alarm_hi: 25575mV
tcpm_set_voltage_alarm_lo: 800mV
tcpm_set_sink_disconnect_threshold: 0mV
PE_UNATTACHED
tcpm_mux_controlMux: Disable
pe_dummy_state_entry
->P0 IRQ: 0x0101
Lo-Voltage alarm
CC status = 0x30
$$$tcpm_connection_state_machine: state_change = 0, state = 0x1.
->P0 IRQ: 0x0001
CC status = 0x13
ATTACH_WAIT_SNK
$$$tcpm_connection_state_machine: state_change = 1, state = 0x3.
timeout_cc_debounce CC status = 0x13
$$$tcpm_connection_state_machine: state_change = 0, state = 0x3.
->P0 IRQ: 0x0002
*****TCPC_ALERT_POWER_STATUS****
pwr_status = 0x08
VBUS not present
$$$tcpm_connection_state_machine: state_change = 0, state = 0x3.
->P0 IRQ: 0x0001
CC status = 0x13
$$$tcpm_connection_state_machine: state_change = 0, state = 0x3.
->P0 IRQ: 0x0001
CC status = 0x10
$$$tcpm_connection_state_machine: state_change = 0, state = 0x3.
->P0 IRQ: 0x8000
422IRQ = 0x10
LFO timer expired!
timeout_pd_debounce CC status = 0x10
UNATTACHED_SRC
$$$tcpm_connection_state_machine: state_change = 1, state = 0x0.
SRC VBUS off.
tcpm_source_vbus_disable()SNK VBUS off.
tcpm_hal_vbus_disable(port, VBUS_SNK);
tcpm_set_voltage_alarm_hi: 25575mV
tcpm_set_voltage_alarm_lo: 800mV
tcpm_set_sink_disconnect_threshold: 0mV
PE_UNATTACHED
tcpm_mux_controlMux: Disable
pe_dummy_state_entry
->P0 IRQ: 0x0100
Lo-Voltage alarm
$$$tcpm_connection_state_machine: state_change = 0, state = 0x0.