usb_cables: correct and add C cables

This commit is contained in:
King Kévin 2019-12-09 23:03:22 +01:00
parent 20e02c91ad
commit 84db14e71c
2 changed files with 213 additions and 138 deletions

View File

@ -178,65 +178,11 @@ static const struct usb_pin_t usb_host_c_pins[] = {
.type = USB_PIN_TYPE_GROUND,
},
{
.name = "GND-B12",
.port = GPIOG,
.pin = GPIO12,
.name = "GND-B1",
.port = GPIOD,
.pin = GPIO3,
.type = USB_PIN_TYPE_GROUND,
},
{
.name = "SSRXp1",
.port = GPIOG,
.pin = GPIO14,
.type = USB_PIN_TYPE_DIFFERENTIAL,
},
{
.name = "SSRXn1",
.port = GPIOG,
.pin = GPIO10,
.type = USB_PIN_TYPE_DIFFERENTIAL,
},
{
.name = "VBUS-B9",
.port = GPIOG,
.pin = GPIO9,
.type = USB_PIN_TYPE_POWER,
},
{
.name = "SBU2",
.port = GPIOG,
.pin = GPIO15,
.type = USB_PIN_TYPE_OTHER,
},
{
.name = "Dn2",
.port = GPIOD,
.pin = GPIO7,
.type = USB_PIN_TYPE_DIFFERENTIAL,
},
{
.name = "Dp2",
.port = GPIOD,
.pin = GPIO6,
.type = USB_PIN_TYPE_DIFFERENTIAL,
},
{
.name = "CC2",
.port = GPIOD,
.pin = GPIO1,
.type = USB_PIN_TYPE_IDENTIFICATION,
},
{
.name = "VBUS-B4",
.port = GPIOD,
.pin = GPIO5,
.type = USB_PIN_TYPE_POWER,
},
{
.name = "SSTXn2",
.port = GPIOD,
.pin = GPIO4,
.type = USB_PIN_TYPE_DIFFERENTIAL,
},
{
.name = "SSTXp2",
.port = GPIOD,
@ -244,9 +190,63 @@ static const struct usb_pin_t usb_host_c_pins[] = {
.type = USB_PIN_TYPE_DIFFERENTIAL,
},
{
.name = "GND-B1",
.name = "SSTXn2",
.port = GPIOD,
.pin = GPIO3,
.pin = GPIO4,
.type = USB_PIN_TYPE_DIFFERENTIAL,
},
{
.name = "VBUS-B4",
.port = GPIOD,
.pin = GPIO5,
.type = USB_PIN_TYPE_POWER,
},
{
.name = "CC2",
.port = GPIOD,
.pin = GPIO1,
.type = USB_PIN_TYPE_IDENTIFICATION,
},
{
.name = "Dp2",
.port = GPIOD,
.pin = GPIO6,
.type = USB_PIN_TYPE_DIFFERENTIAL,
},
{
.name = "Dn2",
.port = GPIOD,
.pin = GPIO7,
.type = USB_PIN_TYPE_DIFFERENTIAL,
},
{
.name = "SBU2",
.port = GPIOG,
.pin = GPIO15,
.type = USB_PIN_TYPE_OTHER,
},
{
.name = "VBUS-B9",
.port = GPIOG,
.pin = GPIO9,
.type = USB_PIN_TYPE_POWER,
},
{
.name = "SSRXn1",
.port = GPIOG,
.pin = GPIO10,
.type = USB_PIN_TYPE_DIFFERENTIAL,
},
{
.name = "SSRXp1",
.port = GPIOG,
.pin = GPIO14,
.type = USB_PIN_TYPE_DIFFERENTIAL,
},
{
.name = "GND-B12",
.port = GPIOG,
.pin = GPIO12,
.type = USB_PIN_TYPE_GROUND,
},
};
@ -574,64 +574,10 @@ static const struct usb_pin_t usb_device_c_pins[] = {
.type = USB_PIN_TYPE_GROUND,
},
{
.name = "GND-B12",
.port = GPIOE,
.pin = GPIO10,
.type = USB_PIN_TYPE_GROUND,
},
{
.name = "SSRXp1",
.port = GPIOE,
.pin = GPIO12,
.type = USB_PIN_TYPE_DIFFERENTIAL,
},
{
.name = "SSRXn1",
.port = GPIOE,
.pin = GPIO9,
.type = USB_PIN_TYPE_DIFFERENTIAL,
},
{
.name = "VBUS-B9",
.port = GPIOE,
.pin = GPIO8,
.type = USB_PIN_TYPE_POWER,
},
{
.name = "SBU2",
.port = GPIOE,
.pin = GPIO13,
.type = USB_PIN_TYPE_OTHER,
},
{
.name = "Dn2",
.port = GPIOE,
.pin = GPIO7,
.type = USB_PIN_TYPE_DIFFERENTIAL,
},
{
.name = "Dp2",
.port = GPIOG,
.pin = GPIO1,
.type = USB_PIN_TYPE_DIFFERENTIAL,
},
{
.name = "CC2",
.port = GPIOE,
.pin = GPIO14,
.type = USB_PIN_TYPE_IDENTIFICATION,
},
{
.name = "VBUS-B4",
.port = GPIOG,
.pin = GPIO0,
.type = USB_PIN_TYPE_POWER,
},
{
.name = "SSTXn2",
.name = "GND-B1",
.port = GPIOF,
.pin = GPIO15,
.type = USB_PIN_TYPE_DIFFERENTIAL,
.pin = GPIO14,
.type = USB_PIN_TYPE_GROUND,
},
{
.name = "SSTXp2",
@ -640,9 +586,63 @@ static const struct usb_pin_t usb_device_c_pins[] = {
.type = USB_PIN_TYPE_DIFFERENTIAL,
},
{
.name = "GND-B1",
.name = "SSTXn2",
.port = GPIOF,
.pin = GPIO15,
.type = USB_PIN_TYPE_DIFFERENTIAL,
},
{
.name = "VBUS-B4",
.port = GPIOG,
.pin = GPIO0,
.type = USB_PIN_TYPE_POWER,
},
{
.name = "CC2",
.port = GPIOE,
.pin = GPIO14,
.type = USB_PIN_TYPE_IDENTIFICATION,
},
{
.name = "Dp2",
.port = GPIOG,
.pin = GPIO1,
.type = USB_PIN_TYPE_DIFFERENTIAL,
},
{
.name = "Dn2",
.port = GPIOE,
.pin = GPIO7,
.type = USB_PIN_TYPE_DIFFERENTIAL,
},
{
.name = "SBU2",
.port = GPIOE,
.pin = GPIO13,
.type = USB_PIN_TYPE_OTHER,
},
{
.name = "VBUS-B9",
.port = GPIOE,
.pin = GPIO8,
.type = USB_PIN_TYPE_POWER,
},
{
.name = "SSRXn1",
.port = GPIOE,
.pin = GPIO9,
.type = USB_PIN_TYPE_DIFFERENTIAL,
},
{
.name = "SSRXp1",
.port = GPIOE,
.pin = GPIO12,
.type = USB_PIN_TYPE_DIFFERENTIAL,
},
{
.name = "GND-B12",
.port = GPIOE,
.pin = GPIO10,
.type = USB_PIN_TYPE_GROUND,
},
};
@ -1095,18 +1095,18 @@ static const struct usb_connector_t* usb_c_device_connectors[] = {
};
static const struct usb_pin_t* usb_c_device_shunt_pins[][2] = {
{&usb_device_c_pins[1], &usb_device_c_pins[13]}, // A1 GND, B12 GND
{&usb_device_c_pins[2], &usb_device_c_pins[14]}, // A2 SSTXp1, B11 SSRXp1
{&usb_device_c_pins[3], &usb_device_c_pins[15]}, // A3 SSTXn1, B10 SSRXn1
{&usb_device_c_pins[4], &usb_device_c_pins[16]}, // A4 VBUS, B9 VBUS
{&usb_device_c_pins[5], &usb_device_c_pins[17]}, // A5 CC1, B8 SBU2
{&usb_device_c_pins[6], &usb_device_c_pins[18]}, // A6 Dp1, B7 Dn2
{&usb_device_c_pins[7], &usb_device_c_pins[19]}, // A7 Dn1, B6 Dp2
{&usb_device_c_pins[8], &usb_device_c_pins[20]}, // A8 SBU1, B5 CC2
{&usb_device_c_pins[9], &usb_device_c_pins[21]}, // A9 VBUS, B4 VBUS
{&usb_device_c_pins[10], &usb_device_c_pins[22]}, // A10 SSRXn2, B3 SSTXn2
{&usb_device_c_pins[11], &usb_device_c_pins[23]}, // A11 SSRXp2, B2 SSTXp2
{&usb_device_c_pins[12], &usb_device_c_pins[24]}, // A12 GND, B1 GND
{&usb_device_c_pins[1], &usb_device_c_pins[12 + 12]}, // A1 GND, B12 GND
{&usb_device_c_pins[2], &usb_device_c_pins[12 + 11]}, // A2 SSTXp1, B11 SSRXp1
{&usb_device_c_pins[3], &usb_device_c_pins[12 + 10]}, // A3 SSTXn1, B10 SSRXn1
{&usb_device_c_pins[4], &usb_device_c_pins[12 + 9]}, // A4 VBUS, B9 VBUS
{&usb_device_c_pins[5], &usb_device_c_pins[12 + 8]}, // A5 CC1, B8 SBU2
{&usb_device_c_pins[6], &usb_device_c_pins[12 + 7]}, // A6 Dp1, B7 Dn2
{&usb_device_c_pins[7], &usb_device_c_pins[12 + 6]}, // A7 Dn1, B6 Dp2
{&usb_device_c_pins[8], &usb_device_c_pins[12 + 5]}, // A8 SBU1, B5 CC2
{&usb_device_c_pins[9], &usb_device_c_pins[12 + 4]}, // A9 VBUS, B4 VBUS
{&usb_device_c_pins[10], &usb_device_c_pins[12 + 3]}, // A10 SSRXn2, B3 SSTXn2
{&usb_device_c_pins[11], &usb_device_c_pins[12 + 2]}, // A11 SSRXp2, B2 SSTXp2
{&usb_device_c_pins[12], &usb_device_c_pins[12 + 1]}, // A12 GND, B1 GND
};
static const struct usb_connector_t* usb_a_host_c_host_connectors[] = {
@ -1115,25 +1115,93 @@ static const struct usb_connector_t* usb_a_host_c_host_connectors[] = {
};
static const struct usb_pin_t* usb_a_host_c_host_ac23_sidea_pins[][2] = {
{&usb_host_a_pins[1], &usb_host_c_pins[4]}, // VBUS - A4 VBUS
{&usb_host_a_pins[1], &usb_host_c_pins[9]}, // VBUS - A9 VBUS
{&usb_host_a_pins[1], &usb_host_c_pins[12 + 4]}, // VBUS - B9 VBUS
{&usb_host_a_pins[1], &usb_host_c_pins[12 + 9]}, // VBUS - B4 VBUS
// A internal connections
{&usb_host_a_pins[0], &usb_host_a_pins[4]}, // shield, GND
// C internal connections
{&usb_host_c_pins[0], &usb_host_c_pins[1]}, // shield, A1 GND
{&usb_host_c_pins[0], &usb_host_c_pins[12]}, // shield, A12 GND
{&usb_host_c_pins[0], &usb_host_c_pins[12 + 12]}, // shield, B12 GND
{&usb_host_c_pins[0], &usb_host_c_pins[12 + 1]}, // shield, B1 GND
{&usb_host_c_pins[1], &usb_host_c_pins[12]}, // A1 GND, A12 GND
{&usb_host_c_pins[1], &usb_host_c_pins[12 + 12]}, // A1 GND, B12 GND
{&usb_host_c_pins[1], &usb_host_c_pins[12 + 1]}, // A1 GND, B1 GND
{&usb_host_c_pins[12], &usb_host_c_pins[12 + 12]}, // A12 GND, B12 GND
{&usb_host_c_pins[12], &usb_host_c_pins[12 + 1]}, // A12 GND, B1 GND
{&usb_host_c_pins[12 + 1], &usb_host_c_pins[12 + 12]}, // B1 GND, B12 GND
{&usb_host_c_pins[4], &usb_host_c_pins[9]}, // A4 VBUS, A9 VBUS
{&usb_host_c_pins[4], &usb_host_c_pins[12 + 9]}, // A4 VBUS, B9 VBUS
{&usb_host_c_pins[4], &usb_host_c_pins[12 + 4]}, // A4 VBUS, B4 VBUS
{&usb_host_c_pins[9], &usb_host_c_pins[12 + 9]}, // A9 VBUS, B9 VBUS
{&usb_host_c_pins[9], &usb_host_c_pins[12 + 4]}, // A9 VBUS, B4 VBUS
{&usb_host_c_pins[12 + 9], &usb_host_c_pins[12 + 4]}, // B9 VBUS, B4 VBUS
{&usb_host_c_pins[5], &usb_host_c_pins[4]}, // CC1, A4 VBUS (56kO)
{&usb_host_c_pins[5], &usb_host_c_pins[9]}, // CC1, A9 VBUS (56kO)
{&usb_host_c_pins[5], &usb_host_c_pins[16]}, // CC1, B9 VBUS (56kO)
{&usb_host_c_pins[5], &usb_host_c_pins[21]}, // CC1, B4 VBUS (56kO)
// A-C connections
{&usb_host_a_pins[1], &usb_host_c_pins[4]}, // VBUS, A4 VBUS
{&usb_host_a_pins[1], &usb_host_c_pins[9]}, // VBUS, A9 VBUS
{&usb_host_a_pins[1], &usb_host_c_pins[12 + 9]}, // VBUS, B9 VBUS
{&usb_host_a_pins[1], &usb_host_c_pins[12 + 4]}, // VBUS, B4 VBUS
{&usb_host_a_pins[0], &usb_host_c_pins[0]}, // shield, shield
{&usb_host_a_pins[0], &usb_host_c_pins[1]}, // shield, A1 GND
{&usb_host_a_pins[0], &usb_host_c_pins[12]}, // shield, A12 GND
{&usb_host_a_pins[0], &usb_host_c_pins[13]}, // shield, B12 GND
{&usb_host_a_pins[0], &usb_host_c_pins[24]}, // shield, B1 GND
{&usb_host_a_pins[0], &usb_host_c_pins[12 + 12]}, // shield, B12 GND
{&usb_host_a_pins[0], &usb_host_c_pins[12 + 1]}, // shield, B1 GND
{&usb_host_a_pins[4], &usb_host_c_pins[0]}, // GND, shield
{&usb_host_a_pins[4], &usb_host_c_pins[1]}, // GND, A1 GND
{&usb_host_a_pins[4], &usb_host_c_pins[12]}, // GND, A12 GND
{&usb_host_a_pins[4], &usb_host_c_pins[13]}, // GND, B12 GND
{&usb_host_a_pins[4], &usb_host_c_pins[24]}, // GND, B1 GND
{&usb_host_a_pins[4], &usb_host_c_pins[12 + 12]}, // GND, B12 GND
{&usb_host_a_pins[4], &usb_host_c_pins[12 + 1]}, // GND, B1 GND
{&usb_host_a_pins[2], &usb_host_c_pins[7]}, // D-, A7 Dn1
{&usb_host_a_pins[3], &usb_host_c_pins[6]}, // D+, A6 Dp1
{&usb_host_a_pins[1], &usb_host_c_pins[5]}, // VBUS - A5 CC1 (56kO)
};
static const struct usb_pin_t* usb_a_host_c_host_ac23_sideb_pins[][2] = {
// A internal connections
{&usb_host_a_pins[0], &usb_host_a_pins[4]}, // shield, GND
// C internal connections
{&usb_host_c_pins[0], &usb_host_c_pins[1]}, // shield, A1 GND
{&usb_host_c_pins[0], &usb_host_c_pins[12]}, // shield, A12 GND
{&usb_host_c_pins[0], &usb_host_c_pins[12 + 12]}, // shield, B12 GND
{&usb_host_c_pins[0], &usb_host_c_pins[12 + 1]}, // shield, B1 GND
{&usb_host_c_pins[1], &usb_host_c_pins[12]}, // A1 GND, A12 GND
{&usb_host_c_pins[1], &usb_host_c_pins[12 + 12]}, // A1 GND, B12 GND
{&usb_host_c_pins[1], &usb_host_c_pins[12 + 1]}, // A1 GND, B1 GND
{&usb_host_c_pins[12], &usb_host_c_pins[12 + 12]}, // A12 GND, B12 GND
{&usb_host_c_pins[12], &usb_host_c_pins[12 + 1]}, // A12 GND, B1 GND
{&usb_host_c_pins[12 + 1], &usb_host_c_pins[12 + 12]}, // B1 GND, B12 GND
{&usb_host_c_pins[4], &usb_host_c_pins[9]}, // A4 VBUS, A9 VBUS
{&usb_host_c_pins[4], &usb_host_c_pins[12 + 9]}, // A4 VBUS, B9 VBUS
{&usb_host_c_pins[4], &usb_host_c_pins[12 + 4]}, // A4 VBUS, B4 VBUS
{&usb_host_c_pins[9], &usb_host_c_pins[12 + 9]}, // A9 VBUS, B9 VBUS
{&usb_host_c_pins[9], &usb_host_c_pins[12 + 4]}, // A9 VBUS, B4 VBUS
{&usb_host_c_pins[12 + 9], &usb_host_c_pins[12 + 4]}, // B9 VBUS, B4 VBUS
{&usb_host_c_pins[12 + 5], &usb_host_c_pins[4]}, // CC2, A4 VBUS (56kO)
{&usb_host_c_pins[12 + 5], &usb_host_c_pins[9]}, // CC2, A9 VBUS (56kO)
{&usb_host_c_pins[12 + 5], &usb_host_c_pins[16]}, // CC2, B9 VBUS (56kO)
{&usb_host_c_pins[12 + 5], &usb_host_c_pins[21]}, // CC2, B4 VBUS (56kO)
// A-C connections
{&usb_host_a_pins[1], &usb_host_c_pins[4]}, // VBUS, A4 VBUS
{&usb_host_a_pins[1], &usb_host_c_pins[9]}, // VBUS, A9 VBUS
{&usb_host_a_pins[1], &usb_host_c_pins[12 + 9]}, // VBUS, B9 VBUS
{&usb_host_a_pins[1], &usb_host_c_pins[12 + 4]}, // VBUS, B4 VBUS
{&usb_host_a_pins[0], &usb_host_c_pins[0]}, // shield, shield
{&usb_host_a_pins[0], &usb_host_c_pins[1]}, // shield, A1 GND
{&usb_host_a_pins[0], &usb_host_c_pins[12]}, // shield, A12 GND
{&usb_host_a_pins[0], &usb_host_c_pins[12 + 12]}, // shield, B12 GND
{&usb_host_a_pins[0], &usb_host_c_pins[12 + 1]}, // shield, B1 GND
{&usb_host_a_pins[4], &usb_host_c_pins[0]}, // GND, shield
{&usb_host_a_pins[4], &usb_host_c_pins[1]}, // GND, A1 GND
{&usb_host_a_pins[4], &usb_host_c_pins[12]}, // GND, A12 GND
{&usb_host_a_pins[4], &usb_host_c_pins[12 + 12]}, // GND, B12 GND
{&usb_host_a_pins[4], &usb_host_c_pins[12 + 1]}, // GND, B1 GND
{&usb_host_a_pins[2], &usb_host_c_pins[12 + 7]}, // D-, B7 Dn2
{&usb_host_a_pins[3], &usb_host_c_pins[12 + 6]}, // D+, B6 Dp2
{&usb_host_a_pins[1], &usb_host_c_pins[12 + 5]}, // VBUS - B5 CC2 (56kO)
};
const struct usb_cable_t usb_cables[] = {
{
.name = "A-A power only",
@ -1373,6 +1441,13 @@ const struct usb_cable_t usb_cables[] = {
.pin_pairs_nb = LENGTH(usb_a_host_c_host_ac23_sidea_pins),
.pin_pairs = usb_a_host_c_host_ac23_sidea_pins,
},
{
.name = "A-C 2.0",
.connectors_nb = LENGTH(usb_a_host_c_host_connectors),
.connectors = usb_a_host_c_host_connectors,
.pin_pairs_nb = LENGTH(usb_a_host_c_host_ac23_sideb_pins),
.pin_pairs = usb_a_host_c_host_ac23_sideb_pins,
},
};
void usb_cables_pins_float(const struct usb_connector_t* connector)

View File

@ -67,7 +67,7 @@ struct usb_cable_t {
/** USB connectors definitions */
extern const struct usb_connector_t* usb_connectors[8];
/** USB cables definitions */
extern const struct usb_cable_t usb_cables[34];
extern const struct usb_cable_t usb_cables[35];
/** set every pin of connector to input floating
* @param[in] connector connector on which to set the pins floating