usb_cables: add cmicrob2 cables

This commit is contained in:
King Kévin 2019-12-11 23:28:40 +01:00
parent a632c11c67
commit 6762462ec6
2 changed files with 220 additions and 3 deletions

View File

@ -2563,13 +2563,13 @@ static const uint8_t usb__c_device_sideb__b_device__cb3g2_pins[][2] = {
{usb_b_device_pins[5], usb_c_device_sideb_pins[12 + 10]}, // SSTX-, B10 SSRXn1
};
/** list of connectors for C-B cables (using C host connector) */
/** list of connectors for C-miniB cables (using C host connector) */
static const struct usb_connector_t* usb_c_host_minib_device_connectors[] = {
&usb_c_host_connector,
&usb_minib_device_connector,
};
/** list of connectors for C-B cables (using C device connector) */
/** list of connectors for C-miniB cables (using C device connector) */
static const struct usb_connector_t* usb_c_device_minib_device_connectors[] = {
&usb_c_device_connector,
&usb_minib_device_connector,
@ -2751,6 +2751,194 @@ static const uint8_t usb__c_device_sideb__minib_device__cminib2_pins[][2] = {
{usb_minib_device_pins[1], usb_c_device_sideb_pins[5]}, // VBUS - A5 CC1 (5.1kO)
};
/** list of connectors for C-miniB cables (using C host connector) */
static const struct usb_connector_t* usb_c_host_microb_device_connectors[] = {
&usb_c_host_connector,
&usb_microb_device_connector,
};
/** list of connectors for C-miniB cables (using C device connector) */
static const struct usb_connector_t* usb_c_device_microb_device_connectors[] = {
&usb_c_device_connector,
&usb_microb_device_connector,
};
/** USB type C to type micro-B USB 2.0 cable pin pairs
* @implements CµB2-3 from USB Type-C Cable and Connector Specification (https://www.usb.org/document-library/usb-type-cr-cable-and-connector-specification-revision-20-august-2019)
*/
static const uint8_t usb__c_host_sidea__microb_device__cmicrob2_pins[][2] = {
// mini-B internal connections
{usb_microb_device_pins[0], usb_microb_device_pins[5]}, // shield, GND
// C internal connections
{usb_c_host_sidea_pins[0], usb_c_host_sidea_pins[1]}, // shield, A1 GND
{usb_c_host_sidea_pins[0], usb_c_host_sidea_pins[12]}, // shield, A12 GND
{usb_c_host_sidea_pins[0], usb_c_host_sidea_pins[12 + 12]}, // shield, B12 GND
{usb_c_host_sidea_pins[0], usb_c_host_sidea_pins[12 + 1]}, // shield, B1 GND
{usb_c_host_sidea_pins[1], usb_c_host_sidea_pins[12]}, // A1 GND, A12 GND
{usb_c_host_sidea_pins[1], usb_c_host_sidea_pins[12 + 12]}, // A1 GND, B12 GND
{usb_c_host_sidea_pins[1], usb_c_host_sidea_pins[12 + 1]}, // A1 GND, B1 GND
{usb_c_host_sidea_pins[12], usb_c_host_sidea_pins[12 + 12]}, // A12 GND, B12 GND
{usb_c_host_sidea_pins[12], usb_c_host_sidea_pins[12 + 1]}, // A12 GND, B1 GND
{usb_c_host_sidea_pins[12 + 1], usb_c_host_sidea_pins[12 + 12]}, // B1 GND, B12 GND
{usb_c_host_sidea_pins[4], usb_c_host_sidea_pins[9]}, // A4 VBUS, A9 VBUS
{usb_c_host_sidea_pins[4], usb_c_host_sidea_pins[12 + 9]}, // A4 VBUS, B9 VBUS
{usb_c_host_sidea_pins[4], usb_c_host_sidea_pins[12 + 4]}, // A4 VBUS, B4 VBUS
{usb_c_host_sidea_pins[9], usb_c_host_sidea_pins[12 + 9]}, // A9 VBUS, B9 VBUS
{usb_c_host_sidea_pins[9], usb_c_host_sidea_pins[12 + 4]}, // A9 VBUS, B4 VBUS
{usb_c_host_sidea_pins[12 + 9], usb_c_host_sidea_pins[12 + 4]}, // B9 VBUS, B4 VBUS
{usb_c_host_sidea_pins[5], usb_c_host_sidea_pins[4]}, // CC1, A4 VBUS (5.1kO)
{usb_c_host_sidea_pins[5], usb_c_host_sidea_pins[9]}, // CC1, A9 VBUS (5.1kO)
{usb_c_host_sidea_pins[5], usb_c_host_sidea_pins[16]}, // CC1, B9 VBUS (5.1kO)
{usb_c_host_sidea_pins[5], usb_c_host_sidea_pins[21]}, // CC1, B4 VBUS (5.1kO)
// mini-B-C connections
{usb_microb_device_pins[1], usb_c_host_sidea_pins[4]}, // VBUS, A4 VBUS
{usb_microb_device_pins[1], usb_c_host_sidea_pins[9]}, // VBUS, A9 VBUS
{usb_microb_device_pins[1], usb_c_host_sidea_pins[12 + 9]}, // VBUS, B9 VBUS
{usb_microb_device_pins[1], usb_c_host_sidea_pins[12 + 4]}, // VBUS, B4 VBUS
{usb_microb_device_pins[0], usb_c_host_sidea_pins[0]}, // shield, shield
{usb_microb_device_pins[0], usb_c_host_sidea_pins[1]}, // shield, A1 GND
{usb_microb_device_pins[0], usb_c_host_sidea_pins[12]}, // shield, A12 GND
{usb_microb_device_pins[0], usb_c_host_sidea_pins[12 + 12]}, // shield, B12 GND
{usb_microb_device_pins[0], usb_c_host_sidea_pins[12 + 1]}, // shield, B1 GND
{usb_microb_device_pins[5], usb_c_host_sidea_pins[0]}, // GND, shield
{usb_microb_device_pins[5], usb_c_host_sidea_pins[1]}, // GND, A1 GND
{usb_microb_device_pins[5], usb_c_host_sidea_pins[12]}, // GND, A12 GND
{usb_microb_device_pins[5], usb_c_host_sidea_pins[12 + 12]}, // GND, B12 GND
{usb_microb_device_pins[5], usb_c_host_sidea_pins[12 + 1]}, // GND, B1 GND
{usb_microb_device_pins[2], usb_c_host_sidea_pins[7]}, // D-, A7 Dn1
{usb_microb_device_pins[3], usb_c_host_sidea_pins[6]}, // D+, A6 Dp1
{usb_microb_device_pins[1], usb_c_host_sidea_pins[5]}, // VBUS - A5 CC1 (5.1kO)
};
static const uint8_t usb__c_host_sideb__microb_device__cmicrob2_pins[][2] = {
// mini-B internal connections
{usb_microb_device_pins[0], usb_microb_device_pins[5]}, // shield, GND
// C internal connections
{usb_c_host_sideb_pins[0], usb_c_host_sideb_pins[1]}, // shield, A1 GND
{usb_c_host_sideb_pins[0], usb_c_host_sideb_pins[12]}, // shield, A12 GND
{usb_c_host_sideb_pins[0], usb_c_host_sideb_pins[12 + 12]}, // shield, B12 GND
{usb_c_host_sideb_pins[0], usb_c_host_sideb_pins[12 + 1]}, // shield, B1 GND
{usb_c_host_sideb_pins[1], usb_c_host_sideb_pins[12]}, // A1 GND, A12 GND
{usb_c_host_sideb_pins[1], usb_c_host_sideb_pins[12 + 12]}, // A1 GND, B12 GND
{usb_c_host_sideb_pins[1], usb_c_host_sideb_pins[12 + 1]}, // A1 GND, B1 GND
{usb_c_host_sideb_pins[12], usb_c_host_sideb_pins[12 + 12]}, // A12 GND, B12 GND
{usb_c_host_sideb_pins[12], usb_c_host_sideb_pins[12 + 1]}, // A12 GND, B1 GND
{usb_c_host_sideb_pins[12 + 1], usb_c_host_sideb_pins[12 + 12]}, // B1 GND, B12 GND
{usb_c_host_sideb_pins[4], usb_c_host_sideb_pins[9]}, // A4 VBUS, A9 VBUS
{usb_c_host_sideb_pins[4], usb_c_host_sideb_pins[12 + 9]}, // A4 VBUS, B9 VBUS
{usb_c_host_sideb_pins[4], usb_c_host_sideb_pins[12 + 4]}, // A4 VBUS, B4 VBUS
{usb_c_host_sideb_pins[9], usb_c_host_sideb_pins[12 + 9]}, // A9 VBUS, B9 VBUS
{usb_c_host_sideb_pins[9], usb_c_host_sideb_pins[12 + 4]}, // A9 VBUS, B4 VBUS
{usb_c_host_sideb_pins[12 + 9], usb_c_host_sideb_pins[12 + 4]}, // B9 VBUS, B4 VBUS
{usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[4]}, // CC1, A4 VBUS (5.1kO)
{usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[9]}, // CC1, A9 VBUS (5.1kO)
{usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[16]}, // CC1, B9 VBUS (5.1kO)
{usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[21]}, // CC1, B4 VBUS (5.1kO)
// mini-B-C connections
{usb_microb_device_pins[1], usb_c_host_sideb_pins[4]}, // VBUS, A4 VBUS
{usb_microb_device_pins[1], usb_c_host_sideb_pins[9]}, // VBUS, A9 VBUS
{usb_microb_device_pins[1], usb_c_host_sideb_pins[12 + 9]}, // VBUS, B9 VBUS
{usb_microb_device_pins[1], usb_c_host_sideb_pins[12 + 4]}, // VBUS, B4 VBUS
{usb_microb_device_pins[0], usb_c_host_sideb_pins[0]}, // shield, shield
{usb_microb_device_pins[0], usb_c_host_sideb_pins[1]}, // shield, A1 GND
{usb_microb_device_pins[0], usb_c_host_sideb_pins[12]}, // shield, A12 GND
{usb_microb_device_pins[0], usb_c_host_sideb_pins[12 + 12]}, // shield, B12 GND
{usb_microb_device_pins[0], usb_c_host_sideb_pins[12 + 1]}, // shield, B1 GND
{usb_microb_device_pins[5], usb_c_host_sideb_pins[0]}, // GND, shield
{usb_microb_device_pins[5], usb_c_host_sideb_pins[1]}, // GND, A1 GND
{usb_microb_device_pins[5], usb_c_host_sideb_pins[12]}, // GND, A12 GND
{usb_microb_device_pins[5], usb_c_host_sideb_pins[12 + 12]}, // GND, B12 GND
{usb_microb_device_pins[5], usb_c_host_sideb_pins[12 + 1]}, // GND, B1 GND
{usb_microb_device_pins[2], usb_c_host_sideb_pins[7]}, // D-, A7 Dn1
{usb_microb_device_pins[3], usb_c_host_sideb_pins[6]}, // D+, A6 Dp1
{usb_microb_device_pins[1], usb_c_host_sideb_pins[5]}, // VBUS - A5 CC1 (5.1kO)
};
static const uint8_t usb__c_device_sidea__microb_device__cmicrob2_pins[][2] = {
// mini-B internal connections
{usb_microb_device_pins[0], usb_microb_device_pins[5]}, // shield, GND
// C internal connections
{usb_c_device_sidea_pins[0], usb_c_device_sidea_pins[1]}, // shield, A1 GND
{usb_c_device_sidea_pins[0], usb_c_device_sidea_pins[12]}, // shield, A12 GND
{usb_c_device_sidea_pins[0], usb_c_device_sidea_pins[12 + 12]}, // shield, B12 GND
{usb_c_device_sidea_pins[0], usb_c_device_sidea_pins[12 + 1]}, // shield, B1 GND
{usb_c_device_sidea_pins[1], usb_c_device_sidea_pins[12]}, // A1 GND, A12 GND
{usb_c_device_sidea_pins[1], usb_c_device_sidea_pins[12 + 12]}, // A1 GND, B12 GND
{usb_c_device_sidea_pins[1], usb_c_device_sidea_pins[12 + 1]}, // A1 GND, B1 GND
{usb_c_device_sidea_pins[12], usb_c_device_sidea_pins[12 + 12]}, // A12 GND, B12 GND
{usb_c_device_sidea_pins[12], usb_c_device_sidea_pins[12 + 1]}, // A12 GND, B1 GND
{usb_c_device_sidea_pins[12 + 1], usb_c_device_sidea_pins[12 + 12]}, // B1 GND, B12 GND
{usb_c_device_sidea_pins[4], usb_c_device_sidea_pins[9]}, // A4 VBUS, A9 VBUS
{usb_c_device_sidea_pins[4], usb_c_device_sidea_pins[12 + 9]}, // A4 VBUS, B9 VBUS
{usb_c_device_sidea_pins[4], usb_c_device_sidea_pins[12 + 4]}, // A4 VBUS, B4 VBUS
{usb_c_device_sidea_pins[9], usb_c_device_sidea_pins[12 + 9]}, // A9 VBUS, B9 VBUS
{usb_c_device_sidea_pins[9], usb_c_device_sidea_pins[12 + 4]}, // A9 VBUS, B4 VBUS
{usb_c_device_sidea_pins[12 + 9], usb_c_device_sidea_pins[12 + 4]}, // B9 VBUS, B4 VBUS
{usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[4]}, // CC1, A4 VBUS (5.1kO)
{usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[9]}, // CC1, A9 VBUS (5.1kO)
{usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[16]}, // CC1, B9 VBUS (5.1kO)
{usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[21]}, // CC1, B4 VBUS (5.1kO)
// mini-B-C connections
{usb_microb_device_pins[1], usb_c_device_sidea_pins[4]}, // VBUS, A4 VBUS
{usb_microb_device_pins[1], usb_c_device_sidea_pins[9]}, // VBUS, A9 VBUS
{usb_microb_device_pins[1], usb_c_device_sidea_pins[12 + 9]}, // VBUS, B9 VBUS
{usb_microb_device_pins[1], usb_c_device_sidea_pins[12 + 4]}, // VBUS, B4 VBUS
{usb_microb_device_pins[0], usb_c_device_sidea_pins[0]}, // shield, shield
{usb_microb_device_pins[0], usb_c_device_sidea_pins[1]}, // shield, A1 GND
{usb_microb_device_pins[0], usb_c_device_sidea_pins[12]}, // shield, A12 GND
{usb_microb_device_pins[0], usb_c_device_sidea_pins[12 + 12]}, // shield, B12 GND
{usb_microb_device_pins[0], usb_c_device_sidea_pins[12 + 1]}, // shield, B1 GND
{usb_microb_device_pins[5], usb_c_device_sidea_pins[0]}, // GND, shield
{usb_microb_device_pins[5], usb_c_device_sidea_pins[1]}, // GND, A1 GND
{usb_microb_device_pins[5], usb_c_device_sidea_pins[12]}, // GND, A12 GND
{usb_microb_device_pins[5], usb_c_device_sidea_pins[12 + 12]}, // GND, B12 GND
{usb_microb_device_pins[5], usb_c_device_sidea_pins[12 + 1]}, // GND, B1 GND
{usb_microb_device_pins[2], usb_c_device_sidea_pins[7]}, // D-, A7 Dn1
{usb_microb_device_pins[3], usb_c_device_sidea_pins[6]}, // D+, A6 Dp1
{usb_microb_device_pins[1], usb_c_device_sidea_pins[5]}, // VBUS - A5 CC1 (5.1kO)
};
static const uint8_t usb__c_device_sideb__microb_device__cmicrob2_pins[][2] = {
// mini-B internal connections
{usb_microb_device_pins[0], usb_microb_device_pins[5]}, // shield, GND
// C internal connections
{usb_c_device_sideb_pins[0], usb_c_device_sideb_pins[1]}, // shield, A1 GND
{usb_c_device_sideb_pins[0], usb_c_device_sideb_pins[12]}, // shield, A12 GND
{usb_c_device_sideb_pins[0], usb_c_device_sideb_pins[12 + 12]}, // shield, B12 GND
{usb_c_device_sideb_pins[0], usb_c_device_sideb_pins[12 + 1]}, // shield, B1 GND
{usb_c_device_sideb_pins[1], usb_c_device_sideb_pins[12]}, // A1 GND, A12 GND
{usb_c_device_sideb_pins[1], usb_c_device_sideb_pins[12 + 12]}, // A1 GND, B12 GND
{usb_c_device_sideb_pins[1], usb_c_device_sideb_pins[12 + 1]}, // A1 GND, B1 GND
{usb_c_device_sideb_pins[12], usb_c_device_sideb_pins[12 + 12]}, // A12 GND, B12 GND
{usb_c_device_sideb_pins[12], usb_c_device_sideb_pins[12 + 1]}, // A12 GND, B1 GND
{usb_c_device_sideb_pins[12 + 1], usb_c_device_sideb_pins[12 + 12]}, // B1 GND, B12 GND
{usb_c_device_sideb_pins[4], usb_c_device_sideb_pins[9]}, // A4 VBUS, A9 VBUS
{usb_c_device_sideb_pins[4], usb_c_device_sideb_pins[12 + 9]}, // A4 VBUS, B9 VBUS
{usb_c_device_sideb_pins[4], usb_c_device_sideb_pins[12 + 4]}, // A4 VBUS, B4 VBUS
{usb_c_device_sideb_pins[9], usb_c_device_sideb_pins[12 + 9]}, // A9 VBUS, B9 VBUS
{usb_c_device_sideb_pins[9], usb_c_device_sideb_pins[12 + 4]}, // A9 VBUS, B4 VBUS
{usb_c_device_sideb_pins[12 + 9], usb_c_device_sideb_pins[12 + 4]}, // B9 VBUS, B4 VBUS
{usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[4]}, // CC1, A4 VBUS (5.1kO)
{usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[9]}, // CC1, A9 VBUS (5.1kO)
{usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[16]}, // CC1, B9 VBUS (5.1kO)
{usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[21]}, // CC1, B4 VBUS (5.1kO)
// mini-B-C connections
{usb_microb_device_pins[1], usb_c_device_sideb_pins[4]}, // VBUS, A4 VBUS
{usb_microb_device_pins[1], usb_c_device_sideb_pins[9]}, // VBUS, A9 VBUS
{usb_microb_device_pins[1], usb_c_device_sideb_pins[12 + 9]}, // VBUS, B9 VBUS
{usb_microb_device_pins[1], usb_c_device_sideb_pins[12 + 4]}, // VBUS, B4 VBUS
{usb_microb_device_pins[0], usb_c_device_sideb_pins[0]}, // shield, shield
{usb_microb_device_pins[0], usb_c_device_sideb_pins[1]}, // shield, A1 GND
{usb_microb_device_pins[0], usb_c_device_sideb_pins[12]}, // shield, A12 GND
{usb_microb_device_pins[0], usb_c_device_sideb_pins[12 + 12]}, // shield, B12 GND
{usb_microb_device_pins[0], usb_c_device_sideb_pins[12 + 1]}, // shield, B1 GND
{usb_microb_device_pins[5], usb_c_device_sideb_pins[0]}, // GND, shield
{usb_microb_device_pins[5], usb_c_device_sideb_pins[1]}, // GND, A1 GND
{usb_microb_device_pins[5], usb_c_device_sideb_pins[12]}, // GND, A12 GND
{usb_microb_device_pins[5], usb_c_device_sideb_pins[12 + 12]}, // GND, B12 GND
{usb_microb_device_pins[5], usb_c_device_sideb_pins[12 + 1]}, // GND, B1 GND
{usb_microb_device_pins[2], usb_c_device_sideb_pins[7]}, // D-, A7 Dn1
{usb_microb_device_pins[3], usb_c_device_sideb_pins[6]}, // D+, A6 Dp1
{usb_microb_device_pins[1], usb_c_device_sideb_pins[5]}, // VBUS - A5 CC1 (5.1kO)
};
const struct usb_cable_t usb_cables[] = {
// A-A
{
@ -3165,6 +3353,35 @@ const struct usb_cable_t usb_cables[] = {
.pin_pairs_nb = LENGTH(usb__c_device_sideb__minib_device__cminib2_pins),
.pin_pairs = usb__c_device_sideb__minib_device__cminib2_pins,
},
// C - micro-B USB 2.0
{
.name = "C-microB USB 2.0",
.connectors_nb = LENGTH(usb_c_host_microb_device_connectors),
.connectors = usb_c_host_microb_device_connectors,
.pin_pairs_nb = LENGTH(usb__c_host_sidea__microb_device__cmicrob2_pins),
.pin_pairs = usb__c_host_sidea__microb_device__cmicrob2_pins,
},
{
.name = "C-microB USB 2.0",
.connectors_nb = LENGTH(usb_c_host_microb_device_connectors),
.connectors = usb_c_host_microb_device_connectors,
.pin_pairs_nb = LENGTH(usb__c_host_sideb__microb_device__cmicrob2_pins),
.pin_pairs = usb__c_host_sideb__microb_device__cmicrob2_pins,
},
{
.name = "C-microB USB 2.0",
.connectors_nb = LENGTH(usb_c_device_microb_device_connectors),
.connectors = usb_c_device_microb_device_connectors,
.pin_pairs_nb = LENGTH(usb__c_device_sidea__microb_device__cmicrob2_pins),
.pin_pairs = usb__c_device_sidea__microb_device__cmicrob2_pins,
},
{
.name = "C-microB USB 2.0",
.connectors_nb = LENGTH(usb_c_device_microb_device_connectors),
.connectors = usb_c_device_microb_device_connectors,
.pin_pairs_nb = LENGTH(usb__c_device_sideb__microb_device__cmicrob2_pins),
.pin_pairs = usb__c_device_sideb__microb_device__cmicrob2_pins,
},
};
void usb_cables_pins_float(const struct usb_connector_t* connector)

View File

@ -69,7 +69,7 @@ extern const struct usb_pin_t usb_pins[105];
/** USB connectors definitions */
extern const struct usb_connector_t* usb_connectors[8];
/** USB cables definitions */
extern const struct usb_cable_t usb_cables[57];
extern const struct usb_cable_t usb_cables[61];
/** set every pin of connector to input floating
* @param[in] connector connector on which to set the pins floating