usb_cables: add usb-c signal shunt

This commit is contained in:
King Kévin 2020-02-27 12:54:30 +01:00
parent d43b098fbf
commit 33ec1bcd26
3 changed files with 70 additions and 15 deletions

View File

@ -1078,8 +1078,8 @@ static void command_test(void* argument)
USB_CABLE_AB3_DEVICE,
USB_CABLE_AAB2_HOST,
USB_CABLE_AUB3_HOST,
USB_CABLE_CSHUNT_HOST,
USB_CABLE_CSHUNT_DEVICE,
USB_CABLE_CPINSHUNT_HOST,
USB_CABLE_CPINSHUNT_DEVICE,
};
for (uint8_t cable_id = 0; cable_id < LENGTH(test_cables); cable_id++) {

View File

@ -1150,8 +1150,8 @@ static const struct usb_connector_t* usb_c_host_connectors[] = {
&usb_c_host_connector,
};
/** this is not a cable, but a shunt shorting opposite signal the type C connector so to test it */
static const uint8_t usb__c_host__c_host__cshunt_pins[][2] = {
/** this is not a cable, but a shunt shorting opposite pins the type C connector so to test it */
static const uint8_t usb__c_host__c_host__cpinshunt_pins[][2] = {
{usb_c_host_sidea_pins[1], usb_c_host_sideb_pins[12]}, // A1 GND, B12 GND
{usb_c_host_sidea_pins[2], usb_c_host_sideb_pins[11]}, // A2 TX+1, B11 RX+1
{usb_c_host_sidea_pins[3], usb_c_host_sideb_pins[10]}, // A3 TX-1, B10 RX-1
@ -1166,12 +1166,28 @@ static const uint8_t usb__c_host__c_host__cshunt_pins[][2] = {
{usb_c_host_sidea_pins[12], usb_c_host_sideb_pins[1]}, // A12 GND, B1 GND
};
/** this is not a cable, but a shunt shorting opposite signal the type C connector so to test it */
static const uint8_t usb__c_host__c_host__csignalshunt_pins[][2] = {
{usb_c_host_sidea_pins[1], usb_c_host_sideb_pins[1]}, // A1 GND, B1 GND
{usb_c_host_sidea_pins[2], usb_c_host_sideb_pins[2]}, // A2 TX+1, B2 TX+2
{usb_c_host_sidea_pins[3], usb_c_host_sideb_pins[3]}, // A3 TX-1, B3 TX-2
{usb_c_host_sidea_pins[4], usb_c_host_sideb_pins[4]}, // A4 VBUS, B4 VBUS
{usb_c_host_sidea_pins[5], usb_c_host_sideb_pins[5]}, // A5 CC1, B5 CC2
{usb_c_host_sidea_pins[6], usb_c_host_sideb_pins[6]}, // A6 D+1, B6 D+2
{usb_c_host_sidea_pins[7], usb_c_host_sideb_pins[7]}, // A7 D-1, B7 D-2
{usb_c_host_sidea_pins[8], usb_c_host_sideb_pins[8]}, // A8 SBU1, B8 SBU2
{usb_c_host_sidea_pins[9], usb_c_host_sideb_pins[9]}, // A9 VBUS, B9 VBUS
{usb_c_host_sidea_pins[10], usb_c_host_sideb_pins[10]}, // A10 RX-2, B10 RX-1
{usb_c_host_sidea_pins[11], usb_c_host_sideb_pins[11]}, // A11 RX+2, B11 RX+1
{usb_c_host_sidea_pins[12], usb_c_host_sideb_pins[12]}, // A12 GND, B12 GND
};
/** list of connectors for C shunts (using C device connector) */
static const struct usb_connector_t* usb_c_device_connectors[] = {
&usb_c_device_connector,
};
static const uint8_t usb__c_device__c_device__cshunt_pins[][2] = {
static const uint8_t usb__c_device__c_device__cpinshunt_pins[][2] = {
{usb_c_device_sidea_pins[1], usb_c_device_sideb_pins[12]}, // A1 GND, B12 GND
{usb_c_device_sidea_pins[2], usb_c_device_sideb_pins[11]}, // A2 TX+1, B11 RX+1
{usb_c_device_sidea_pins[3], usb_c_device_sideb_pins[10]}, // A3 TX-1, B10 RX-1
@ -1186,6 +1202,21 @@ static const uint8_t usb__c_device__c_device__cshunt_pins[][2] = {
{usb_c_device_sidea_pins[12], usb_c_device_sideb_pins[1]}, // A12 GND, B1 GND
};
static const uint8_t usb__c_device__c_device__csignalshunt_pins[][2] = {
{usb_c_device_sidea_pins[1], usb_c_device_sideb_pins[1]}, // A1 GND, B1 GND
{usb_c_device_sidea_pins[2], usb_c_device_sideb_pins[2]}, // A2 TX+1, B2 TX+2
{usb_c_device_sidea_pins[3], usb_c_device_sideb_pins[3]}, // A3 TX-1, B3 TX-2
{usb_c_device_sidea_pins[4], usb_c_device_sideb_pins[4]}, // A4 VBUS, B4 VBUS
{usb_c_device_sidea_pins[5], usb_c_device_sideb_pins[5]}, // A5 CC1, B5 CC2
{usb_c_device_sidea_pins[6], usb_c_device_sideb_pins[6]}, // A6 D+1, B6 D+2
{usb_c_device_sidea_pins[7], usb_c_device_sideb_pins[7]}, // A7 D-1, B7 D-2
{usb_c_device_sidea_pins[8], usb_c_device_sideb_pins[8]}, // A8 SBU1, B8 SBU2
{usb_c_device_sidea_pins[9], usb_c_device_sideb_pins[9]}, // A9 VBUS, B9 VBUS
{usb_c_device_sidea_pins[10], usb_c_device_sideb_pins[10]}, // A10 RX-2, B10 RX-1
{usb_c_device_sidea_pins[11], usb_c_device_sideb_pins[11]}, // A11 RX+2, B11 RX+1
{usb_c_device_sidea_pins[12], usb_c_device_sideb_pins[12]}, // A12 GND, B12 GND
};
/** list of connectors for A-C cables (using A host connector and C host connector) */
static const struct usb_connector_t* usb_a_host_c_host_connectors[] = {
&usb_a_host_connector,
@ -4466,25 +4497,47 @@ const struct usb_cable_t usb_cables[] = {
.optional_pairs = NULL,
},
// C
[USB_CABLE_CSHUNT_HOST] = {
.name = "C shunt",
[USB_CABLE_CPINSHUNT_HOST] = {
.name = "C pins shunt",
.shortname = NULL,
.variant = "C host receptacle",
.connectors_nb = LENGTH(usb_c_host_connectors),
.connectors = usb_c_host_connectors,
.mandatory_pairs_nb = LENGTH(usb__c_host__c_host__cshunt_pins),
.mandatory_pairs = usb__c_host__c_host__cshunt_pins,
.mandatory_pairs_nb = LENGTH(usb__c_host__c_host__cpinshunt_pins),
.mandatory_pairs = usb__c_host__c_host__cpinshunt_pins,
.optional_pairs_nb = 0,
.optional_pairs = NULL,
},
[USB_CABLE_CSHUNT_DEVICE] = {
.name = "C shunt",
[USB_CABLE_CPINSHUNT_DEVICE] = {
.name = "C pins shunt",
.shortname = NULL,
.variant = "C device receptacle",
.connectors_nb = LENGTH(usb_c_device_connectors),
.connectors = usb_c_device_connectors,
.mandatory_pairs_nb = LENGTH(usb__c_device__c_device__cshunt_pins),
.mandatory_pairs = usb__c_device__c_device__cshunt_pins,
.mandatory_pairs_nb = LENGTH(usb__c_device__c_device__cpinshunt_pins),
.mandatory_pairs = usb__c_device__c_device__cpinshunt_pins,
.optional_pairs_nb = 0,
.optional_pairs = NULL,
},
[USB_CABLE_CSIGNALSHUNT_HOST] = {
.name = "C signal shunt",
.shortname = NULL,
.variant = "C host receptacle",
.connectors_nb = LENGTH(usb_c_host_connectors),
.connectors = usb_c_host_connectors,
.mandatory_pairs_nb = LENGTH(usb__c_host__c_host__csignalshunt_pins),
.mandatory_pairs = usb__c_host__c_host__csignalshunt_pins,
.optional_pairs_nb = 0,
.optional_pairs = NULL,
},
[USB_CABLE_CSIGNALSHUNT_DEVICE] = {
.name = "C signal shunt",
.shortname = NULL,
.variant = "C device receptacle",
.connectors_nb = LENGTH(usb_c_device_connectors),
.connectors = usb_c_device_connectors,
.mandatory_pairs_nb = LENGTH(usb__c_device__c_device__csignalshunt_pins),
.mandatory_pairs = usb__c_device__c_device__csignalshunt_pins,
.optional_pairs_nb = 0,
.optional_pairs = NULL,
},

View File

@ -141,8 +141,10 @@ enum usb_cable_e {
USB_CABLE_AUBBC_DEVICE,
USB_CABLE_AUB2_DEVICE,
USB_CABLE_AUB3_DEVICE,
USB_CABLE_CSHUNT_HOST,
USB_CABLE_CSHUNT_DEVICE,
USB_CABLE_CPINSHUNT_HOST,
USB_CABLE_CPINSHUNT_DEVICE,
USB_CABLE_CSIGNALSHUNT_HOST,
USB_CABLE_CSIGNALSHUNT_DEVICE,
USB_CABLE_AC0_A_HOST_CA_HOST,
USB_CABLE_AC0_A_HOST_CB_HOST,
USB_CABLE_AC0_A_HOST_CA_DEVICE,