From c4cd046ea9b18ff918fdd9e151cb537e26ab7ff3 Mon Sep 17 00:00:00 2001 From: Michele Bigi Date: Tue, 22 Sep 2026 16:53:49 +0200 Subject: [PATCH] Fill USB 2.0 Rev 2.0 and Type-C CabCon R2.5 numbers (2.75.0). LS/FS rates, pull-up/down, and VBUS come from the base spec. Cable Z0 90 ohm is CABLE; PCB should 90 ohm is RECOMMENDED. L2 differential_impedance stays UNKNOWN. Rp/Rd/Ra from CabCon Tables 4-27/28/29. IEEE Section One/Three and HDMI still missing. PDFs not in git. --- .../backend/periscopex/protocol_catalog.py | 255 ++++- .../periscopex/protocol_data/catalog.json | 1003 ++++++++++++----- periscope/src/frontend/content/changelog.md | 7 + periscope/src/frontend/package.json | 2 +- tests/pcb/test_protocol_m6_m7.py | 3 +- tests/pcb/test_protocol_pdf_pack.py | 38 +- 6 files changed, 955 insertions(+), 353 deletions(-) diff --git a/periscope/src/backend/periscopex/protocol_catalog.py b/periscope/src/backend/periscopex/protocol_catalog.py index 53e3372..c86352e 100644 --- a/periscope/src/backend/periscopex/protocol_catalog.py +++ b/periscope/src/backend/periscopex/protocol_catalog.py @@ -552,34 +552,36 @@ DVI_CHECKS = [ "return_path", "topology", ] -# Recovered PDFs (USB Electrical CTS v1.08, Type-C Functional Test Rev 0.91, DVI 1.0). -# IEEE 802.3 is not on file — do not fill Ethernet numbers from these documents. +# Recovered PDFs. IEEE 802.3 Section One/Three and HDMI Adopter still not on file. DOC_USB_CTS_108 = "USB 2.0 Electrical Compliance Test Specification" REV_USB_CTS_108 = "Version 1.08, April 2026" ORG_USBIF = "USB-IF" +DOC_USB20 = "Universal Serial Bus Specification" +REV_USB20 = "Revision 2.0, April 27, 2000" DOC_USBC_FTS = ( "Universal Serial Bus Type-C Functional Test Specification Chapters 4 and 5" ) REV_USBC_FTS = "Revision 0.91, March 3, 2024" +DOC_USBC_CABCON = "USB Type-C Cable and Connector Specification" +REV_USBC_CABCON = "Release 2.5, March 2026" +ORG_USB30PG = "USB 3.0 Promoter Group" DOC_DVI_10 = "Digital Visual Interface (DVI)" REV_DVI_10 = "Revision 1.0, 02 April 1999" ORG_DDWG = "DDWG" -DOC_USB_BASE = ( - "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" -) +DOC_USB_BASE = DOC_USB20 + " " + REV_USB20 DOC_USB_ELEC = ( "USB 2.0 Electrical Compliance Test Specification Version 1.08 April 2026 " "(recovered; this PCB limit is not stated in the CTS)" ) -DOC_USB_CABLE = ( - "USB Type-C Cable and Connector Specification (not on file; " - "Functional Test Spec Rev 0.91 references Table 4-15 / 4.4.2 without stating ohms or volts)" -) +DOC_USB_CABLE = DOC_USBC_CABCON + " " + REV_USBC_CABCON DOC_USB_CTS = DOC_USB_CTS_108 + " " + REV_USB_CTS_108 DOC_USB_ECN = "USB ENGINEERING CHANGE NOTICE USB 2.0 DC Resistance (cited by Electrical CTS v1.08 §3.9)" DOC_USB_LSFS = ( - "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 " - "§2 lists LS/FS test names without numeric criteria)" + "Universal Serial Bus Specification Revision 2.0 §7 (field not a single PCB number)" +) +DOC_USB_PD_VSAFE = ( + "USB Power Delivery specification vSafe5V (not on file; Type-C CabCon R2.5 names vSafe5V " + "without restating the volt range)" ) 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" @@ -789,35 +791,51 @@ def build_m0_catalog() -> dict[str, Any]: L("can", "CAN / CAN FD", "PERIPHERAL", "CAN") L("rgmii", "RGMII MAC-PHY", "PERIPHERAL", "ETHERNET") - def _usb2_cons(pid: str, *, hs: bool = False) -> list[dict[str, Any]]: - docs = { - "differential_impedance": DOC_USB_ELEC if hs else DOC_USB_LSFS, - "impedance_tolerance": DOC_USB_ELEC if hs else DOC_USB_LSFS, - "electrical_levels": DOC_USB_ELEC if hs else DOC_USB_LSFS, - "rise_time": DOC_USB_ELEC if hs else DOC_USB_LSFS, - "fall_time": DOC_USB_ELEC if hs else DOC_USB_LSFS, - "intra_pair_skew": DOC_USB_ELEC if hs else DOC_USB_LSFS, - "termination": DOC_USB_ELEC if hs else DOC_USB_LSFS, - "dc_resistance": DOC_USB_ELEC if hs else DOC_USB_LSFS, - "connector_requirements": DOC_USB_CABLE, - "vbus_requirements": DOC_USB_BASE, - "pull_up": DOC_USB_BASE if not hs else DOC_USB_ELEC, - "pull_down": DOC_USB_BASE, - "signaling": DOC_USB_BASE if not hs else DOC_USB_CTS_108, - "data_rate": DOC_USB_LSFS if not hs else DOC_USB_CTS_108, - "test_method": DOC_USB_CTS, - "compliance_test": DOC_USB_CTS, - } + def _usb2_cons(pid: str, *, speed: str) -> list[dict[str, Any]]: + """speed: ls | fs | hs | lsfs. PCB Zdiff stays UNKNOWN (cable 90 Ω is CABLE; PCB is should).""" rec = {"return_path"} out = [] + hs = speed == "hs" for p in USB2_CHECKS: mand: MandatoryClass = "RECOMMENDED" if p in rec else "MANDATORY" + if speed == "ls" and p == "data_rate": + out.append(_num( + pid, p, 1.50, "Mb/s", + document=DOC_USB20, organization=ORG_USBIF, + revision=REV_USB20, section="7.1.11", page="159", + conditions=["low-speed only functions", "TLDRATE ±1.5% (15,000 ppm)"], + )) + continue + if speed == "fs" and p == "data_rate": + out.append(_num( + pid, p, 12.000, "Mb/s", + document=DOC_USB20, organization=ORG_USBIF, + revision=REV_USB20, section="7.1.11", page="159", + conditions=["full-speed only functions", "TFDRATE ±0.25% (2,500 ppm)"], + )) + continue if hs and p == "data_rate": out.append(_num( - pid, p, 480.0, "Mb/s", - document=DOC_USB_CTS_108, organization=ORG_USBIF, - revision=REV_USB_CTS_108, section="3.2 EL_2", page="3", - conditions=["HS transmitter", "tolerance ±0.05%"], + pid, p, 480.00, "Mb/s", + document=DOC_USB20, organization=ORG_USBIF, + revision=REV_USB20, section="7.1.11", page="159", + conditions=["THSDRAT", "hosts/hubs/HS-capable ±0.05% (500 ppm)"], + )) + continue + if speed == "ls" and p in {"rise_time", "fall_time"}: + out.append(_num( + pid, p, 75.0, "ns", + document=DOC_USB20, organization=ORG_USBIF, + revision=REV_USB20, section="7.1.2.1", page="130", + conditions=["10% to 90%", "minimum 75 ns", "maximum 300 ns", "balanced capacitive test load"], + )) + continue + if speed == "fs" and p in {"rise_time", "fall_time"}: + out.append(_num( + pid, p, 4.0, "ns", + document=DOC_USB20, organization=ORG_USBIF, + revision=REV_USB20, section="7.1.2.1", page="130", + conditions=["10% to 90%", "minimum 4 ns", "maximum 20 ns", "matched to within ±10%"], )) continue if hs and p in {"rise_time", "fall_time"}: @@ -825,18 +843,31 @@ def build_m0_catalog() -> dict[str, Any]: pid, p, 300.0, "ps", document=DOC_USB_CTS_108, organization=ORG_USBIF, revision=REV_USB_CTS_108, section="3.2 EL_6", page="3", - conditions=[ - "HS driver 10% to 90% differential", - "minimum greater than 300 ps", - ], + conditions=["HS driver 10% to 90% differential", "minimum greater than 300 ps"], )) continue - if hs and p == "pull_up": + if speed in {"ls", "fs", "hs"} and p == "pull_up": out.append(_num( pid, p, 1500.0, "ohm", - document=DOC_USB_CTS_108, organization=ORG_USBIF, - revision=REV_USB_CTS_108, section="3.5 EL_31", page="4", - conditions=["device speed detection 1.5K pull-up"], + document=DOC_USB20, organization=ORG_USBIF, + revision=REV_USB20, section="7.1.5.1", page="141", + conditions=["detachable cable", "1.5 kΩ ±5%", "tied to 3.0 V to 3.6 V VTERM"], + )) + continue + if speed in {"ls", "fs", "hs"} and p == "pull_down": + out.append(_num( + pid, p, 15000.0, "ohm", + document=DOC_USB20, organization=ORG_USBIF, + revision=REV_USB20, section="7.1.5.1", page="141", + conditions=["downstream facing ports", "RPD 15 kΩ ±5% to ground"], + )) + continue + if speed in {"ls", "fs", "hs"} and p == "vbus_requirements": + out.append(_num( + pid, p, 4.75, "V", + document=DOC_USB20, organization=ORG_USBIF, + revision=REV_USB20, section="7.3.2", table="Table 7-7", page="178", + conditions=["high-power port VBUS minimum 4.75 V", "maximum 5.25 V"], )) continue if hs and p == "dc_resistance": @@ -844,19 +875,71 @@ def build_m0_catalog() -> dict[str, Any]: pid, p, 17.0, "ohm", document=DOC_USB_CTS_108, organization=ORG_USBIF, revision=REV_USB_CTS_108, section="3.9.1", page="7", - conditions=[ - "HS device-only upstream", - "D+ and D- individually", - "maximum series DC resistance", - ], + conditions=["HS device-only upstream", "D+ and D- individually", "maximum series DC resistance"], )) continue + zdoc = DOC_USB_LSFS + if speed == "ls": + zdoc = ( + "Universal Serial Bus Specification Revision 2.0 §7.1.1.2 " + "(LS captive cable 200–450 pF lumped C; not a differential cable Z0 PCB shall)" + ) + elif speed == "fs": + zdoc = ( + "Universal Serial Bus Specification Revision 2.0 §7.1.1.1 " + "(cable Z0 is packed as cable_differential_impedance, source_type CABLE; " + "FS-only text does not state a PCB trace Zdiff shall)" + ) + elif hs: + zdoc = ( + "Universal Serial Bus Specification Revision 2.0 §7.1.1.3 " + "(cable Z0 is CABLE cable_differential_impedance; PCB traces should is " + "RECOMMENDED pcb_trace_nominal_zdiff; CTS 45/50 ohm are fixture, not Zdiff)" + ) + else: + zdoc = ( + "Universal Serial Bus Specification Revision 2.0 §7 " + "(LS vs FS electrical differ; speed not selected)" + ) + if p == "differential_impedance": + out.append(_c(pid, p, "UNKNOWN", mandatory=mand, needed_document=zdoc)) + continue out.append(_c( pid, p, "UNKNOWN", mandatory=mand, - needed_document=docs.get(p, DOC_USB_LSFS if not hs else DOC_USB_BASE), + needed_document={ + "impedance_tolerance": zdoc, + "connector_requirements": DOC_USB_CABLE, + "test_method": DOC_USB_CTS, + "compliance_test": DOC_USB_CTS, + }.get(p, DOC_USB_LSFS), + )) + if speed in {"fs", "hs"}: + out.append(_num( + pid, "cable_differential_impedance", 90.0, "ohm", + document=DOC_USB20, organization=ORG_USBIF, + revision=REV_USB20, + section="7.1.1.3" if hs else "7.1.1.1", + page="129" if hs else "124", + source_type="CABLE", + conditions=[ + "shielded twisted-pair cable differential characteristic impedance Z0", + "±15%", + "not a PCB trace shall; not CTS 45/50 Ω fixture", + ], )) if hs: + out.append(_num( + pid, "pcb_trace_nominal_zdiff", 90.0, "ohm", + document=DOC_USB20, organization=ORG_USBIF, + revision=REV_USB20, section="7.1.1.3", page="129", + mandatory="RECOMMENDED", source_type="PCB", + conditions=[ + "D+ and D- circuit board traces between transceiver and connector", + "spec uses should (nominal 90 Ω), not shall", + "not CTS 45/50 Ω fixture", + ], + )) out.append(_num( pid, "dc_resistance_captive_cable_device", 23.0, "ohm", document=DOC_USB_CTS_108, organization=ORG_USBIF, @@ -872,26 +955,76 @@ def build_m0_catalog() -> dict[str, Any]: return out def _usbc_cons(pid: str) -> list[dict[str, Any]]: - cable = {"rp", "rd", "ra", "cc", "connector_requirements", "current_advertisement"} out = [] for p in USB_C_CHECKS: - doc = DOC_USB_CABLE if p in cable else DOC_USB_ELEC + if p == "rp": + out.append(_num( + pid, p, 56000.0, "ohm", + document=DOC_USBC_CABCON, organization=ORG_USB30PG, + revision=REV_USBC_CABCON, section="4.11.1", table="Table 4-27", page="245", + source_type="CONNECTOR", + conditions=[ + "Default USB Power advertisement", + "resistor pull-up to 4.75–5.5 V", + "56 kΩ ±20%", + "not 1.5 A / 3.0 A rows", + ], + )) + continue + if p == "rd": + out.append(_num( + pid, p, 5100.0, "ohm", + document=DOC_USBC_CABCON, organization=ORG_USB30PG, + revision=REV_USBC_CABCON, section="4.11.1", table="Table 4-28", page="245", + source_type="CONNECTOR", + conditions=["Sink CC termination resistor to GND", "nominal 5.1 kΩ"], + )) + continue + if p == "ra": + out.append(_num( + pid, p, 800.0, "ohm", + document=DOC_USBC_CABCON, organization=ORG_USB30PG, + revision=REV_USBC_CABCON, section="4.11.1", table="Table 4-29", page="246", + source_type="CABLE", + conditions=["powered cable VCONN", "Ra minimum 800 Ω", "maximum 1.2 kΩ"], + )) + continue + doc = DOC_USB_CABLE if p == "usb2_channel_requirements": doc = DOC_USB_ELEC if p in {"vbus_requirements", "voltage"}: - doc = DOC_USB_CABLE + doc = DOC_USB_PD_VSAFE + if p == "current_advertisement": + doc = ( + "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)" + ) out.append(_c(pid, p, "UNKNOWN", needed_document=doc)) + out.append(_num( + pid, "rp_1a5", 22000.0, "ohm", + document=DOC_USBC_CABCON, organization=ORG_USB30PG, + revision=REV_USBC_CABCON, section="4.11.1", table="Table 4-27", page="245", + source_type="CONNECTOR", + conditions=["1.5 A @ 5 V advertisement", "resistor pull-up to 4.75–5.5 V", "22 kΩ ±5%"], + )) + out.append(_num( + pid, "rp_3a", 10000.0, "ohm", + document=DOC_USBC_CABCON, organization=ORG_USB30PG, + revision=REV_USBC_CABCON, section="4.11.1", table="Table 4-27", page="245", + source_type="CONNECTOR", + conditions=["3.0 A @ 5 V advertisement", "resistor pull-up to 4.75–5.5 V", "10 kΩ ±5%"], + )) out.append(_num( pid, "gnd_ir_drop_cable", 250.0, "mV", document=DOC_USBC_FTS, organization=ORG_USBIF, - revision=REV_USBC_FTS, section="4.4.1#1", page="10", + revision=REV_USBC_FTS, section="4.4.1#1", page="10", mandatory="OPTIONAL", source_type="CABLE", conditions=["cable IR drop for ground; not a receptacle PCB ohm"], )) out.append(_num( pid, "vbus_ir_drop_cable", 500.0, "mV", document=DOC_USBC_FTS, organization=ORG_USBIF, - revision=REV_USBC_FTS, section="4.4.1#1", page="10", + revision=REV_USBC_FTS, section="4.4.1#1", page="10", mandatory="OPTIONAL", source_type="CABLE", conditions=["cable IR drop for VBUS; not a receptacle PCB ohm"], )) @@ -1085,19 +1218,19 @@ def build_m0_catalog() -> dict[str, Any]: )) return out - for lid, pid, hints, note, hs in ( + for lid, pid, hints, note, speed in ( ("usb2-ls", "usb2-ls-dpair", ["USB_D+", "USB_LS"], - "USB 2.0 Low Speed. Electrical CTS v1.08 lists LS tests without numeric criteria.", False), + "USB 2.0 Low Speed. Rates/edges/pull-ups from USB 2.0 Rev 2.0 §7. LS is lumped C, not cable Z0.", "ls"), ("usb2-fs", "usb2-fs-dpair", ["USB_D+", "USB_FS"], - "USB 2.0 Full Speed. Electrical CTS v1.08 lists FS tests without numeric criteria.", False), + "USB 2.0 Full Speed. Cable differential Z0 is packed as CABLE, not a PCB shall.", "fs"), ("usb2-ls-fs", "usb2-ls-fs-dpair", ["USB_D+", "USB_D-", "USB_DP", "USB_DM", "D+", "D-"], - "LS/FS umbrella pair. No LS/FS ohms in Electrical CTS v1.08.", False), + "LS/FS umbrella pair. Speed-specific electrical not applied until LS vs FS is known.", "lsfs"), ("usb2-hs", "usb2-hs-dpair", ["USB_D+", "USB_D-", "USB_HS"], - "USB 2.0 High Speed. Zdiff is not stated in Electrical CTS v1.08 (do not invent differential ohms).", True), + "USB 2.0 High Speed. Cable Z0 is CABLE; PCB trace nominal is RECOMMENDED. L2 Z check stays UNKNOWN.", "hs"), ): physical.append(_iface( pid, lid, "SERIAL", "SERIAL_DIFFERENTIAL", "YES", - USB2_CHECKS, _usb2_cons(pid, hs=hs), + USB2_CHECKS, _usb2_cons(pid, speed=speed), hints=hints, notes=note, )) physical.append(_iface( @@ -1107,10 +1240,10 @@ def build_m0_catalog() -> dict[str, Any]: hints=["USB_C", "TYPE_C", "CC1", "CC2"], notes=( "USB Type-C connector/interface system. Not USB 2.0/3.x/USB4 protocol. " - "No invented Rd/Rp ohms." + "Rp/Rd/Ra from CabCon R2.5 Tables 4-27/4-28/4-29. VBUS volts still USB PD vSafe5V." ), )) - usb2_over_c = _usb2_cons("usb-c-usb2-receptacle", hs=True) + usb2_over_c = _usb2_cons("usb-c-usb2-receptacle", speed="hs") seen_p = {c["parameter"] for c in usb2_over_c} for c in _usbc_cons("usb-c-usb2-receptacle"): if c["parameter"] not in seen_p: diff --git a/periscope/src/backend/periscopex/protocol_data/catalog.json b/periscope/src/backend/periscopex/protocol_data/catalog.json index 0ec655b..ba2c333 100644 --- a/periscope/src/backend/periscopex/protocol_data/catalog.json +++ b/periscope/src/backend/periscopex/protocol_data/catalog.json @@ -620,22 +620,31 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-dpair-data_rate", "parameter": "data_rate", - "value_kind": "UNKNOWN", + "value_kind": "NUMERIC", "mandatory": "MANDATORY", "source_type": "STANDARD", "source_class": "NORMATIVE", - "value": null, - "unit": null, - "source": null, - "conditions": [], + "value": 1.5, + "unit": "Mb/s", + "source": { + "document": "Universal Serial Bus Specification", + "organization": "USB-IF", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.1.11", + "table": null, + "page": "159" + }, + "conditions": [ + "low-speed only functions", + "TLDRATE \u00b11.5% (15,000 ppm)" + ], "value_origin": "SPEC", - "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "typical": false }, { "id": "usb2-ls-dpair-electrical_levels", @@ -650,7 +659,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-dpair-differential_impedance", @@ -665,7 +674,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77.1.1.2 (LS captive cable 200\u2013450 pF lumped C; not a differential cable Z0 PCB shall)" }, { "id": "usb2-ls-dpair-impedance_tolerance", @@ -680,37 +689,59 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77.1.1.2 (LS captive cable 200\u2013450 pF lumped C; not a differential cable Z0 PCB shall)" }, { "id": "usb2-ls-dpair-rise_time", "parameter": "rise_time", - "value_kind": "UNKNOWN", + "value_kind": "NUMERIC", "mandatory": "MANDATORY", "source_type": "STANDARD", "source_class": "NORMATIVE", - "value": null, - "unit": null, - "source": null, - "conditions": [], + "value": 75.0, + "unit": "ns", + "source": { + "document": "Universal Serial Bus Specification", + "organization": "USB-IF", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.1.2.1", + "table": null, + "page": "130" + }, + "conditions": [ + "10% to 90%", + "minimum 75 ns", + "maximum 300 ns", + "balanced capacitive test load" + ], "value_origin": "SPEC", - "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "typical": false }, { "id": "usb2-ls-dpair-fall_time", "parameter": "fall_time", - "value_kind": "UNKNOWN", + "value_kind": "NUMERIC", "mandatory": "MANDATORY", "source_type": "STANDARD", "source_class": "NORMATIVE", - "value": null, - "unit": null, - "source": null, - "conditions": [], + "value": 75.0, + "unit": "ns", + "source": { + "document": "Universal Serial Bus Specification", + "organization": "USB-IF", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.1.2.1", + "table": null, + "page": "130" + }, + "conditions": [ + "10% to 90%", + "minimum 75 ns", + "maximum 300 ns", + "balanced capacitive test load" + ], "value_origin": "SPEC", - "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "typical": false }, { "id": "usb2-ls-dpair-intra_pair_skew", @@ -725,7 +756,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-dpair-max_length", @@ -740,7 +771,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-dpair-min_length", @@ -755,7 +786,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-dpair-connector_requirements", @@ -770,7 +801,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB Type-C Cable and Connector Specification (not on file; Functional Test Spec Rev 0.91 references Table 4-15 / 4.4.2 without stating ohms or volts)" + "needed_document": "USB Type-C Cable and Connector Specification Release 2.5, March 2026" }, { "id": "usb2-ls-dpair-termination", @@ -785,52 +816,80 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-dpair-pull_up", "parameter": "pull_up", - "value_kind": "UNKNOWN", + "value_kind": "NUMERIC", "mandatory": "MANDATORY", "source_type": "STANDARD", "source_class": "NORMATIVE", - "value": null, - "unit": null, - "source": null, - "conditions": [], + "value": 1500.0, + "unit": "ohm", + "source": { + "document": "Universal Serial Bus Specification", + "organization": "USB-IF", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.1.5.1", + "table": null, + "page": "141" + }, + "conditions": [ + "detachable cable", + "1.5 k\u03a9 \u00b15%", + "tied to 3.0 V to 3.6 V VTERM" + ], "value_origin": "SPEC", - "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "typical": false }, { "id": "usb2-ls-dpair-pull_down", "parameter": "pull_down", - "value_kind": "UNKNOWN", + "value_kind": "NUMERIC", "mandatory": "MANDATORY", "source_type": "STANDARD", "source_class": "NORMATIVE", - "value": null, - "unit": null, - "source": null, - "conditions": [], + "value": 15000.0, + "unit": "ohm", + "source": { + "document": "Universal Serial Bus Specification", + "organization": "USB-IF", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.1.5.1", + "table": null, + "page": "141" + }, + "conditions": [ + "downstream facing ports", + "RPD 15 k\u03a9 \u00b15% to ground" + ], "value_origin": "SPEC", - "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "typical": false }, { "id": "usb2-ls-dpair-vbus_requirements", "parameter": "vbus_requirements", - "value_kind": "UNKNOWN", + "value_kind": "NUMERIC", "mandatory": "MANDATORY", "source_type": "STANDARD", "source_class": "NORMATIVE", - "value": null, - "unit": null, - "source": null, - "conditions": [], + "value": 4.75, + "unit": "V", + "source": { + "document": "Universal Serial Bus Specification", + "organization": "USB-IF", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.3.2", + "table": "Table 7-7", + "page": "178" + }, + "conditions": [ + "high-power port VBUS minimum 4.75 V", + "maximum 5.25 V" + ], "value_origin": "SPEC", - "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "typical": false }, { "id": "usb2-ls-dpair-dc_resistance", @@ -845,7 +904,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-dpair-topology", @@ -860,7 +919,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-dpair-stubs", @@ -875,7 +934,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-dpair-vias", @@ -890,7 +949,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-dpair-return_path", @@ -905,7 +964,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-dpair-test_method", @@ -950,10 +1009,10 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" } ], - "notes": "USB 2.0 Low Speed. Electrical CTS v1.08 lists LS tests without numeric criteria.", + "notes": "USB 2.0 Low Speed. Rates/edges/pull-ups from USB 2.0 Rev 2.0 \u00a77. LS is lumped C, not cable Z0.", "incomplete": false }, { @@ -1006,22 +1065,31 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-fs-dpair-data_rate", "parameter": "data_rate", - "value_kind": "UNKNOWN", + "value_kind": "NUMERIC", "mandatory": "MANDATORY", "source_type": "STANDARD", "source_class": "NORMATIVE", - "value": null, - "unit": null, - "source": null, - "conditions": [], + "value": 12.0, + "unit": "Mb/s", + "source": { + "document": "Universal Serial Bus Specification", + "organization": "USB-IF", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.1.11", + "table": null, + "page": "159" + }, + "conditions": [ + "full-speed only functions", + "TFDRATE \u00b10.25% (2,500 ppm)" + ], "value_origin": "SPEC", - "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "typical": false }, { "id": "usb2-fs-dpair-electrical_levels", @@ -1036,7 +1104,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-fs-dpair-differential_impedance", @@ -1051,7 +1119,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77.1.1.1 (cable Z0 is packed as cable_differential_impedance, source_type CABLE; FS-only text does not state a PCB trace Zdiff shall)" }, { "id": "usb2-fs-dpair-impedance_tolerance", @@ -1066,37 +1134,59 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77.1.1.1 (cable Z0 is packed as cable_differential_impedance, source_type CABLE; FS-only text does not state a PCB trace Zdiff shall)" }, { "id": "usb2-fs-dpair-rise_time", "parameter": "rise_time", - "value_kind": "UNKNOWN", + "value_kind": "NUMERIC", "mandatory": "MANDATORY", "source_type": "STANDARD", "source_class": "NORMATIVE", - "value": null, - "unit": null, - "source": null, - "conditions": [], + "value": 4.0, + "unit": "ns", + "source": { + "document": "Universal Serial Bus Specification", + "organization": "USB-IF", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.1.2.1", + "table": null, + "page": "130" + }, + "conditions": [ + "10% to 90%", + "minimum 4 ns", + "maximum 20 ns", + "matched to within \u00b110%" + ], "value_origin": "SPEC", - "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "typical": false }, { "id": "usb2-fs-dpair-fall_time", "parameter": "fall_time", - "value_kind": "UNKNOWN", + "value_kind": "NUMERIC", "mandatory": "MANDATORY", "source_type": "STANDARD", "source_class": "NORMATIVE", - "value": null, - "unit": null, - "source": null, - "conditions": [], + "value": 4.0, + "unit": "ns", + "source": { + "document": "Universal Serial Bus Specification", + "organization": "USB-IF", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.1.2.1", + "table": null, + "page": "130" + }, + "conditions": [ + "10% to 90%", + "minimum 4 ns", + "maximum 20 ns", + "matched to within \u00b110%" + ], "value_origin": "SPEC", - "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "typical": false }, { "id": "usb2-fs-dpair-intra_pair_skew", @@ -1111,7 +1201,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-fs-dpair-max_length", @@ -1126,7 +1216,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-fs-dpair-min_length", @@ -1141,7 +1231,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-fs-dpair-connector_requirements", @@ -1156,7 +1246,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB Type-C Cable and Connector Specification (not on file; Functional Test Spec Rev 0.91 references Table 4-15 / 4.4.2 without stating ohms or volts)" + "needed_document": "USB Type-C Cable and Connector Specification Release 2.5, March 2026" }, { "id": "usb2-fs-dpair-termination", @@ -1171,52 +1261,80 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-fs-dpair-pull_up", "parameter": "pull_up", - "value_kind": "UNKNOWN", + "value_kind": "NUMERIC", "mandatory": "MANDATORY", "source_type": "STANDARD", "source_class": "NORMATIVE", - "value": null, - "unit": null, - "source": null, - "conditions": [], + "value": 1500.0, + "unit": "ohm", + "source": { + "document": "Universal Serial Bus Specification", + "organization": "USB-IF", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.1.5.1", + "table": null, + "page": "141" + }, + "conditions": [ + "detachable cable", + "1.5 k\u03a9 \u00b15%", + "tied to 3.0 V to 3.6 V VTERM" + ], "value_origin": "SPEC", - "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "typical": false }, { "id": "usb2-fs-dpair-pull_down", "parameter": "pull_down", - "value_kind": "UNKNOWN", + "value_kind": "NUMERIC", "mandatory": "MANDATORY", "source_type": "STANDARD", "source_class": "NORMATIVE", - "value": null, - "unit": null, - "source": null, - "conditions": [], + "value": 15000.0, + "unit": "ohm", + "source": { + "document": "Universal Serial Bus Specification", + "organization": "USB-IF", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.1.5.1", + "table": null, + "page": "141" + }, + "conditions": [ + "downstream facing ports", + "RPD 15 k\u03a9 \u00b15% to ground" + ], "value_origin": "SPEC", - "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "typical": false }, { "id": "usb2-fs-dpair-vbus_requirements", "parameter": "vbus_requirements", - "value_kind": "UNKNOWN", + "value_kind": "NUMERIC", "mandatory": "MANDATORY", "source_type": "STANDARD", "source_class": "NORMATIVE", - "value": null, - "unit": null, - "source": null, - "conditions": [], + "value": 4.75, + "unit": "V", + "source": { + "document": "Universal Serial Bus Specification", + "organization": "USB-IF", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.3.2", + "table": "Table 7-7", + "page": "178" + }, + "conditions": [ + "high-power port VBUS minimum 4.75 V", + "maximum 5.25 V" + ], "value_origin": "SPEC", - "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "typical": false }, { "id": "usb2-fs-dpair-dc_resistance", @@ -1231,7 +1349,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-fs-dpair-topology", @@ -1246,7 +1364,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-fs-dpair-stubs", @@ -1261,7 +1379,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-fs-dpair-vias", @@ -1276,7 +1394,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-fs-dpair-return_path", @@ -1291,7 +1409,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-fs-dpair-test_method", @@ -1336,10 +1454,35 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" + }, + { + "id": "usb2-fs-dpair-cable_differential_impedance", + "parameter": "cable_differential_impedance", + "value_kind": "NUMERIC", + "mandatory": "MANDATORY", + "source_type": "CABLE", + "source_class": "NORMATIVE", + "value": 90.0, + "unit": "ohm", + "source": { + "document": "Universal Serial Bus Specification", + "organization": "USB-IF", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.1.1.1", + "table": null, + "page": "124" + }, + "conditions": [ + "shielded twisted-pair cable differential characteristic impedance Z0", + "\u00b115%", + "not a PCB trace shall; not CTS 45/50 \u03a9 fixture" + ], + "value_origin": "SPEC", + "typical": false } ], - "notes": "USB 2.0 Full Speed. Electrical CTS v1.08 lists FS tests without numeric criteria.", + "notes": "USB 2.0 Full Speed. Cable differential Z0 is packed as CABLE, not a PCB shall.", "incomplete": false }, { @@ -1396,7 +1539,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-fs-dpair-data_rate", @@ -1411,7 +1554,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-fs-dpair-electrical_levels", @@ -1426,7 +1569,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-fs-dpair-differential_impedance", @@ -1441,7 +1584,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (LS vs FS electrical differ; speed not selected)" }, { "id": "usb2-ls-fs-dpair-impedance_tolerance", @@ -1456,7 +1599,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (LS vs FS electrical differ; speed not selected)" }, { "id": "usb2-ls-fs-dpair-rise_time", @@ -1471,7 +1614,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-fs-dpair-fall_time", @@ -1486,7 +1629,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-fs-dpair-intra_pair_skew", @@ -1501,7 +1644,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-fs-dpair-max_length", @@ -1516,7 +1659,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-fs-dpair-min_length", @@ -1531,7 +1674,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-fs-dpair-connector_requirements", @@ -1546,7 +1689,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB Type-C Cable and Connector Specification (not on file; Functional Test Spec Rev 0.91 references Table 4-15 / 4.4.2 without stating ohms or volts)" + "needed_document": "USB Type-C Cable and Connector Specification Release 2.5, March 2026" }, { "id": "usb2-ls-fs-dpair-termination", @@ -1561,7 +1704,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-fs-dpair-pull_up", @@ -1576,7 +1719,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-fs-dpair-pull_down", @@ -1591,7 +1734,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-fs-dpair-vbus_requirements", @@ -1606,7 +1749,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-fs-dpair-dc_resistance", @@ -1621,7 +1764,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-fs-dpair-topology", @@ -1636,7 +1779,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-fs-dpair-stubs", @@ -1651,7 +1794,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-fs-dpair-vias", @@ -1666,7 +1809,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-fs-dpair-return_path", @@ -1681,7 +1824,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-ls-fs-dpair-test_method", @@ -1726,10 +1869,10 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Specification LS/FS electrical (not on file; Electrical CTS v1.08 \u00a72 lists LS/FS test names without numeric criteria)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" } ], - "notes": "LS/FS umbrella pair. No LS/FS ohms in Electrical CTS v1.08.", + "notes": "LS/FS umbrella pair. Speed-specific electrical not applied until LS vs FS is known.", "incomplete": false }, { @@ -1783,7 +1926,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Electrical Compliance Test Specification" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-hs-dpair-data_rate", @@ -1795,16 +1938,16 @@ "value": 480.0, "unit": "Mb/s", "source": { - "document": "USB 2.0 Electrical Compliance Test Specification", + "document": "Universal Serial Bus Specification", "organization": "USB-IF", - "revision": "Version 1.08, April 2026", - "section": "3.2 EL_2", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.1.11", "table": null, - "page": "3" + "page": "159" }, "conditions": [ - "HS transmitter", - "tolerance \u00b10.05%" + "THSDRAT", + "hosts/hubs/HS-capable \u00b10.05% (500 ppm)" ], "value_origin": "SPEC", "typical": false @@ -1822,7 +1965,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Electrical Compliance Test Specification Version 1.08 April 2026 (recovered; this PCB limit is not stated in the CTS)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-hs-dpair-differential_impedance", @@ -1837,7 +1980,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Electrical Compliance Test Specification Version 1.08 April 2026 (recovered; this PCB limit is not stated in the CTS)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77.1.1.3 (cable Z0 is CABLE cable_differential_impedance; PCB traces should is RECOMMENDED pcb_trace_nominal_zdiff; CTS 45/50 ohm are fixture, not Zdiff)" }, { "id": "usb2-hs-dpair-impedance_tolerance", @@ -1852,7 +1995,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Electrical Compliance Test Specification Version 1.08 April 2026 (recovered; this PCB limit is not stated in the CTS)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77.1.1.3 (cable Z0 is CABLE cable_differential_impedance; PCB traces should is RECOMMENDED pcb_trace_nominal_zdiff; CTS 45/50 ohm are fixture, not Zdiff)" }, { "id": "usb2-hs-dpair-rise_time", @@ -1915,7 +2058,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Electrical Compliance Test Specification Version 1.08 April 2026 (recovered; this PCB limit is not stated in the CTS)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-hs-dpair-max_length", @@ -1930,7 +2073,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-hs-dpair-min_length", @@ -1945,7 +2088,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-hs-dpair-connector_requirements", @@ -1960,7 +2103,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB Type-C Cable and Connector Specification (not on file; Functional Test Spec Rev 0.91 references Table 4-15 / 4.4.2 without stating ohms or volts)" + "needed_document": "USB Type-C Cable and Connector Specification Release 2.5, March 2026" }, { "id": "usb2-hs-dpair-termination", @@ -1975,7 +2118,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Electrical Compliance Test Specification Version 1.08 April 2026 (recovered; this PCB limit is not stated in the CTS)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-hs-dpair-pull_up", @@ -1987,15 +2130,17 @@ "value": 1500.0, "unit": "ohm", "source": { - "document": "USB 2.0 Electrical Compliance Test Specification", + "document": "Universal Serial Bus Specification", "organization": "USB-IF", - "revision": "Version 1.08, April 2026", - "section": "3.5 EL_31", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.1.5.1", "table": null, - "page": "4" + "page": "141" }, "conditions": [ - "device speed detection 1.5K pull-up" + "detachable cable", + "1.5 k\u03a9 \u00b15%", + "tied to 3.0 V to 3.6 V VTERM" ], "value_origin": "SPEC", "typical": false @@ -2003,32 +2148,50 @@ { "id": "usb2-hs-dpair-pull_down", "parameter": "pull_down", - "value_kind": "UNKNOWN", + "value_kind": "NUMERIC", "mandatory": "MANDATORY", "source_type": "STANDARD", "source_class": "NORMATIVE", - "value": null, - "unit": null, - "source": null, - "conditions": [], + "value": 15000.0, + "unit": "ohm", + "source": { + "document": "Universal Serial Bus Specification", + "organization": "USB-IF", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.1.5.1", + "table": null, + "page": "141" + }, + "conditions": [ + "downstream facing ports", + "RPD 15 k\u03a9 \u00b15% to ground" + ], "value_origin": "SPEC", - "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "typical": false }, { "id": "usb2-hs-dpair-vbus_requirements", "parameter": "vbus_requirements", - "value_kind": "UNKNOWN", + "value_kind": "NUMERIC", "mandatory": "MANDATORY", "source_type": "STANDARD", "source_class": "NORMATIVE", - "value": null, - "unit": null, - "source": null, - "conditions": [], + "value": 4.75, + "unit": "V", + "source": { + "document": "Universal Serial Bus Specification", + "organization": "USB-IF", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.3.2", + "table": "Table 7-7", + "page": "178" + }, + "conditions": [ + "high-power port VBUS minimum 4.75 V", + "maximum 5.25 V" + ], "value_origin": "SPEC", - "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "typical": false }, { "id": "usb2-hs-dpair-dc_resistance", @@ -2068,7 +2231,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-hs-dpair-stubs", @@ -2083,7 +2246,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-hs-dpair-vias", @@ -2098,7 +2261,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-hs-dpair-return_path", @@ -2113,7 +2276,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb2-hs-dpair-test_method", @@ -2158,7 +2321,57 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" + }, + { + "id": "usb2-hs-dpair-cable_differential_impedance", + "parameter": "cable_differential_impedance", + "value_kind": "NUMERIC", + "mandatory": "MANDATORY", + "source_type": "CABLE", + "source_class": "NORMATIVE", + "value": 90.0, + "unit": "ohm", + "source": { + "document": "Universal Serial Bus Specification", + "organization": "USB-IF", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.1.1.3", + "table": null, + "page": "129" + }, + "conditions": [ + "shielded twisted-pair cable differential characteristic impedance Z0", + "\u00b115%", + "not a PCB trace shall; not CTS 45/50 \u03a9 fixture" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "usb2-hs-dpair-pcb_trace_nominal_zdiff", + "parameter": "pcb_trace_nominal_zdiff", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PCB", + "source_class": "NORMATIVE", + "value": 90.0, + "unit": "ohm", + "source": { + "document": "Universal Serial Bus Specification", + "organization": "USB-IF", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.1.1.3", + "table": null, + "page": "129" + }, + "conditions": [ + "D+ and D- circuit board traces between transceiver and connector", + "spec uses should (nominal 90 \u03a9), not shall", + "not CTS 45/50 \u03a9 fixture" + ], + "value_origin": "SPEC", + "typical": false }, { "id": "usb2-hs-dpair-dc_resistance_captive_cable_device", @@ -2211,7 +2424,7 @@ "typical": false } ], - "notes": "USB 2.0 High Speed. Zdiff is not stated in Electrical CTS v1.08 (do not invent differential ohms).", + "notes": "USB 2.0 High Speed. Cable Z0 is CABLE; PCB trace nominal is RECOMMENDED. L2 Z check stays UNKNOWN.", "incomplete": false }, { @@ -2245,47 +2458,77 @@ { "id": "usb-c-receptacle-rp", "parameter": "rp", - "value_kind": "UNKNOWN", + "value_kind": "NUMERIC", "mandatory": "MANDATORY", - "source_type": "STANDARD", + "source_type": "CONNECTOR", "source_class": "NORMATIVE", - "value": null, - "unit": null, - "source": null, - "conditions": [], + "value": 56000.0, + "unit": "ohm", + "source": { + "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-27", + "page": "245" + }, + "conditions": [ + "Default USB Power advertisement", + "resistor pull-up to 4.75\u20135.5 V", + "56 k\u03a9 \u00b120%", + "not 1.5 A / 3.0 A rows" + ], "value_origin": "SPEC", - "typical": false, - "needed_document": "USB Type-C Cable and Connector Specification (not on file; Functional Test Spec Rev 0.91 references Table 4-15 / 4.4.2 without stating ohms or volts)" + "typical": false }, { "id": "usb-c-receptacle-rd", "parameter": "rd", - "value_kind": "UNKNOWN", + "value_kind": "NUMERIC", "mandatory": "MANDATORY", - "source_type": "STANDARD", + "source_type": "CONNECTOR", "source_class": "NORMATIVE", - "value": null, - "unit": null, - "source": null, - "conditions": [], + "value": 5100.0, + "unit": "ohm", + "source": { + "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-28", + "page": "245" + }, + "conditions": [ + "Sink CC termination resistor to GND", + "nominal 5.1 k\u03a9" + ], "value_origin": "SPEC", - "typical": false, - "needed_document": "USB Type-C Cable and Connector Specification (not on file; Functional Test Spec Rev 0.91 references Table 4-15 / 4.4.2 without stating ohms or volts)" + "typical": false }, { "id": "usb-c-receptacle-ra", "parameter": "ra", - "value_kind": "UNKNOWN", + "value_kind": "NUMERIC", "mandatory": "MANDATORY", - "source_type": "STANDARD", + "source_type": "CABLE", "source_class": "NORMATIVE", - "value": null, - "unit": null, - "source": null, - "conditions": [], + "value": 800.0, + "unit": "ohm", + "source": { + "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-29", + "page": "246" + }, + "conditions": [ + "powered cable VCONN", + "Ra minimum 800 \u03a9", + "maximum 1.2 k\u03a9" + ], "value_origin": "SPEC", - "typical": false, - "needed_document": "USB Type-C Cable and Connector Specification (not on file; Functional Test Spec Rev 0.91 references Table 4-15 / 4.4.2 without stating ohms or volts)" + "typical": false }, { "id": "usb-c-receptacle-cc", @@ -2300,7 +2543,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB Type-C Cable and Connector Specification (not on file; Functional Test Spec Rev 0.91 references Table 4-15 / 4.4.2 without stating ohms or volts)" + "needed_document": "USB Type-C Cable and Connector Specification Release 2.5, March 2026" }, { "id": "usb-c-receptacle-vbus_requirements", @@ -2315,7 +2558,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB Type-C Cable and Connector Specification (not on file; Functional Test Spec Rev 0.91 references Table 4-15 / 4.4.2 without stating ohms or volts)" + "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", @@ -2330,7 +2573,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB Type-C Cable and Connector Specification (not on file; Functional Test Spec Rev 0.91 references Table 4-15 / 4.4.2 without stating ohms or volts)" + "needed_document": "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 \u2014 not a single ampere)" }, { "id": "usb-c-receptacle-voltage", @@ -2345,7 +2588,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB Type-C Cable and Connector Specification (not on file; Functional Test Spec Rev 0.91 references Table 4-15 / 4.4.2 without stating ohms or volts)" + "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", @@ -2360,7 +2603,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Electrical Compliance Test Specification Version 1.08 April 2026 (recovered; this PCB limit is not stated in the CTS)" + "needed_document": "USB Type-C Cable and Connector Specification Release 2.5, March 2026" }, { "id": "usb-c-receptacle-electrical_thresholds", @@ -2375,7 +2618,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Electrical Compliance Test Specification Version 1.08 April 2026 (recovered; this PCB limit is not stated in the CTS)" + "needed_document": "USB Type-C Cable and Connector Specification Release 2.5, March 2026" }, { "id": "usb-c-receptacle-termination", @@ -2390,7 +2633,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Electrical Compliance Test Specification Version 1.08 April 2026 (recovered; this PCB limit is not stated in the CTS)" + "needed_document": "USB Type-C Cable and Connector Specification Release 2.5, March 2026" }, { "id": "usb-c-receptacle-connector_requirements", @@ -2405,7 +2648,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB Type-C Cable and Connector Specification (not on file; Functional Test Spec Rev 0.91 references Table 4-15 / 4.4.2 without stating ohms or volts)" + "needed_document": "USB Type-C Cable and Connector Specification Release 2.5, March 2026" }, { "id": "usb-c-receptacle-usb2_channel_requirements", @@ -2422,6 +2665,56 @@ "typical": false, "needed_document": "USB 2.0 Electrical Compliance Test Specification Version 1.08 April 2026 (recovered; this PCB limit is not stated in the CTS)" }, + { + "id": "usb-c-receptacle-rp_1a5", + "parameter": "rp_1a5", + "value_kind": "NUMERIC", + "mandatory": "MANDATORY", + "source_type": "CONNECTOR", + "source_class": "NORMATIVE", + "value": 22000.0, + "unit": "ohm", + "source": { + "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-27", + "page": "245" + }, + "conditions": [ + "1.5 A @ 5 V advertisement", + "resistor pull-up to 4.75\u20135.5 V", + "22 k\u03a9 \u00b15%" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "usb-c-receptacle-rp_3a", + "parameter": "rp_3a", + "value_kind": "NUMERIC", + "mandatory": "MANDATORY", + "source_type": "CONNECTOR", + "source_class": "NORMATIVE", + "value": 10000.0, + "unit": "ohm", + "source": { + "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-27", + "page": "245" + }, + "conditions": [ + "3.0 A @ 5 V advertisement", + "resistor pull-up to 4.75\u20135.5 V", + "10 k\u03a9 \u00b15%" + ], + "value_origin": "SPEC", + "typical": false + }, { "id": "usb-c-receptacle-gnd_ir_drop_cable", "parameter": "gnd_ir_drop_cable", @@ -2469,7 +2762,7 @@ "typical": false } ], - "notes": "USB Type-C connector/interface system. Not USB 2.0/3.x/USB4 protocol. No invented Rd/Rp ohms.", + "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.", "incomplete": false }, { @@ -2540,7 +2833,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Electrical Compliance Test Specification" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb-c-usb2-receptacle-data_rate", @@ -2552,16 +2845,16 @@ "value": 480.0, "unit": "Mb/s", "source": { - "document": "USB 2.0 Electrical Compliance Test Specification", + "document": "Universal Serial Bus Specification", "organization": "USB-IF", - "revision": "Version 1.08, April 2026", - "section": "3.2 EL_2", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.1.11", "table": null, - "page": "3" + "page": "159" }, "conditions": [ - "HS transmitter", - "tolerance \u00b10.05%" + "THSDRAT", + "hosts/hubs/HS-capable \u00b10.05% (500 ppm)" ], "value_origin": "SPEC", "typical": false @@ -2579,7 +2872,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Electrical Compliance Test Specification Version 1.08 April 2026 (recovered; this PCB limit is not stated in the CTS)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb-c-usb2-receptacle-differential_impedance", @@ -2594,7 +2887,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Electrical Compliance Test Specification Version 1.08 April 2026 (recovered; this PCB limit is not stated in the CTS)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77.1.1.3 (cable Z0 is CABLE cable_differential_impedance; PCB traces should is RECOMMENDED pcb_trace_nominal_zdiff; CTS 45/50 ohm are fixture, not Zdiff)" }, { "id": "usb-c-usb2-receptacle-impedance_tolerance", @@ -2609,7 +2902,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Electrical Compliance Test Specification Version 1.08 April 2026 (recovered; this PCB limit is not stated in the CTS)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77.1.1.3 (cable Z0 is CABLE cable_differential_impedance; PCB traces should is RECOMMENDED pcb_trace_nominal_zdiff; CTS 45/50 ohm are fixture, not Zdiff)" }, { "id": "usb-c-usb2-receptacle-rise_time", @@ -2672,7 +2965,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Electrical Compliance Test Specification Version 1.08 April 2026 (recovered; this PCB limit is not stated in the CTS)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb-c-usb2-receptacle-max_length", @@ -2687,7 +2980,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb-c-usb2-receptacle-min_length", @@ -2702,7 +2995,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb-c-usb2-receptacle-connector_requirements", @@ -2717,7 +3010,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB Type-C Cable and Connector Specification (not on file; Functional Test Spec Rev 0.91 references Table 4-15 / 4.4.2 without stating ohms or volts)" + "needed_document": "USB Type-C Cable and Connector Specification Release 2.5, March 2026" }, { "id": "usb-c-usb2-receptacle-termination", @@ -2732,7 +3025,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Electrical Compliance Test Specification Version 1.08 April 2026 (recovered; this PCB limit is not stated in the CTS)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb-c-usb2-receptacle-pull_up", @@ -2744,15 +3037,17 @@ "value": 1500.0, "unit": "ohm", "source": { - "document": "USB 2.0 Electrical Compliance Test Specification", + "document": "Universal Serial Bus Specification", "organization": "USB-IF", - "revision": "Version 1.08, April 2026", - "section": "3.5 EL_31", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.1.5.1", "table": null, - "page": "4" + "page": "141" }, "conditions": [ - "device speed detection 1.5K pull-up" + "detachable cable", + "1.5 k\u03a9 \u00b15%", + "tied to 3.0 V to 3.6 V VTERM" ], "value_origin": "SPEC", "typical": false @@ -2760,32 +3055,50 @@ { "id": "usb-c-usb2-receptacle-pull_down", "parameter": "pull_down", - "value_kind": "UNKNOWN", + "value_kind": "NUMERIC", "mandatory": "MANDATORY", "source_type": "STANDARD", "source_class": "NORMATIVE", - "value": null, - "unit": null, - "source": null, - "conditions": [], + "value": 15000.0, + "unit": "ohm", + "source": { + "document": "Universal Serial Bus Specification", + "organization": "USB-IF", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.1.5.1", + "table": null, + "page": "141" + }, + "conditions": [ + "downstream facing ports", + "RPD 15 k\u03a9 \u00b15% to ground" + ], "value_origin": "SPEC", - "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "typical": false }, { "id": "usb-c-usb2-receptacle-vbus_requirements", "parameter": "vbus_requirements", - "value_kind": "UNKNOWN", + "value_kind": "NUMERIC", "mandatory": "MANDATORY", "source_type": "STANDARD", "source_class": "NORMATIVE", - "value": null, - "unit": null, - "source": null, - "conditions": [], + "value": 4.75, + "unit": "V", + "source": { + "document": "Universal Serial Bus Specification", + "organization": "USB-IF", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.3.2", + "table": "Table 7-7", + "page": "178" + }, + "conditions": [ + "high-power port VBUS minimum 4.75 V", + "maximum 5.25 V" + ], "value_origin": "SPEC", - "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "typical": false }, { "id": "usb-c-usb2-receptacle-dc_resistance", @@ -2825,7 +3138,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb-c-usb2-receptacle-stubs", @@ -2840,7 +3153,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb-c-usb2-receptacle-vias", @@ -2855,7 +3168,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb-c-usb2-receptacle-return_path", @@ -2870,7 +3183,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" }, { "id": "usb-c-usb2-receptacle-test_method", @@ -2915,7 +3228,57 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB-IF USB 2.0 Specification (not on file; Electrical CTS v1.08 does not state this field)" + "needed_document": "Universal Serial Bus Specification Revision 2.0 \u00a77 (field not a single PCB number)" + }, + { + "id": "usb-c-usb2-receptacle-cable_differential_impedance", + "parameter": "cable_differential_impedance", + "value_kind": "NUMERIC", + "mandatory": "MANDATORY", + "source_type": "CABLE", + "source_class": "NORMATIVE", + "value": 90.0, + "unit": "ohm", + "source": { + "document": "Universal Serial Bus Specification", + "organization": "USB-IF", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.1.1.3", + "table": null, + "page": "129" + }, + "conditions": [ + "shielded twisted-pair cable differential characteristic impedance Z0", + "\u00b115%", + "not a PCB trace shall; not CTS 45/50 \u03a9 fixture" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "usb-c-usb2-receptacle-pcb_trace_nominal_zdiff", + "parameter": "pcb_trace_nominal_zdiff", + "value_kind": "NUMERIC", + "mandatory": "RECOMMENDED", + "source_type": "PCB", + "source_class": "NORMATIVE", + "value": 90.0, + "unit": "ohm", + "source": { + "document": "Universal Serial Bus Specification", + "organization": "USB-IF", + "revision": "Revision 2.0, April 27, 2000", + "section": "7.1.1.3", + "table": null, + "page": "129" + }, + "conditions": [ + "D+ and D- circuit board traces between transceiver and connector", + "spec uses should (nominal 90 \u03a9), not shall", + "not CTS 45/50 \u03a9 fixture" + ], + "value_origin": "SPEC", + "typical": false }, { "id": "usb-c-usb2-receptacle-dc_resistance_captive_cable_device", @@ -2970,47 +3333,77 @@ { "id": "usb-c-usb2-receptacle-rp", "parameter": "rp", - "value_kind": "UNKNOWN", + "value_kind": "NUMERIC", "mandatory": "MANDATORY", - "source_type": "STANDARD", + "source_type": "CONNECTOR", "source_class": "NORMATIVE", - "value": null, - "unit": null, - "source": null, - "conditions": [], + "value": 56000.0, + "unit": "ohm", + "source": { + "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-27", + "page": "245" + }, + "conditions": [ + "Default USB Power advertisement", + "resistor pull-up to 4.75\u20135.5 V", + "56 k\u03a9 \u00b120%", + "not 1.5 A / 3.0 A rows" + ], "value_origin": "SPEC", - "typical": false, - "needed_document": "USB Type-C Cable and Connector Specification (not on file; Functional Test Spec Rev 0.91 references Table 4-15 / 4.4.2 without stating ohms or volts)" + "typical": false }, { "id": "usb-c-usb2-receptacle-rd", "parameter": "rd", - "value_kind": "UNKNOWN", + "value_kind": "NUMERIC", "mandatory": "MANDATORY", - "source_type": "STANDARD", + "source_type": "CONNECTOR", "source_class": "NORMATIVE", - "value": null, - "unit": null, - "source": null, - "conditions": [], + "value": 5100.0, + "unit": "ohm", + "source": { + "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-28", + "page": "245" + }, + "conditions": [ + "Sink CC termination resistor to GND", + "nominal 5.1 k\u03a9" + ], "value_origin": "SPEC", - "typical": false, - "needed_document": "USB Type-C Cable and Connector Specification (not on file; Functional Test Spec Rev 0.91 references Table 4-15 / 4.4.2 without stating ohms or volts)" + "typical": false }, { "id": "usb-c-usb2-receptacle-ra", "parameter": "ra", - "value_kind": "UNKNOWN", + "value_kind": "NUMERIC", "mandatory": "MANDATORY", - "source_type": "STANDARD", + "source_type": "CABLE", "source_class": "NORMATIVE", - "value": null, - "unit": null, - "source": null, - "conditions": [], + "value": 800.0, + "unit": "ohm", + "source": { + "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-29", + "page": "246" + }, + "conditions": [ + "powered cable VCONN", + "Ra minimum 800 \u03a9", + "maximum 1.2 k\u03a9" + ], "value_origin": "SPEC", - "typical": false, - "needed_document": "USB Type-C Cable and Connector Specification (not on file; Functional Test Spec Rev 0.91 references Table 4-15 / 4.4.2 without stating ohms or volts)" + "typical": false }, { "id": "usb-c-usb2-receptacle-cc", @@ -3025,7 +3418,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB Type-C Cable and Connector Specification (not on file; Functional Test Spec Rev 0.91 references Table 4-15 / 4.4.2 without stating ohms or volts)" + "needed_document": "USB Type-C Cable and Connector Specification Release 2.5, March 2026" }, { "id": "usb-c-usb2-receptacle-current_advertisement", @@ -3040,7 +3433,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB Type-C Cable and Connector Specification (not on file; Functional Test Spec Rev 0.91 references Table 4-15 / 4.4.2 without stating ohms or volts)" + "needed_document": "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 \u2014 not a single ampere)" }, { "id": "usb-c-usb2-receptacle-voltage", @@ -3055,7 +3448,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB Type-C Cable and Connector Specification (not on file; Functional Test Spec Rev 0.91 references Table 4-15 / 4.4.2 without stating ohms or volts)" + "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", @@ -3070,7 +3463,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Electrical Compliance Test Specification Version 1.08 April 2026 (recovered; this PCB limit is not stated in the CTS)" + "needed_document": "USB Type-C Cable and Connector Specification Release 2.5, March 2026" }, { "id": "usb-c-usb2-receptacle-electrical_thresholds", @@ -3085,7 +3478,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB 2.0 Electrical Compliance Test Specification Version 1.08 April 2026 (recovered; this PCB limit is not stated in the CTS)" + "needed_document": "USB Type-C Cable and Connector Specification Release 2.5, March 2026" }, { "id": "usb-c-usb2-receptacle-usb2_channel_requirements", @@ -3102,6 +3495,56 @@ "typical": false, "needed_document": "USB 2.0 Electrical Compliance Test Specification Version 1.08 April 2026 (recovered; this PCB limit is not stated in the CTS)" }, + { + "id": "usb-c-usb2-receptacle-rp_1a5", + "parameter": "rp_1a5", + "value_kind": "NUMERIC", + "mandatory": "MANDATORY", + "source_type": "CONNECTOR", + "source_class": "NORMATIVE", + "value": 22000.0, + "unit": "ohm", + "source": { + "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-27", + "page": "245" + }, + "conditions": [ + "1.5 A @ 5 V advertisement", + "resistor pull-up to 4.75\u20135.5 V", + "22 k\u03a9 \u00b15%" + ], + "value_origin": "SPEC", + "typical": false + }, + { + "id": "usb-c-usb2-receptacle-rp_3a", + "parameter": "rp_3a", + "value_kind": "NUMERIC", + "mandatory": "MANDATORY", + "source_type": "CONNECTOR", + "source_class": "NORMATIVE", + "value": 10000.0, + "unit": "ohm", + "source": { + "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-27", + "page": "245" + }, + "conditions": [ + "3.0 A @ 5 V advertisement", + "resistor pull-up to 4.75\u20135.5 V", + "10 k\u03a9 \u00b15%" + ], + "value_origin": "SPEC", + "typical": false + }, { "id": "usb-c-usb2-receptacle-gnd_ir_drop_cable", "parameter": "gnd_ir_drop_cable", @@ -3161,7 +3604,7 @@ "conditions": [], "value_origin": "SPEC", "typical": false, - "needed_document": "USB Type-C Cable and Connector Specification (not on file; Functional Test Spec Rev 0.91 references Table 4-15 / 4.4.2 without stating ohms or volts)" + "needed_document": "USB Type-C Cable and Connector Specification Release 2.5, March 2026" }, { "id": "usb-c-usb2-receptacle-superspeed_pairs", diff --git a/periscope/src/frontend/content/changelog.md b/periscope/src/frontend/content/changelog.md index 01149ce..6905633 100644 --- a/periscope/src/frontend/content/changelog.md +++ b/periscope/src/frontend/content/changelog.md @@ -2,6 +2,13 @@ What's new in Periscope. +## 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.75–5.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. + +- [Changed] `protocol_catalog.py` + `catalog.json`. +- [Changed] pytest `tests/pcb/test_protocol_pdf_pack.py`. + ## 2.74.0 — 2026-09-22 — Protocol packs from recovered PDFs (USB CTS, Type-C FTS, DVI 1.0, IEEE 802.3-2012 §2) NUMERIC constraints now carry title, revision, section/table, and page from the recovered PDFs. USB 2.0 HS fills data rate / rise-fall / 1.5 kΩ pull-up / DCR from Electrical CTS v1.08; Zdiff stays UNKNOWN (CTS does not state 90 Ω). Type-C Rp/Rd/VBUS volts stay UNKNOWN (Functional Test Spec points at Cable and Connector tables). DVI 1.0 is a separate protocol from HDMI. IEEE 802.3-2012 Section Two fills 100BASE-TX cabling 100 Ω / 100 m / isolation and 100 Mb/s; 10BASE-T Clause 14 and 1000BASE-T Clause 40 are not in Section Two. diff --git a/periscope/src/frontend/package.json b/periscope/src/frontend/package.json index 94bdfcc..db6d424 100644 --- a/periscope/src/frontend/package.json +++ b/periscope/src/frontend/package.json @@ -1,6 +1,6 @@ { "name": "periscope-web", - "version": "2.74.0", + "version": "2.75.0", "private": true, "scripts": { "sync-version": "node scripts/sync-version.mjs", diff --git a/tests/pcb/test_protocol_m6_m7.py b/tests/pcb/test_protocol_m6_m7.py index 7415c13..049be70 100644 --- a/tests/pcb/test_protocol_m6_m7.py +++ b/tests/pcb/test_protocol_m6_m7.py @@ -98,7 +98,8 @@ def test_usb2_and_usb_c_unknown_with_usbif_needed_document_no_90ohm(): assert c.needed_document assert "USB-IF" in c.needed_document or "specification" in c.needed_document.lower() or "Specification" in c.needed_document if p.logical_protocol_id == "usb-c" and c.parameter in {"rp", "rd"}: - assert c.value_kind == "UNKNOWN" + assert c.value_kind == "NUMERIC" + assert c.source and "Type-C" in (c.source.document or "") over = next(p for p in cat.physical_interfaces if p.id == "usb-c-usb2-receptacle") assert over.logical_protocol_id == "usb2-hs" assert over.connector == "Type-C" diff --git a/tests/pcb/test_protocol_pdf_pack.py b/tests/pcb/test_protocol_pdf_pack.py index 61b9d9e..bb8fc94 100644 --- a/tests/pcb/test_protocol_pdf_pack.py +++ b/tests/pcb/test_protocol_pdf_pack.py @@ -33,11 +33,11 @@ def test_usb_cts_hs_numeric_cited_no_zdiff_90(): hs = next(p for p in cat.physical_interfaces if p.id == "usb2-hs-dpair") by = {c.parameter: c for c in hs.constraints} _cite_ok(by["data_rate"]) - assert by["data_rate"].value == 480.0 + assert by["data_rate"].value == 480.00 assert by["data_rate"].unit == "Mb/s" - assert by["data_rate"].source.document == "USB 2.0 Electrical Compliance Test Specification" - assert "1.08" in by["data_rate"].source.revision - assert "EL_2" in (by["data_rate"].source.section or "") + assert by["data_rate"].source.document == "Universal Serial Bus Specification" + assert "2.0" in by["data_rate"].source.revision + assert by["data_rate"].source.section == "7.1.11" assert by["rise_time"].value == 300.0 assert by["fall_time"].value == 300.0 assert by["pull_up"].value == 1500.0 @@ -47,27 +47,45 @@ def test_usb_cts_hs_numeric_cited_no_zdiff_90(): for key in ( "data_rate", "rise_time", "fall_time", "pull_up", "dc_resistance", "dc_resistance_captive_cable_device", "dc_resistance_host_hub_downstream", + "cable_differential_impedance", "pcb_trace_nominal_zdiff", ): _cite_ok(by[key]) - assert by[key].source.organization == "USB-IF" + assert by["cable_differential_impedance"].value == 90.0 + assert by["cable_differential_impedance"].source_type == "CABLE" + assert by["pcb_trace_nominal_zdiff"].value == 90.0 + assert by["pcb_trace_nominal_zdiff"].mandatory == "RECOMMENDED" + assert by["pcb_trace_nominal_zdiff"].source_type == "PCB" z = by["differential_impedance"] assert z.value_kind == "UNKNOWN" assert z.value is None ls = next(p for p in cat.physical_interfaces if p.id == "usb2-ls-dpair") ls_rate = next(c for c in ls.constraints if c.parameter == "data_rate") - assert ls_rate.value_kind == "UNKNOWN" + _cite_ok(ls_rate) + assert ls_rate.value == 1.50 + fs = next(p for p in cat.physical_interfaces if p.id == "usb2-fs-dpair") + fs_rate = next(c for c in fs.constraints if c.parameter == "data_rate") + _cite_ok(fs_rate) + assert fs_rate.value == 12.000 blob = json.dumps(z.model_dump()) assert "90" not in blob -def test_type_c_rp_rd_unknown_fts_does_not_state_ohms(): +def test_type_c_rp_rd_from_cabcon_r25_vbus_volts_unknown(): cat = load_catalog() rec = next(p for p in cat.physical_interfaces if p.id == "usb-c-receptacle") by = {c.parameter: c for c in rec.constraints} - for p in ("rp", "rd", "ra", "cc"): - assert by[p].value_kind == "UNKNOWN" - assert "Cable and Connector" in (by[p].needed_document or "") + _cite_ok(by["rp"]) + assert by["rp"].value == 56000.0 + assert by["rp"].source.table == "Table 4-27" + assert by["rp"].source_type == "CONNECTOR" + _cite_ok(by["rd"]) + assert by["rd"].value == 5100.0 + assert by["rd"].source.table == "Table 4-28" + _cite_ok(by["ra"]) + assert by["ra"].value == 800.0 + assert by["ra"].source_type == "CABLE" assert by["voltage"].value_kind == "UNKNOWN" + assert "vSafe5V" in (by["voltage"].needed_document or "") _cite_ok(by["gnd_ir_drop_cable"]) assert by["gnd_ir_drop_cable"].value == 250.0 assert by["gnd_ir_drop_cable"].source_type == "CABLE"