Fill Type-C VBUS and CC holes from CabCon R2.5 and R2.0 (2.76.0).

R2.5 keeps Rp/Rd/Ra, charger 4.75/4.0 V, zOPEN, tCCDebounce, tVBUSON.
R2.0 August 2019 Table 4-32 fills Source CC shall-detect only. vSafe5V stays UNKNOWN.
This commit is contained in:
2026-09-22 17:55:47 +02:00
parent c4cd046ea9
commit 421f659054
5 changed files with 547 additions and 72 deletions
@@ -564,6 +564,7 @@ DOC_USBC_FTS = (
REV_USBC_FTS = "Revision 0.91, March 3, 2024" REV_USBC_FTS = "Revision 0.91, March 3, 2024"
DOC_USBC_CABCON = "USB Type-C Cable and Connector Specification" DOC_USBC_CABCON = "USB Type-C Cable and Connector Specification"
REV_USBC_CABCON = "Release 2.5, March 2026" REV_USBC_CABCON = "Release 2.5, March 2026"
REV_USBC_CABCON_R20 = "Release 2.0, August 2019"
ORG_USB30PG = "USB 3.0 Promoter Group" ORG_USB30PG = "USB 3.0 Promoter Group"
DOC_DVI_10 = "Digital Visual Interface (DVI)" DOC_DVI_10 = "Digital Visual Interface (DVI)"
REV_DVI_10 = "Revision 1.0, 02 April 1999" REV_DVI_10 = "Revision 1.0, 02 April 1999"
@@ -581,7 +582,8 @@ DOC_USB_LSFS = (
) )
DOC_USB_PD_VSAFE = ( DOC_USB_PD_VSAFE = (
"USB Power Delivery specification vSafe5V (not on file; Type-C CabCon R2.5 names vSafe5V " "USB Power Delivery specification vSafe5V (not on file; Type-C CabCon R2.5 names vSafe5V "
"without restating the volt range)" "and tVBUSON as the minimum vSafe5V threshold without restating the volt range. "
"Type-C Current charger 4.755.5 V is not vSafe5V)"
) )
DOC_IEEE_8023 = "IEEE 802.3 (clause for this variant; not on file)" DOC_IEEE_8023 = "IEEE 802.3 (clause for this variant; not on file)"
DOC_IEEE_2012 = "IEEE Std 802.3-2012 IEEE Standard for Ethernet" DOC_IEEE_2012 = "IEEE Std 802.3-2012 IEEE Standard for Ethernet"
@@ -989,16 +991,92 @@ def build_m0_catalog() -> dict[str, Any]:
conditions=["powered cable VCONN", "Ra minimum 800 Ω", "maximum 1.2 kΩ"], conditions=["powered cable VCONN", "Ra minimum 800 Ω", "maximum 1.2 kΩ"],
)) ))
continue continue
if p == "voltage":
out.append(_num(
pid, p, 4.75, "V",
document=DOC_USBC_CABCON, organization=ORG_USB30PG,
revision=REV_USBC_CABCON, section="4.8.1.2",
table="Figure 4-39", page="233",
source_type="CABLE",
conditions=[
"USB Type-C Current charger (non-PD)",
"no-load output minimum 4.75 V (maximum 5.5 V)",
"measured at charger captive-cable plug / charger output",
"not USB PD vSafe5V",
"not a PCB trace voltage",
],
))
continue
if p == "vbus_requirements":
out.append(_num(
pid, p, 4.0, "V",
document=DOC_USBC_CABCON, organization=ORG_USB30PG,
revision=REV_USBC_CABCON, section="4.8.1.2",
table="Figure 4-39", page="233",
source_type="CABLE",
conditions=[
"USB Type-C Current charger (non-PD)",
"at 3 A: 4.05.5 V",
"measured at charger captive-cable plug / charger output",
"not USB PD vSafe5V",
"not a PCB trace voltage",
],
))
continue
if p == "electrical_thresholds":
out.append(_num(
pid, p, 1.50, "V",
document=DOC_USBC_CABCON, organization=ORG_USB30PG,
revision=REV_USBC_CABCON_R20, section="4.11.3",
table="Table 4-32", page="240",
source_type="PCB",
conditions=[
"Source shall-detect Sink (vRd), Default USB Type-C Current",
"vRd 0.251.50 V; detect threshold 1.60 V",
"R2.5 §4.11.3.2 tables are variance examples, not this shall-detect table",
],
))
continue
if p == "timing":
out.append(_num(
pid, p, 100.0, "ms",
document=DOC_USBC_CABCON, organization=ORG_USB30PG,
revision=REV_USBC_CABCON, section="4.11.2",
table="Table 4-34", page="250",
source_type="PCB",
conditions=[
"tCCDebounce minimum (maximum 200 ms)",
"time a port shall wait before it can determine it is attached",
],
))
continue
if p == "termination":
out.append(_num(
pid, p, 126000.0, "ohm",
document=DOC_USBC_CABCON, organization=ORG_USB30PG,
revision=REV_USBC_CABCON, section="4.11.1",
table="Table 4-30", page="246",
source_type="CONNECTOR",
conditions=[
"zOPEN minimum impedance to GND",
"Disabled / ErrorRecovery / unpowered Source",
"not Rp / Rd / Ra",
],
))
continue
doc = DOC_USB_CABLE doc = DOC_USB_CABLE
if p == "usb2_channel_requirements": if p == "usb2_channel_requirements":
doc = DOC_USB_ELEC doc = DOC_USB_ELEC
if p in {"vbus_requirements", "voltage"}:
doc = DOC_USB_PD_VSAFE
if p == "current_advertisement": if p == "current_advertisement":
doc = ( doc = (
"USB Type-C Cable and Connector Specification Release 2.5 Table 4-27 " "USB Type-C Cable and Connector Specification Release 2.5 Table 4-27 "
"(Default USB Power / 1.5 A @ 5 V / 3.0 A @ 5 V — not a single ampere)" "(Default USB Power / 1.5 A @ 5 V / 3.0 A @ 5 V — not a single ampere)"
) )
if p == "cc":
doc = (
"USB Type-C Cable and Connector Specification Release 2.0 Table 4-32 "
"(Source CC shall-detect packed as electrical_thresholds; CC is not a single ohm)"
)
out.append(_c(pid, p, "UNKNOWN", needed_document=doc)) out.append(_c(pid, p, "UNKNOWN", needed_document=doc))
out.append(_num( out.append(_num(
pid, "rp_1a5", 22000.0, "ohm", pid, "rp_1a5", 22000.0, "ohm",
@@ -1028,6 +1106,52 @@ def build_m0_catalog() -> dict[str, Any]:
mandatory="OPTIONAL", source_type="CABLE", mandatory="OPTIONAL", source_type="CABLE",
conditions=["cable IR drop for VBUS; not a receptacle PCB ohm"], conditions=["cable IR drop for VBUS; not a receptacle PCB ohm"],
)) ))
out.append(_num(
pid, "vopen_source_default", 1.65, "V",
document=DOC_USBC_CABCON, organization=ORG_USB30PG,
revision=REV_USBC_CABCON_R20, section="4.11.3",
table="Table 4-32", page="240",
source_type="PCB",
conditions=[
"Source CC no-connect (vOPEN) Default USB advertisement",
"R2.5 does not restate this shall-detect table",
],
))
out.append(_num(
pid, "vra_source_default_max", 0.15, "V",
document=DOC_USBC_CABCON, organization=ORG_USB30PG,
revision=REV_USBC_CABCON_R20, section="4.11.3",
table="Table 4-32", page="240",
source_type="PCB",
conditions=[
"Source shall-detect powered cable/adapter (vRa) Default USB",
"vRa 0.000.15 V; threshold 0.20 V",
],
))
out.append(_num(
pid, "vrd_detect_threshold_default", 1.60, "V",
document=DOC_USBC_CABCON, organization=ORG_USB30PG,
revision=REV_USBC_CABCON_R20, section="4.11.3",
table="Table 4-32", page="240",
source_type="PCB",
conditions=["Source vRd detect threshold, Default USB Type-C Current"],
))
out.append(_num(
pid, "t_vbuson_max", 275.0, "ms",
document=DOC_USBC_CABCON, organization=ORG_USB30PG,
revision=REV_USBC_CABCON, section="4.11.2",
table="Table 4-32", page="247",
source_type="PCB",
conditions=[
"tVBUSON maximum (minimum 0 ms)",
"from Attached.SRC until VBUS reaches the minimum vSafe5V threshold at the source receptacle",
"vSafe5V volt range is USB PD, not restated here",
],
))
out.append(_c(
pid, "vsafe5v", "UNKNOWN",
needed_document=DOC_USB_PD_VSAFE,
))
return out return out
def _eth_cons(pid: str, lid: str) -> list[dict[str, Any]]: def _eth_cons(pid: str, lid: str) -> list[dict[str, Any]]:
@@ -2543,22 +2543,34 @@
"conditions": [], "conditions": [],
"value_origin": "SPEC", "value_origin": "SPEC",
"typical": false, "typical": false,
"needed_document": "USB Type-C Cable and Connector Specification Release 2.5, March 2026" "needed_document": "USB Type-C Cable and Connector Specification Release 2.0 Table 4-32 (Source CC shall-detect packed as electrical_thresholds; CC is not a single ohm)"
}, },
{ {
"id": "usb-c-receptacle-vbus_requirements", "id": "usb-c-receptacle-vbus_requirements",
"parameter": "vbus_requirements", "parameter": "vbus_requirements",
"value_kind": "UNKNOWN", "value_kind": "NUMERIC",
"mandatory": "MANDATORY", "mandatory": "MANDATORY",
"source_type": "STANDARD", "source_type": "CABLE",
"source_class": "NORMATIVE", "source_class": "NORMATIVE",
"value": null, "value": 4.0,
"unit": null, "unit": "V",
"source": null, "source": {
"conditions": [], "document": "USB Type-C Cable and Connector Specification",
"organization": "USB 3.0 Promoter Group",
"revision": "Release 2.5, March 2026",
"section": "4.8.1.2",
"table": "Figure 4-39",
"page": "233"
},
"conditions": [
"USB Type-C Current charger (non-PD)",
"at 3 A: 4.0\u20135.5 V",
"measured at charger captive-cable plug / charger output",
"not USB PD vSafe5V",
"not a PCB trace voltage"
],
"value_origin": "SPEC", "value_origin": "SPEC",
"typical": false, "typical": false
"needed_document": "USB Power Delivery specification vSafe5V (not on file; Type-C CabCon R2.5 names vSafe5V without restating the volt range)"
}, },
{ {
"id": "usb-c-receptacle-current_advertisement", "id": "usb-c-receptacle-current_advertisement",
@@ -2578,62 +2590,103 @@
{ {
"id": "usb-c-receptacle-voltage", "id": "usb-c-receptacle-voltage",
"parameter": "voltage", "parameter": "voltage",
"value_kind": "UNKNOWN", "value_kind": "NUMERIC",
"mandatory": "MANDATORY", "mandatory": "MANDATORY",
"source_type": "STANDARD", "source_type": "CABLE",
"source_class": "NORMATIVE", "source_class": "NORMATIVE",
"value": null, "value": 4.75,
"unit": null, "unit": "V",
"source": null, "source": {
"conditions": [], "document": "USB Type-C Cable and Connector Specification",
"organization": "USB 3.0 Promoter Group",
"revision": "Release 2.5, March 2026",
"section": "4.8.1.2",
"table": "Figure 4-39",
"page": "233"
},
"conditions": [
"USB Type-C Current charger (non-PD)",
"no-load output minimum 4.75 V (maximum 5.5 V)",
"measured at charger captive-cable plug / charger output",
"not USB PD vSafe5V",
"not a PCB trace voltage"
],
"value_origin": "SPEC", "value_origin": "SPEC",
"typical": false, "typical": false
"needed_document": "USB Power Delivery specification vSafe5V (not on file; Type-C CabCon R2.5 names vSafe5V without restating the volt range)"
}, },
{ {
"id": "usb-c-receptacle-timing", "id": "usb-c-receptacle-timing",
"parameter": "timing", "parameter": "timing",
"value_kind": "UNKNOWN", "value_kind": "NUMERIC",
"mandatory": "MANDATORY", "mandatory": "MANDATORY",
"source_type": "STANDARD", "source_type": "PCB",
"source_class": "NORMATIVE", "source_class": "NORMATIVE",
"value": null, "value": 100.0,
"unit": null, "unit": "ms",
"source": null, "source": {
"conditions": [], "document": "USB Type-C Cable and Connector Specification",
"organization": "USB 3.0 Promoter Group",
"revision": "Release 2.5, March 2026",
"section": "4.11.2",
"table": "Table 4-34",
"page": "250"
},
"conditions": [
"tCCDebounce minimum (maximum 200 ms)",
"time a port shall wait before it can determine it is attached"
],
"value_origin": "SPEC", "value_origin": "SPEC",
"typical": false, "typical": false
"needed_document": "USB Type-C Cable and Connector Specification Release 2.5, March 2026"
}, },
{ {
"id": "usb-c-receptacle-electrical_thresholds", "id": "usb-c-receptacle-electrical_thresholds",
"parameter": "electrical_thresholds", "parameter": "electrical_thresholds",
"value_kind": "UNKNOWN", "value_kind": "NUMERIC",
"mandatory": "MANDATORY", "mandatory": "MANDATORY",
"source_type": "STANDARD", "source_type": "PCB",
"source_class": "NORMATIVE", "source_class": "NORMATIVE",
"value": null, "value": 1.5,
"unit": null, "unit": "V",
"source": null, "source": {
"conditions": [], "document": "USB Type-C Cable and Connector Specification",
"organization": "USB 3.0 Promoter Group",
"revision": "Release 2.0, August 2019",
"section": "4.11.3",
"table": "Table 4-32",
"page": "240"
},
"conditions": [
"Source shall-detect Sink (vRd), Default USB Type-C Current",
"vRd 0.25\u20131.50 V; detect threshold 1.60 V",
"R2.5 \u00a74.11.3.2 tables are variance examples, not this shall-detect table"
],
"value_origin": "SPEC", "value_origin": "SPEC",
"typical": false, "typical": false
"needed_document": "USB Type-C Cable and Connector Specification Release 2.5, March 2026"
}, },
{ {
"id": "usb-c-receptacle-termination", "id": "usb-c-receptacle-termination",
"parameter": "termination", "parameter": "termination",
"value_kind": "UNKNOWN", "value_kind": "NUMERIC",
"mandatory": "MANDATORY", "mandatory": "MANDATORY",
"source_type": "STANDARD", "source_type": "CONNECTOR",
"source_class": "NORMATIVE", "source_class": "NORMATIVE",
"value": null, "value": 126000.0,
"unit": null, "unit": "ohm",
"source": null, "source": {
"conditions": [], "document": "USB Type-C Cable and Connector Specification",
"organization": "USB 3.0 Promoter Group",
"revision": "Release 2.5, March 2026",
"section": "4.11.1",
"table": "Table 4-30",
"page": "246"
},
"conditions": [
"zOPEN minimum impedance to GND",
"Disabled / ErrorRecovery / unpowered Source",
"not Rp / Rd / Ra"
],
"value_origin": "SPEC", "value_origin": "SPEC",
"typical": false, "typical": false
"needed_document": "USB Type-C Cable and Connector Specification Release 2.5, March 2026"
}, },
{ {
"id": "usb-c-receptacle-connector_requirements", "id": "usb-c-receptacle-connector_requirements",
@@ -2760,6 +2813,117 @@
], ],
"value_origin": "SPEC", "value_origin": "SPEC",
"typical": false "typical": false
},
{
"id": "usb-c-receptacle-vopen_source_default",
"parameter": "vopen_source_default",
"value_kind": "NUMERIC",
"mandatory": "MANDATORY",
"source_type": "PCB",
"source_class": "NORMATIVE",
"value": 1.65,
"unit": "V",
"source": {
"document": "USB Type-C Cable and Connector Specification",
"organization": "USB 3.0 Promoter Group",
"revision": "Release 2.0, August 2019",
"section": "4.11.3",
"table": "Table 4-32",
"page": "240"
},
"conditions": [
"Source CC no-connect (vOPEN) Default USB advertisement",
"R2.5 does not restate this shall-detect table"
],
"value_origin": "SPEC",
"typical": false
},
{
"id": "usb-c-receptacle-vra_source_default_max",
"parameter": "vra_source_default_max",
"value_kind": "NUMERIC",
"mandatory": "MANDATORY",
"source_type": "PCB",
"source_class": "NORMATIVE",
"value": 0.15,
"unit": "V",
"source": {
"document": "USB Type-C Cable and Connector Specification",
"organization": "USB 3.0 Promoter Group",
"revision": "Release 2.0, August 2019",
"section": "4.11.3",
"table": "Table 4-32",
"page": "240"
},
"conditions": [
"Source shall-detect powered cable/adapter (vRa) Default USB",
"vRa 0.00\u20130.15 V; threshold 0.20 V"
],
"value_origin": "SPEC",
"typical": false
},
{
"id": "usb-c-receptacle-vrd_detect_threshold_default",
"parameter": "vrd_detect_threshold_default",
"value_kind": "NUMERIC",
"mandatory": "MANDATORY",
"source_type": "PCB",
"source_class": "NORMATIVE",
"value": 1.6,
"unit": "V",
"source": {
"document": "USB Type-C Cable and Connector Specification",
"organization": "USB 3.0 Promoter Group",
"revision": "Release 2.0, August 2019",
"section": "4.11.3",
"table": "Table 4-32",
"page": "240"
},
"conditions": [
"Source vRd detect threshold, Default USB Type-C Current"
],
"value_origin": "SPEC",
"typical": false
},
{
"id": "usb-c-receptacle-t_vbuson_max",
"parameter": "t_vbuson_max",
"value_kind": "NUMERIC",
"mandatory": "MANDATORY",
"source_type": "PCB",
"source_class": "NORMATIVE",
"value": 275.0,
"unit": "ms",
"source": {
"document": "USB Type-C Cable and Connector Specification",
"organization": "USB 3.0 Promoter Group",
"revision": "Release 2.5, March 2026",
"section": "4.11.2",
"table": "Table 4-32",
"page": "247"
},
"conditions": [
"tVBUSON maximum (minimum 0 ms)",
"from Attached.SRC until VBUS reaches the minimum vSafe5V threshold at the source receptacle",
"vSafe5V volt range is USB PD, not restated here"
],
"value_origin": "SPEC",
"typical": false
},
{
"id": "usb-c-receptacle-vsafe5v",
"parameter": "vsafe5v",
"value_kind": "UNKNOWN",
"mandatory": "MANDATORY",
"source_type": "STANDARD",
"source_class": "NORMATIVE",
"value": null,
"unit": null,
"source": null,
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "USB Power Delivery specification vSafe5V (not on file; Type-C CabCon R2.5 names vSafe5V and tVBUSON as the minimum vSafe5V threshold without restating the volt range. Type-C Current charger 4.75\u20135.5 V is not vSafe5V)"
} }
], ],
"notes": "USB Type-C connector/interface system. Not USB 2.0/3.x/USB4 protocol. Rp/Rd/Ra from CabCon R2.5 Tables 4-27/4-28/4-29. VBUS volts still USB PD vSafe5V.", "notes": "USB Type-C connector/interface system. Not USB 2.0/3.x/USB4 protocol. Rp/Rd/Ra from CabCon R2.5 Tables 4-27/4-28/4-29. VBUS volts still USB PD vSafe5V.",
@@ -3418,7 +3582,7 @@
"conditions": [], "conditions": [],
"value_origin": "SPEC", "value_origin": "SPEC",
"typical": false, "typical": false,
"needed_document": "USB Type-C Cable and Connector Specification Release 2.5, March 2026" "needed_document": "USB Type-C Cable and Connector Specification Release 2.0 Table 4-32 (Source CC shall-detect packed as electrical_thresholds; CC is not a single ohm)"
}, },
{ {
"id": "usb-c-usb2-receptacle-current_advertisement", "id": "usb-c-usb2-receptacle-current_advertisement",
@@ -3438,47 +3602,78 @@
{ {
"id": "usb-c-usb2-receptacle-voltage", "id": "usb-c-usb2-receptacle-voltage",
"parameter": "voltage", "parameter": "voltage",
"value_kind": "UNKNOWN", "value_kind": "NUMERIC",
"mandatory": "MANDATORY", "mandatory": "MANDATORY",
"source_type": "STANDARD", "source_type": "CABLE",
"source_class": "NORMATIVE", "source_class": "NORMATIVE",
"value": null, "value": 4.75,
"unit": null, "unit": "V",
"source": null, "source": {
"conditions": [], "document": "USB Type-C Cable and Connector Specification",
"organization": "USB 3.0 Promoter Group",
"revision": "Release 2.5, March 2026",
"section": "4.8.1.2",
"table": "Figure 4-39",
"page": "233"
},
"conditions": [
"USB Type-C Current charger (non-PD)",
"no-load output minimum 4.75 V (maximum 5.5 V)",
"measured at charger captive-cable plug / charger output",
"not USB PD vSafe5V",
"not a PCB trace voltage"
],
"value_origin": "SPEC", "value_origin": "SPEC",
"typical": false, "typical": false
"needed_document": "USB Power Delivery specification vSafe5V (not on file; Type-C CabCon R2.5 names vSafe5V without restating the volt range)"
}, },
{ {
"id": "usb-c-usb2-receptacle-timing", "id": "usb-c-usb2-receptacle-timing",
"parameter": "timing", "parameter": "timing",
"value_kind": "UNKNOWN", "value_kind": "NUMERIC",
"mandatory": "MANDATORY", "mandatory": "MANDATORY",
"source_type": "STANDARD", "source_type": "PCB",
"source_class": "NORMATIVE", "source_class": "NORMATIVE",
"value": null, "value": 100.0,
"unit": null, "unit": "ms",
"source": null, "source": {
"conditions": [], "document": "USB Type-C Cable and Connector Specification",
"organization": "USB 3.0 Promoter Group",
"revision": "Release 2.5, March 2026",
"section": "4.11.2",
"table": "Table 4-34",
"page": "250"
},
"conditions": [
"tCCDebounce minimum (maximum 200 ms)",
"time a port shall wait before it can determine it is attached"
],
"value_origin": "SPEC", "value_origin": "SPEC",
"typical": false, "typical": false
"needed_document": "USB Type-C Cable and Connector Specification Release 2.5, March 2026"
}, },
{ {
"id": "usb-c-usb2-receptacle-electrical_thresholds", "id": "usb-c-usb2-receptacle-electrical_thresholds",
"parameter": "electrical_thresholds", "parameter": "electrical_thresholds",
"value_kind": "UNKNOWN", "value_kind": "NUMERIC",
"mandatory": "MANDATORY", "mandatory": "MANDATORY",
"source_type": "STANDARD", "source_type": "PCB",
"source_class": "NORMATIVE", "source_class": "NORMATIVE",
"value": null, "value": 1.5,
"unit": null, "unit": "V",
"source": null, "source": {
"conditions": [], "document": "USB Type-C Cable and Connector Specification",
"organization": "USB 3.0 Promoter Group",
"revision": "Release 2.0, August 2019",
"section": "4.11.3",
"table": "Table 4-32",
"page": "240"
},
"conditions": [
"Source shall-detect Sink (vRd), Default USB Type-C Current",
"vRd 0.25\u20131.50 V; detect threshold 1.60 V",
"R2.5 \u00a74.11.3.2 tables are variance examples, not this shall-detect table"
],
"value_origin": "SPEC", "value_origin": "SPEC",
"typical": false, "typical": false
"needed_document": "USB Type-C Cable and Connector Specification Release 2.5, March 2026"
}, },
{ {
"id": "usb-c-usb2-receptacle-usb2_channel_requirements", "id": "usb-c-usb2-receptacle-usb2_channel_requirements",
@@ -3591,6 +3786,117 @@
"value_origin": "SPEC", "value_origin": "SPEC",
"typical": false "typical": false
}, },
{
"id": "usb-c-usb2-receptacle-vopen_source_default",
"parameter": "vopen_source_default",
"value_kind": "NUMERIC",
"mandatory": "MANDATORY",
"source_type": "PCB",
"source_class": "NORMATIVE",
"value": 1.65,
"unit": "V",
"source": {
"document": "USB Type-C Cable and Connector Specification",
"organization": "USB 3.0 Promoter Group",
"revision": "Release 2.0, August 2019",
"section": "4.11.3",
"table": "Table 4-32",
"page": "240"
},
"conditions": [
"Source CC no-connect (vOPEN) Default USB advertisement",
"R2.5 does not restate this shall-detect table"
],
"value_origin": "SPEC",
"typical": false
},
{
"id": "usb-c-usb2-receptacle-vra_source_default_max",
"parameter": "vra_source_default_max",
"value_kind": "NUMERIC",
"mandatory": "MANDATORY",
"source_type": "PCB",
"source_class": "NORMATIVE",
"value": 0.15,
"unit": "V",
"source": {
"document": "USB Type-C Cable and Connector Specification",
"organization": "USB 3.0 Promoter Group",
"revision": "Release 2.0, August 2019",
"section": "4.11.3",
"table": "Table 4-32",
"page": "240"
},
"conditions": [
"Source shall-detect powered cable/adapter (vRa) Default USB",
"vRa 0.00\u20130.15 V; threshold 0.20 V"
],
"value_origin": "SPEC",
"typical": false
},
{
"id": "usb-c-usb2-receptacle-vrd_detect_threshold_default",
"parameter": "vrd_detect_threshold_default",
"value_kind": "NUMERIC",
"mandatory": "MANDATORY",
"source_type": "PCB",
"source_class": "NORMATIVE",
"value": 1.6,
"unit": "V",
"source": {
"document": "USB Type-C Cable and Connector Specification",
"organization": "USB 3.0 Promoter Group",
"revision": "Release 2.0, August 2019",
"section": "4.11.3",
"table": "Table 4-32",
"page": "240"
},
"conditions": [
"Source vRd detect threshold, Default USB Type-C Current"
],
"value_origin": "SPEC",
"typical": false
},
{
"id": "usb-c-usb2-receptacle-t_vbuson_max",
"parameter": "t_vbuson_max",
"value_kind": "NUMERIC",
"mandatory": "MANDATORY",
"source_type": "PCB",
"source_class": "NORMATIVE",
"value": 275.0,
"unit": "ms",
"source": {
"document": "USB Type-C Cable and Connector Specification",
"organization": "USB 3.0 Promoter Group",
"revision": "Release 2.5, March 2026",
"section": "4.11.2",
"table": "Table 4-32",
"page": "247"
},
"conditions": [
"tVBUSON maximum (minimum 0 ms)",
"from Attached.SRC until VBUS reaches the minimum vSafe5V threshold at the source receptacle",
"vSafe5V volt range is USB PD, not restated here"
],
"value_origin": "SPEC",
"typical": false
},
{
"id": "usb-c-usb2-receptacle-vsafe5v",
"parameter": "vsafe5v",
"value_kind": "UNKNOWN",
"mandatory": "MANDATORY",
"source_type": "STANDARD",
"source_class": "NORMATIVE",
"value": null,
"unit": null,
"source": null,
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "USB Power Delivery specification vSafe5V (not on file; Type-C CabCon R2.5 names vSafe5V and tVBUSON as the minimum vSafe5V threshold without restating the volt range. Type-C Current charger 4.75\u20135.5 V is not vSafe5V)"
},
{ {
"id": "usb-c-usb2-receptacle-cc_rd_rp", "id": "usb-c-usb2-receptacle-cc_rd_rp",
"parameter": "cc_rd_rp", "parameter": "cc_rd_rp",
@@ -2,6 +2,13 @@
What's new in Periscope. What's new in Periscope.
## 2.76.0 — 2026-09-22 — Type-C CabCon R2.0 hole-fill (CC shall-detect; VBUS from R2.5)
USB Type-C Cable and Connector Specification Release 2.0 (August 2019) fills Source CC shall-detect voltages that R2.5 only illustrates as variance examples (Table 4-32 p.240: vRd 1.50 V, vOPEN 1.65 V, vRa 0.15 V). Type-C Current charger VBUS 4.755.5 V no-load / 4.05.5 V at 3 A, zOPEN 126 kΩ, tCCDebounce 100200 ms, and tVBUSON 275 ms stay on newer CabCon R2.5 (Figure 4-39 / Tables 4-30, 4-32, 4-34). Rp/Rd/Ra unchanged. vSafe5V volt range still needs USB PD.
- [Changed] `protocol_catalog.py` + `catalog.json`.
- [Changed] pytest `tests/pcb/test_protocol_pdf_pack.py`.
## 2.75.0 — 2026-09-22 — Protocol packs from USB 2.0 Rev 2.0 and Type-C CabCon R2.5 ## 2.75.0 — 2026-09-22 — Protocol packs from USB 2.0 Rev 2.0 and Type-C CabCon R2.5
USB 2.0 Base Specification (April 27, 2000) fills LS 1.50 Mb/s, FS 12 Mb/s, HS 480 Mb/s, pull-up/down, VBUS 4.755.25 V, LS/FS edges. Cable Z0 90 Ω is `source_type=CABLE`; HS PCB traces *should* 90 Ω is RECOMMENDED PCB — L2 `differential_impedance` stays UNKNOWN so 45/50 Ω fixtures are not treated as Zdiff. Type-C Cable and Connector Specification Release 2.5 fills Rp/Rd/Ra from Tables 4-27/4-28/4-29. VBUS volts still need USB PD vSafe5V. IEEE 802.3 Section One/Three and HDMI Adopter remain missing. USB 2.0 Base Specification (April 27, 2000) fills LS 1.50 Mb/s, FS 12 Mb/s, HS 480 Mb/s, pull-up/down, VBUS 4.755.25 V, LS/FS edges. Cable Z0 90 Ω is `source_type=CABLE`; HS PCB traces *should* 90 Ω is RECOMMENDED PCB — L2 `differential_impedance` stays UNKNOWN so 45/50 Ω fixtures are not treated as Zdiff. Type-C Cable and Connector Specification Release 2.5 fills Rp/Rd/Ra from Tables 4-27/4-28/4-29. VBUS volts still need USB PD vSafe5V. IEEE 802.3 Section One/Three and HDMI Adopter remain missing.
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "periscope-web", "name": "periscope-web",
"version": "2.75.0", "version": "2.76.0",
"private": true, "private": true,
"scripts": { "scripts": {
"sync-version": "node scripts/sync-version.mjs", "sync-version": "node scripts/sync-version.mjs",
+40 -2
View File
@@ -77,6 +77,7 @@ def test_type_c_rp_rd_from_cabcon_r25_vbus_volts_unknown():
_cite_ok(by["rp"]) _cite_ok(by["rp"])
assert by["rp"].value == 56000.0 assert by["rp"].value == 56000.0
assert by["rp"].source.table == "Table 4-27" assert by["rp"].source.table == "Table 4-27"
assert by["rp"].source.revision == "Release 2.5, March 2026"
assert by["rp"].source_type == "CONNECTOR" assert by["rp"].source_type == "CONNECTOR"
_cite_ok(by["rd"]) _cite_ok(by["rd"])
assert by["rd"].value == 5100.0 assert by["rd"].value == 5100.0
@@ -84,8 +85,45 @@ def test_type_c_rp_rd_from_cabcon_r25_vbus_volts_unknown():
_cite_ok(by["ra"]) _cite_ok(by["ra"])
assert by["ra"].value == 800.0 assert by["ra"].value == 800.0
assert by["ra"].source_type == "CABLE" assert by["ra"].source_type == "CABLE"
assert by["voltage"].value_kind == "UNKNOWN" _cite_ok(by["voltage"])
assert "vSafe5V" in (by["voltage"].needed_document or "") assert by["voltage"].value == 4.75
assert by["voltage"].unit == "V"
assert by["voltage"].source.table == "Figure 4-39"
assert by["voltage"].source.page == "233"
assert "2.5" in by["voltage"].source.revision
assert by["voltage"].source_type == "CABLE"
assert any("not USB PD vSafe5V" in x for x in by["voltage"].conditions)
_cite_ok(by["vbus_requirements"])
assert by["vbus_requirements"].value == 4.0
assert by["vbus_requirements"].source.table == "Figure 4-39"
_cite_ok(by["electrical_thresholds"])
assert by["electrical_thresholds"].value == 1.50
assert by["electrical_thresholds"].source.table == "Table 4-32"
assert by["electrical_thresholds"].source.page == "240"
assert "August 2019" in by["electrical_thresholds"].source.revision
assert by["electrical_thresholds"].source_type == "PCB"
_cite_ok(by["vopen_source_default"])
assert by["vopen_source_default"].value == 1.65
_cite_ok(by["vra_source_default_max"])
assert by["vra_source_default_max"].value == 0.15
_cite_ok(by["vrd_detect_threshold_default"])
assert by["vrd_detect_threshold_default"].value == 1.60
_cite_ok(by["termination"])
assert by["termination"].value == 126000.0
assert by["termination"].source.table == "Table 4-30"
assert "2.5" in by["termination"].source.revision
assert by["termination"].source_type == "CONNECTOR"
_cite_ok(by["timing"])
assert by["timing"].value == 100.0
assert by["timing"].source.table == "Table 4-34"
assert "2.5" in by["timing"].source.revision
_cite_ok(by["t_vbuson_max"])
assert by["t_vbuson_max"].value == 275.0
assert by["t_vbuson_max"].source.table == "Table 4-32"
assert by["t_vbuson_max"].source.page == "247"
assert "2.5" in by["t_vbuson_max"].source.revision
assert by["vsafe5v"].value_kind == "UNKNOWN"
assert "vSafe5V" in (by["vsafe5v"].needed_document or "")
_cite_ok(by["gnd_ir_drop_cable"]) _cite_ok(by["gnd_ir_drop_cable"])
assert by["gnd_ir_drop_cable"].value == 250.0 assert by["gnd_ir_drop_cable"].value == 250.0
assert by["gnd_ir_drop_cable"].source_type == "CABLE" assert by["gnd_ir_drop_cable"].source_type == "CABLE"