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.

TUSB422: Sink profile negotiation

Part Number: TUSB422

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.