Fill 10BASE-T numbers from IEEE 802.3-2015 Section One Clause 14 (2.77.0).

Cable 100 Ω / 100 m / 11.5 dB stay CABLE. L2 PCB Zdiff UNKNOWN. 1000BASE-T not in this volume.
This commit is contained in:
2026-09-22 18:00:10 +02:00
parent 421f659054
commit 8a93ffc1c5
6 changed files with 359 additions and 86 deletions
@@ -588,12 +588,16 @@ DOC_USB_PD_VSAFE = (
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"
REV_IEEE_2012 = "2012"
DOC_IEEE_2015 = "IEEE Std 802.3-2015 IEEE Standard for Ethernet"
REV_IEEE_2015 = "2015"
ORG_IEEE = "IEEE"
DOC_IEEE_S1_C14 = (
"IEEE Std 802.3-2012 Section One Clause 14 (10BASE-T; not in Section Two)"
"IEEE Std 802.3-2015 Section One Clause 14 (this 10BASE-T PCB field is not a single "
"number here; 100 Ω is twisted-pair link-segment / 100 Ω test load, not PCB Zdiff)"
)
DOC_IEEE_S3_C40 = (
"IEEE Std 802.3-2012 Section Three Clause 40 (1000BASE-T; not in Section Two)"
"IEEE Std 802.3-2015 Section One does not contain Clause 40 (1000BASE-T); "
"need 802.3 Section Three"
)
DOC_IEEE_S3_C36 = (
"IEEE Std 802.3-2012 Section Three (1000BASE-X; not in Section Two)"
@@ -1209,6 +1213,72 @@ def build_m0_catalog() -> dict[str, Any]:
],
))
continue
if lid == "10base-t" and p == "data_rate":
out.append(_num(
pid, p, 10.0, "Mb/s",
document=DOC_IEEE_2015, organization=ORG_IEEE,
revision=REV_IEEE_2015, section="14.1.1", page="374",
conditions=["type 10BASE-T including 10BASE-Te", "Section One Clause 14"],
))
continue
if lid == "10base-t" and p == "maximum_channel_length":
out.append(_num(
pid, p, 100.0, "m",
document=DOC_IEEE_2015, organization=ORG_IEEE,
revision=REV_IEEE_2015, section="14.1.1", page="374",
source_type="CABLE",
conditions=[
"0 m to at least 100 m of twisted pair without a repeater",
"100 m is the design objective (14.1.1.3); longer permitted if 14.4 is met",
"not a PCB trace length",
],
))
continue
if lid == "10base-t" and p == "cable_channel":
out.append(_num(
pid, p, 100.0, "ohm",
document=DOC_IEEE_2015, organization=ORG_IEEE,
revision=REV_IEEE_2015, section="14.4.2.2", page="399",
source_type="CABLE",
conditions=[
"twisted-pair differential characteristic impedance 100 Ω ± 15 Ω (116 MHz)",
"3 m pair: 85111 Ω at 5.010 MHz",
"not a PCB trace differential impedance",
"not 1000BASE-T (Clause 40 is not in Section One)",
],
))
continue
if lid == "10base-t" and p == "insertion_loss":
out.append(_num(
pid, p, 11.5, "dB",
document=DOC_IEEE_2015, organization=ORG_IEEE,
revision=REV_IEEE_2015, section="14.4.2.1", page="399",
source_type="CABLE",
conditions=[
"simplex link segment maximum, 5.010 MHz",
"10BASE-T MAU that is not 10BASE-Te (Te max is 8.5 dB)",
],
))
continue
if lid == "10base-t" and p == "return_loss":
out.append(_num(
pid, p, 15.0, "dB",
document=DOC_IEEE_2015, organization=ORG_IEEE,
revision=REV_IEEE_2015, section="14.3.1.2.2", page="394",
source_type="PCB",
conditions=[
"MAU TD circuit: reflection at least 15 dB below incident",
"5.010 MHz, vs simplex link in 14.4.2.2 range",
"not a PCB trace Zdiff number",
],
))
continue
if lid == "10base-t" and p in {
"differential_impedance", "impedance_tolerance", "termination",
}:
nd = DOC_IEEE_S1_C14
out.append(_c(pid, p, "UNKNOWN", needed_document=nd))
continue
if lid == "100base-fx" and p == "data_rate":
out.append(_num(
pid, p, 100.0, "Mb/s",
@@ -1251,6 +1321,45 @@ def build_m0_catalog() -> dict[str, Any]:
"1500 V rms at 50 Hz to 60 Hz for 60 s",
],
))
if lid == "10base-t":
out.append(_num(
pid, "isolation_after_test", 2.0e6, "ohm",
document=DOC_IEEE_2015, organization=ORG_IEEE,
revision=REV_IEEE_2015, section="14.3.1.1", page="389",
conditions=[
"MAU MDI that is not a PI",
"resistance after isolation test, measured at 500 V dc",
"minimum 2 MΩ",
],
))
out.append(_num(
pid, "isolation_rms", 1500.0, "V",
document=DOC_IEEE_2015, organization=ORG_IEEE,
revision=REV_IEEE_2015, section="14.3.1.1 a", page="388",
mandatory="OPTIONAL",
conditions=[
"one of three allowed isolation tests",
"1500 V rms at 50 Hz to 60 Hz for 60 s",
],
))
out.append(_num(
pid, "peak_differential_output", 2.2, "V",
document=DOC_IEEE_2015, organization=ORG_IEEE,
revision=REV_IEEE_2015, section="14.3.1.2.1", page="390",
source_type="PCB",
conditions=[
"TD circuit peak differential, 100 Ω resistive load",
"10BASE-T that is not 10BASE-Te: 2.22.8 V",
"10BASE-Te is 1.541.96 V (not packed here)",
],
))
out.append(_num(
pid, "link_segment_delay_max", 1000.0, "ns",
document=DOC_IEEE_2015, organization=ORG_IEEE,
revision=REV_IEEE_2015, section="14.4.2.4", page="400",
source_type="CABLE",
conditions=["maximum propagation delay of a link segment", "pair also ≤ 5.7 ns/m"],
))
return out
def _hdmi_cons(pid: str) -> list[dict[str, Any]]:
@@ -1461,10 +1570,10 @@ def build_m0_catalog() -> dict[str, Any]:
ETH_CHECKS, _eth_cons(pid, lid),
connector=conn, hints=hints,
notes=(
"IEEE 802.3-2015 Section One (Clause 14 10BASE-T) and "
"IEEE 802.3-2012 Section Two (Clauses 2133) on file. "
"10BASE-T is Clause 14 (Section One, not here). "
"1000BASE-T is Clause 40 (Section Three, not here). "
"100 Ω in Clause 25 is cabling/link-segment, not PCB Z. "
"100 Ω in Clause 14/25 is cabling/link-segment, not PCB Z. "
"Not auto from RJ45. IEEE vs PHY vs PCB vs magnetics are distinct."
),
incomplete=True,
@@ -4157,17 +4157,26 @@
{
"id": "10base-t-mdi-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": 10.0,
"unit": "Mb/s",
"source": {
"document": "IEEE Std 802.3-2015 IEEE Standard for Ethernet",
"organization": "IEEE",
"revision": "2015",
"section": "14.1.1",
"table": null,
"page": "374"
},
"conditions": [
"type 10BASE-T including 10BASE-Te",
"Section One Clause 14"
],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section One Clause 14 (10BASE-T; not in Section Two)"
"typical": false
},
{
"id": "10base-t-mdi-signaling",
@@ -4182,7 +4191,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section One Clause 14 (10BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One Clause 14 (this 10BASE-T PCB field is not a single number here; 100 \u03a9 is twisted-pair link-segment / 100 \u03a9 test load, not PCB Zdiff)"
},
{
"id": "10base-t-mdi-differential_impedance",
@@ -4197,7 +4206,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section One Clause 14 (10BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One Clause 14 (this 10BASE-T PCB field is not a single number here; 100 \u03a9 is twisted-pair link-segment / 100 \u03a9 test load, not PCB Zdiff)"
},
{
"id": "10base-t-mdi-impedance_tolerance",
@@ -4212,7 +4221,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section One Clause 14 (10BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One Clause 14 (this 10BASE-T PCB field is not a single number here; 100 \u03a9 is twisted-pair link-segment / 100 \u03a9 test load, not PCB Zdiff)"
},
{
"id": "10base-t-mdi-intra_pair_skew",
@@ -4227,7 +4236,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section One Clause 14 (10BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One Clause 14 (this 10BASE-T PCB field is not a single number here; 100 \u03a9 is twisted-pair link-segment / 100 \u03a9 test load, not PCB Zdiff)"
},
{
"id": "10base-t-mdi-pair_to_pair_skew",
@@ -4242,52 +4251,81 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section One Clause 14 (10BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One Clause 14 (this 10BASE-T PCB field is not a single number here; 100 \u03a9 is twisted-pair link-segment / 100 \u03a9 test load, not PCB Zdiff)"
},
{
"id": "10base-t-mdi-maximum_channel_length",
"parameter": "maximum_channel_length",
"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": 100.0,
"unit": "m",
"source": {
"document": "IEEE Std 802.3-2015 IEEE Standard for Ethernet",
"organization": "IEEE",
"revision": "2015",
"section": "14.1.1",
"table": null,
"page": "374"
},
"conditions": [
"0 m to at least 100 m of twisted pair without a repeater",
"100 m is the design objective (14.1.1.3); longer permitted if 14.4 is met",
"not a PCB trace length"
],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section One Clause 14 (10BASE-T; not in Section Two)"
"typical": false
},
{
"id": "10base-t-mdi-insertion_loss",
"parameter": "insertion_loss",
"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": 11.5,
"unit": "dB",
"source": {
"document": "IEEE Std 802.3-2015 IEEE Standard for Ethernet",
"organization": "IEEE",
"revision": "2015",
"section": "14.4.2.1",
"table": null,
"page": "399"
},
"conditions": [
"simplex link segment maximum, 5.0\u201310 MHz",
"10BASE-T MAU that is not 10BASE-Te (Te max is 8.5 dB)"
],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section One Clause 14 (10BASE-T; not in Section Two)"
"typical": false
},
{
"id": "10base-t-mdi-return_loss",
"parameter": "return_loss",
"value_kind": "UNKNOWN",
"value_kind": "NUMERIC",
"mandatory": "MANDATORY",
"source_type": "STANDARD",
"source_type": "PCB",
"source_class": "NORMATIVE",
"value": null,
"unit": null,
"source": null,
"conditions": [],
"value": 15.0,
"unit": "dB",
"source": {
"document": "IEEE Std 802.3-2015 IEEE Standard for Ethernet",
"organization": "IEEE",
"revision": "2015",
"section": "14.3.1.2.2",
"table": null,
"page": "394"
},
"conditions": [
"MAU TD circuit: reflection at least 15 dB below incident",
"5.0\u201310 MHz, vs simplex link in 14.4.2.2 range",
"not a PCB trace Zdiff number"
],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section One Clause 14 (10BASE-T; not in Section Two)"
"typical": false
},
{
"id": "10base-t-mdi-crosstalk",
@@ -4302,7 +4340,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section One Clause 14 (10BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One Clause 14 (this 10BASE-T PCB field is not a single number here; 100 \u03a9 is twisted-pair link-segment / 100 \u03a9 test load, not PCB Zdiff)"
},
{
"id": "10base-t-mdi-magnetics_requirements",
@@ -4332,7 +4370,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section One Clause 14 (10BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One Clause 14 (this 10BASE-T PCB field is not a single number here; 100 \u03a9 is twisted-pair link-segment / 100 \u03a9 test load, not PCB Zdiff)"
},
{
"id": "10base-t-mdi-common_mode",
@@ -4347,7 +4385,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section One Clause 14 (10BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One Clause 14 (this 10BASE-T PCB field is not a single number here; 100 \u03a9 is twisted-pair link-segment / 100 \u03a9 test load, not PCB Zdiff)"
},
{
"id": "10base-t-mdi-connector_requirements",
@@ -4362,7 +4400,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section One Clause 14 (10BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One Clause 14 (this 10BASE-T PCB field is not a single number here; 100 \u03a9 is twisted-pair link-segment / 100 \u03a9 test load, not PCB Zdiff)"
},
{
"id": "10base-t-mdi-phy_requirements",
@@ -4392,7 +4430,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section One Clause 14 (10BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One Clause 14 (this 10BASE-T PCB field is not a single number here; 100 \u03a9 is twisted-pair link-segment / 100 \u03a9 test load, not PCB Zdiff)"
},
{
"id": "10base-t-mdi-vias",
@@ -4407,7 +4445,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section One Clause 14 (10BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One Clause 14 (this 10BASE-T PCB field is not a single number here; 100 \u03a9 is twisted-pair link-segment / 100 \u03a9 test load, not PCB Zdiff)"
},
{
"id": "10base-t-mdi-topology",
@@ -4422,25 +4460,134 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section One Clause 14 (10BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One Clause 14 (this 10BASE-T PCB field is not a single number here; 100 \u03a9 is twisted-pair link-segment / 100 \u03a9 test load, not PCB Zdiff)"
},
{
"id": "10base-t-mdi-cable_channel",
"parameter": "cable_channel",
"value_kind": "UNKNOWN",
"value_kind": "NUMERIC",
"mandatory": "MANDATORY",
"source_type": "CABLE",
"source_class": "NORMATIVE",
"value": 100.0,
"unit": "ohm",
"source": {
"document": "IEEE Std 802.3-2015 IEEE Standard for Ethernet",
"organization": "IEEE",
"revision": "2015",
"section": "14.4.2.2",
"table": null,
"page": "399"
},
"conditions": [
"twisted-pair differential characteristic impedance 100 \u03a9 \u00b1 15 \u03a9 (1\u201316 MHz)",
"3 m pair: 85\u2013111 \u03a9 at 5.0\u201310 MHz",
"not a PCB trace differential impedance",
"not 1000BASE-T (Clause 40 is not in Section One)"
],
"value_origin": "SPEC",
"typical": false
},
{
"id": "10base-t-mdi-isolation_after_test",
"parameter": "isolation_after_test",
"value_kind": "NUMERIC",
"mandatory": "MANDATORY",
"source_type": "STANDARD",
"source_class": "NORMATIVE",
"value": null,
"unit": null,
"source": null,
"conditions": [],
"value": 2000000.0,
"unit": "ohm",
"source": {
"document": "IEEE Std 802.3-2015 IEEE Standard for Ethernet",
"organization": "IEEE",
"revision": "2015",
"section": "14.3.1.1",
"table": null,
"page": "389"
},
"conditions": [
"MAU MDI that is not a PI",
"resistance after isolation test, measured at 500 V dc",
"minimum 2 M\u03a9"
],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section One Clause 14 (10BASE-T; not in Section Two)"
"typical": false
},
{
"id": "10base-t-mdi-isolation_rms",
"parameter": "isolation_rms",
"value_kind": "NUMERIC",
"mandatory": "OPTIONAL",
"source_type": "STANDARD",
"source_class": "NORMATIVE",
"value": 1500.0,
"unit": "V",
"source": {
"document": "IEEE Std 802.3-2015 IEEE Standard for Ethernet",
"organization": "IEEE",
"revision": "2015",
"section": "14.3.1.1 a",
"table": null,
"page": "388"
},
"conditions": [
"one of three allowed isolation tests",
"1500 V rms at 50 Hz to 60 Hz for 60 s"
],
"value_origin": "SPEC",
"typical": false
},
{
"id": "10base-t-mdi-peak_differential_output",
"parameter": "peak_differential_output",
"value_kind": "NUMERIC",
"mandatory": "MANDATORY",
"source_type": "PCB",
"source_class": "NORMATIVE",
"value": 2.2,
"unit": "V",
"source": {
"document": "IEEE Std 802.3-2015 IEEE Standard for Ethernet",
"organization": "IEEE",
"revision": "2015",
"section": "14.3.1.2.1",
"table": null,
"page": "390"
},
"conditions": [
"TD circuit peak differential, 100 \u03a9 resistive load",
"10BASE-T that is not 10BASE-Te: 2.2\u20132.8 V",
"10BASE-Te is 1.54\u20131.96 V (not packed here)"
],
"value_origin": "SPEC",
"typical": false
},
{
"id": "10base-t-mdi-link_segment_delay_max",
"parameter": "link_segment_delay_max",
"value_kind": "NUMERIC",
"mandatory": "MANDATORY",
"source_type": "CABLE",
"source_class": "NORMATIVE",
"value": 1000.0,
"unit": "ns",
"source": {
"document": "IEEE Std 802.3-2015 IEEE Standard for Ethernet",
"organization": "IEEE",
"revision": "2015",
"section": "14.4.2.4",
"table": null,
"page": "400"
},
"conditions": [
"maximum propagation delay of a link segment",
"pair also \u2264 5.7 ns/m"
],
"value_origin": "SPEC",
"typical": false
}
],
"notes": "IEEE 802.3-2012 Section Two (Clauses 21\u201333) on file. 10BASE-T is Clause 14 (Section One, not here). 1000BASE-T is Clause 40 (Section Three, not here). 100 \u03a9 in Clause 25 is cabling/link-segment, not PCB Z. Not auto from RJ45. IEEE vs PHY vs PCB vs magnetics are distinct.",
"notes": "IEEE 802.3-2015 Section One (Clause 14 10BASE-T) and IEEE 802.3-2012 Section Two (Clauses 21\u201333) on file. 1000BASE-T is Clause 40 (Section Three, not here). 100 \u03a9 in Clause 14/25 is cabling/link-segment, not PCB Z. Not auto from RJ45. IEEE vs PHY vs PCB vs magnetics are distinct.",
"incomplete": true
},
{
@@ -4841,7 +4988,7 @@
"typical": false
}
],
"notes": "IEEE 802.3-2012 Section Two (Clauses 21\u201333) on file. 10BASE-T is Clause 14 (Section One, not here). 1000BASE-T is Clause 40 (Section Three, not here). 100 \u03a9 in Clause 25 is cabling/link-segment, not PCB Z. Not auto from RJ45. IEEE vs PHY vs PCB vs magnetics are distinct.",
"notes": "IEEE 802.3-2015 Section One (Clause 14 10BASE-T) and IEEE 802.3-2012 Section Two (Clauses 21\u201333) on file. 1000BASE-T is Clause 40 (Section Three, not here). 100 \u03a9 in Clause 14/25 is cabling/link-segment, not PCB Z. Not auto from RJ45. IEEE vs PHY vs PCB vs magnetics are distinct.",
"incomplete": true
},
{
@@ -4891,7 +5038,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section Three Clause 40 (1000BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One does not contain Clause 40 (1000BASE-T); need 802.3 Section Three"
},
{
"id": "1000base-t-mdi-signaling",
@@ -4906,7 +5053,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section Three Clause 40 (1000BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One does not contain Clause 40 (1000BASE-T); need 802.3 Section Three"
},
{
"id": "1000base-t-mdi-differential_impedance",
@@ -4921,7 +5068,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section Three Clause 40 (1000BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One does not contain Clause 40 (1000BASE-T); need 802.3 Section Three"
},
{
"id": "1000base-t-mdi-impedance_tolerance",
@@ -4936,7 +5083,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section Three Clause 40 (1000BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One does not contain Clause 40 (1000BASE-T); need 802.3 Section Three"
},
{
"id": "1000base-t-mdi-intra_pair_skew",
@@ -4951,7 +5098,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section Three Clause 40 (1000BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One does not contain Clause 40 (1000BASE-T); need 802.3 Section Three"
},
{
"id": "1000base-t-mdi-pair_to_pair_skew",
@@ -4966,7 +5113,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section Three Clause 40 (1000BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One does not contain Clause 40 (1000BASE-T); need 802.3 Section Three"
},
{
"id": "1000base-t-mdi-maximum_channel_length",
@@ -4981,7 +5128,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section Three Clause 40 (1000BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One does not contain Clause 40 (1000BASE-T); need 802.3 Section Three"
},
{
"id": "1000base-t-mdi-insertion_loss",
@@ -4996,7 +5143,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section Three Clause 40 (1000BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One does not contain Clause 40 (1000BASE-T); need 802.3 Section Three"
},
{
"id": "1000base-t-mdi-return_loss",
@@ -5011,7 +5158,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section Three Clause 40 (1000BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One does not contain Clause 40 (1000BASE-T); need 802.3 Section Three"
},
{
"id": "1000base-t-mdi-crosstalk",
@@ -5026,7 +5173,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section Three Clause 40 (1000BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One does not contain Clause 40 (1000BASE-T); need 802.3 Section Three"
},
{
"id": "1000base-t-mdi-magnetics_requirements",
@@ -5056,7 +5203,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section Three Clause 40 (1000BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One does not contain Clause 40 (1000BASE-T); need 802.3 Section Three"
},
{
"id": "1000base-t-mdi-common_mode",
@@ -5071,7 +5218,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section Three Clause 40 (1000BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One does not contain Clause 40 (1000BASE-T); need 802.3 Section Three"
},
{
"id": "1000base-t-mdi-connector_requirements",
@@ -5086,7 +5233,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section Three Clause 40 (1000BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One does not contain Clause 40 (1000BASE-T); need 802.3 Section Three"
},
{
"id": "1000base-t-mdi-phy_requirements",
@@ -5116,7 +5263,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section Three Clause 40 (1000BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One does not contain Clause 40 (1000BASE-T); need 802.3 Section Three"
},
{
"id": "1000base-t-mdi-vias",
@@ -5131,7 +5278,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section Three Clause 40 (1000BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One does not contain Clause 40 (1000BASE-T); need 802.3 Section Three"
},
{
"id": "1000base-t-mdi-topology",
@@ -5146,7 +5293,7 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section Three Clause 40 (1000BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One does not contain Clause 40 (1000BASE-T); need 802.3 Section Three"
},
{
"id": "1000base-t-mdi-cable_channel",
@@ -5161,10 +5308,10 @@
"conditions": [],
"value_origin": "SPEC",
"typical": false,
"needed_document": "IEEE Std 802.3-2012 Section Three Clause 40 (1000BASE-T; not in Section Two)"
"needed_document": "IEEE Std 802.3-2015 Section One does not contain Clause 40 (1000BASE-T); need 802.3 Section Three"
}
],
"notes": "IEEE 802.3-2012 Section Two (Clauses 21\u201333) on file. 10BASE-T is Clause 14 (Section One, not here). 1000BASE-T is Clause 40 (Section Three, not here). 100 \u03a9 in Clause 25 is cabling/link-segment, not PCB Z. Not auto from RJ45. IEEE vs PHY vs PCB vs magnetics are distinct.",
"notes": "IEEE 802.3-2015 Section One (Clause 14 10BASE-T) and IEEE 802.3-2012 Section Two (Clauses 21\u201333) on file. 1000BASE-T is Clause 40 (Section Three, not here). 100 \u03a9 in Clause 14/25 is cabling/link-segment, not PCB Z. Not auto from RJ45. IEEE vs PHY vs PCB vs magnetics are distinct.",
"incomplete": true
},
{
@@ -5486,7 +5633,7 @@
"needed_document": "IEEE 802.3bz / later 802.3 2.5GBASE-T clause (not in 2012 Section Two)"
}
],
"notes": "IEEE 802.3-2012 Section Two (Clauses 21\u201333) on file. 10BASE-T is Clause 14 (Section One, not here). 1000BASE-T is Clause 40 (Section Three, not here). 100 \u03a9 in Clause 25 is cabling/link-segment, not PCB Z. Not auto from RJ45. IEEE vs PHY vs PCB vs magnetics are distinct.",
"notes": "IEEE 802.3-2015 Section One (Clause 14 10BASE-T) and IEEE 802.3-2012 Section Two (Clauses 21\u201333) on file. 1000BASE-T is Clause 40 (Section Three, not here). 100 \u03a9 in Clause 14/25 is cabling/link-segment, not PCB Z. Not auto from RJ45. IEEE vs PHY vs PCB vs magnetics are distinct.",
"incomplete": true
},
{
@@ -5807,7 +5954,7 @@
"needed_document": "IEEE 802.3bz / later 802.3 5GBASE-T clause (not in 2012 Section Two)"
}
],
"notes": "IEEE 802.3-2012 Section Two (Clauses 21\u201333) on file. 10BASE-T is Clause 14 (Section One, not here). 1000BASE-T is Clause 40 (Section Three, not here). 100 \u03a9 in Clause 25 is cabling/link-segment, not PCB Z. Not auto from RJ45. IEEE vs PHY vs PCB vs magnetics are distinct.",
"notes": "IEEE 802.3-2015 Section One (Clause 14 10BASE-T) and IEEE 802.3-2012 Section Two (Clauses 21\u201333) on file. 1000BASE-T is Clause 40 (Section Three, not here). 100 \u03a9 in Clause 14/25 is cabling/link-segment, not PCB Z. Not auto from RJ45. IEEE vs PHY vs PCB vs magnetics are distinct.",
"incomplete": true
},
{
@@ -6128,7 +6275,7 @@
"needed_document": "IEEE Std 802.3-2012 Section Four Clause 55 (10GBASE-T; not in Section Two)"
}
],
"notes": "IEEE 802.3-2012 Section Two (Clauses 21\u201333) on file. 10BASE-T is Clause 14 (Section One, not here). 1000BASE-T is Clause 40 (Section Three, not here). 100 \u03a9 in Clause 25 is cabling/link-segment, not PCB Z. Not auto from RJ45. IEEE vs PHY vs PCB vs magnetics are distinct.",
"notes": "IEEE 802.3-2015 Section One (Clause 14 10BASE-T) and IEEE 802.3-2012 Section Two (Clauses 21\u201333) on file. 1000BASE-T is Clause 40 (Section Three, not here). 100 \u03a9 in Clause 14/25 is cabling/link-segment, not PCB Z. Not auto from RJ45. IEEE vs PHY vs PCB vs magnetics are distinct.",
"incomplete": true
},
{
@@ -6449,7 +6596,7 @@
"needed_document": "SGMII is not an IEEE 802.3 MDI clause in 2012 Section Two"
}
],
"notes": "IEEE 802.3-2012 Section Two (Clauses 21\u201333) on file. 10BASE-T is Clause 14 (Section One, not here). 1000BASE-T is Clause 40 (Section Three, not here). 100 \u03a9 in Clause 25 is cabling/link-segment, not PCB Z. Not auto from RJ45. IEEE vs PHY vs PCB vs magnetics are distinct.",
"notes": "IEEE 802.3-2015 Section One (Clause 14 10BASE-T) and IEEE 802.3-2012 Section Two (Clauses 21\u201333) on file. 1000BASE-T is Clause 40 (Section Three, not here). 100 \u03a9 in Clause 14/25 is cabling/link-segment, not PCB Z. Not auto from RJ45. IEEE vs PHY vs PCB vs magnetics are distinct.",
"incomplete": true
},
{
@@ -6771,7 +6918,7 @@
"needed_document": "IEEE Std 802.3-2012 Section Three (1000BASE-X; not in Section Two)"
}
],
"notes": "IEEE 802.3-2012 Section Two (Clauses 21\u201333) on file. 10BASE-T is Clause 14 (Section One, not here). 1000BASE-T is Clause 40 (Section Three, not here). 100 \u03a9 in Clause 25 is cabling/link-segment, not PCB Z. Not auto from RJ45. IEEE vs PHY vs PCB vs magnetics are distinct.",
"notes": "IEEE 802.3-2015 Section One (Clause 14 10BASE-T) and IEEE 802.3-2012 Section Two (Clauses 21\u201333) on file. 1000BASE-T is Clause 40 (Section Three, not here). 100 \u03a9 in Clause 14/25 is cabling/link-segment, not PCB Z. Not auto from RJ45. IEEE vs PHY vs PCB vs magnetics are distinct.",
"incomplete": true
},
{
@@ -7102,7 +7249,7 @@
"needed_document": "ISO/IEC 9314-3:1990 fiber-PMD (incorporated by IEEE 802.3-2012 Clause 26; optical MDI, not copper PCB ohms)"
}
],
"notes": "IEEE 802.3-2012 Section Two (Clauses 21\u201333) on file. 10BASE-T is Clause 14 (Section One, not here). 1000BASE-T is Clause 40 (Section Three, not here). 100 \u03a9 in Clause 25 is cabling/link-segment, not PCB Z. Not auto from RJ45. IEEE vs PHY vs PCB vs magnetics are distinct.",
"notes": "IEEE 802.3-2015 Section One (Clause 14 10BASE-T) and IEEE 802.3-2012 Section Two (Clauses 21\u201333) on file. 1000BASE-T is Clause 40 (Section Three, not here). 100 \u03a9 in Clause 14/25 is cabling/link-segment, not PCB Z. Not auto from RJ45. IEEE vs PHY vs PCB vs magnetics are distinct.",
"incomplete": true
},
{
@@ -7424,7 +7571,7 @@
"needed_document": "IEEE 802.3 10GBASE-R clauses (not in 2012 Section Two)"
}
],
"notes": "IEEE 802.3-2012 Section Two (Clauses 21\u201333) on file. 10BASE-T is Clause 14 (Section One, not here). 1000BASE-T is Clause 40 (Section Three, not here). 100 \u03a9 in Clause 25 is cabling/link-segment, not PCB Z. Not auto from RJ45. IEEE vs PHY vs PCB vs magnetics are distinct.",
"notes": "IEEE 802.3-2015 Section One (Clause 14 10BASE-T) and IEEE 802.3-2012 Section Two (Clauses 21\u201333) on file. 1000BASE-T is Clause 40 (Section Three, not here). 100 \u03a9 in Clause 14/25 is cabling/link-segment, not PCB Z. Not auto from RJ45. IEEE vs PHY vs PCB vs magnetics are distinct.",
"incomplete": true
},
{
@@ -2,6 +2,13 @@
What's new in Periscope.
## 2.77.0 — 2026-09-22 — 10BASE-T from IEEE 802.3-2015 Section One
IEEE Std 802.3-2015 Section One Clause 14 fills 10BASE-T: 10 Mb/s, 100 m design-objective link, cable 100 Ω ± 15 Ω, 11.5 dB link insertion loss, MAU TD return loss 15 dB, isolation 2 MΩ / 1500 V rms, TD peak 2.2 V. Cable 100 Ω is **CABLE**, not L2 PCB Zdiff. 1000BASE-T (Clause 40) is not in this volume.
- [Changed] `protocol_catalog.py` + `catalog.json`.
- [Changed] pytest `tests/pcb/test_protocol_pdf_pack.py`, `test_protocol_m6_m7.py`.
## 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.
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "periscope-web",
"version": "2.76.0",
"version": "2.77.0",
"private": true,
"scripts": {
"sync-version": "node scripts/sync-version.mjs",
+1 -1
View File
@@ -209,7 +209,7 @@ def test_mini_hdmi_is_connector_not_protocol_id():
def test_ethernet_hdmi_skeletons_unknown_needed_document():
cat = load_catalog()
for lid in (
"10base-t", "1000base-t", "2.5gbase-t", "5gbase-t",
"1000base-t", "2.5gbase-t", "5gbase-t",
"10gbase-t", "sgmii", "1000base-x", "10gbase-r",
"hdmi-1.4", "hdmi-2.0", "hdmi-frl",
):
+13 -3
View File
@@ -190,13 +190,23 @@ def test_ieee8023_section2_100base_tx_not_10base_or_1000():
assert z.value_kind == "UNKNOWN"
assert "TP-PMD" in (z.needed_document or "")
ten = next(p for p in cat.physical_interfaces if p.id == "10base-t-mdi")
tdr = next(c for c in ten.constraints if c.parameter == "data_rate")
assert tdr.value_kind == "UNKNOWN"
assert "Clause 14" in (tdr.needed_document or "")
tby = {c.parameter: c for c in ten.constraints}
_cite_ok(tby["data_rate"])
assert tby["data_rate"].value == 10.0
assert tby["data_rate"].source.revision == "2015"
assert tby["data_rate"].source.section == "14.1.1"
assert tby["data_rate"].source.page == "374"
_cite_ok(tby["cable_channel"])
assert tby["cable_channel"].value == 100.0
assert tby["cable_channel"].source_type == "CABLE"
assert tby["cable_channel"].source.section == "14.4.2.2"
assert tby["differential_impedance"].value_kind == "UNKNOWN"
assert "PCB" in (tby["differential_impedance"].needed_document or "")
gbe = next(p for p in cat.physical_interfaces if p.id == "1000base-t-mdi")
gdr = next(c for c in gbe.constraints if c.parameter == "data_rate")
assert gdr.value_kind == "UNKNOWN"
assert "Clause 40" in (gdr.needed_document or "")
assert gdr.value is None
fx = next(p for p in cat.physical_interfaces if p.id == "100base-fx-pcb")
fxr = next(c for c in fx.constraints if c.parameter == "data_rate")
_cite_ok(fxr)