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.