Interne und externe Kalibrierung
Eine Photodiode gibt kein dBm aus, und ein Thermistor gibt kein °C aus. Irgendwo muss der rohe Sensorwert in einen technischen Wert umgewandelt werden — und SFF-8472 erlaubt, dass das entweder im Modul oder auf dem Host geschieht, anhand von Konstanten, die das Modul liefert. Ein Fehler dabei ist der übliche Grund, warum ein Switch absurde DDM-Werte für ein einwandfrei funktionierendes Modul anzeigt.
Zwei Kalibrierungsmodi
| Modus | Deklariert durch | Wer umrechnet | Was die Monitor-Bytes enthalten |
|---|---|---|---|
| Intern | A0h Byte 92 Bit 5 | der Mikrocontroller des Moduls | Endwerte in Standardeinheiten (1/256 °C, 100 µV, 2 µA, 0,1 µW) |
| Extern | A0h Byte 92 Bit 4 | der Host | rohe A/D-Zählwerte; der Host wendet Konstanten aus A2h 56–95 an |
Fast jedes moderne Modul ist intern kalibriert. Extern kalibrierte Module sind ältere oder kostenoptimierte Designs; ihre Werte lesen sich als Datenmüll auf Hosts, die die Umrechnung überspringen.
Externe Kalibrierungskonstanten — A2h Bytes 56–95
| Bytes | Konstante | Format | Gilt für |
|---|---|---|---|
| 56–75 | Rx_PWR(4) … Rx_PWR(0) | fünf IEEE-754-Gleitkommazahlen einfacher Genauigkeit | Rx-Leistung (Polynom 4. Ordnung) |
| 76–77 | Tx_I-Steigung | vorzeichenloses Festkomma 8.8 | Tx-Bias |
| 78–79 | Tx_I-Offset | vorzeichenbehaftet 16-Bit | Tx-Bias |
| 80–81 | Tx_PWR-Steigung | vorzeichenlos 8.8 | Tx-Leistung |
| 82–83 | Tx_PWR-Offset | vorzeichenbehaftet 16-Bit | Tx-Leistung |
| 84–85 | T-Steigung | vorzeichenlos 8.8 | Temperatur |
| 86–87 | T-Offset | vorzeichenbehaftet 16-Bit | Temperatur |
| 88–89 | V-Steigung | vorzeichenlos 8.8 | Vcc |
| 90–91 | V-Offset | vorzeichenbehaftet 16-Bit | Vcc |
| 92–94 | reserviert | — | — |
| 95 | CC_DMI | Prüfsumme über Bytes 0–94 | — |
Die Umrechnungsformeln
Rx_PWR (µW) = Rx4·raw⁴ + Rx3·raw³ + Rx2·raw² + Rx1·raw + Rx0
Tx_I (µA) = Tx_I_slope · raw + Tx_I_offset
Tx_PWR (0.1 µW) = Tx_PWR_slope · raw + Tx_PWR_offset
T (1/256 °C)= T_slope · raw + T_offset
V (100 µV) = V_slope · raw + V_offset
Bei einem intern kalibrierten Modul werden die Konstanten ignoriert; viele Hersteller füllen sie trotzdem mit Identitätswerten (Steigung 1,0, Offset 0, Rx-Polynom 0,0,0,1,0), damit ein Host, der sie dennoch anwendet, das richtige Ergebnis erhält.
Mittelwert vs. OMA
A0h Byte 92 Bit 3 gibt an, wie die Rx-Leistung ausgedrückt wird: mittlere Leistung (1) oder OMA — optische Modulationsamplitude (0). Fast alle Module melden die mittlere Leistung; OMA erscheint bei manchen Multimode-Ethernet-Optiken, bei denen der Standard die Empfindlichkeit so spezifiziert. Ein OMA-Wert mit einer Mittelleistungs-Empfindlichkeitsspezifikation zu vergleichen führt um bis zu ~3 dB in die Irre.
Symptome eines Kalibrierungsproblems
| Was Sie sehen | Wahrscheinliche Ursache |
|---|---|
| Temperatur von 0 °C oder −128 °C, Vcc 0,00 V | Host liest rohe Zählwerte eines extern kalibrierten Moduls ohne Umrechnung |
| Rx-Leistung unmöglich hoch (+10 dBm) oder dauerhaft −40 dBm | falscher Kalibrierungsmodus angenommen, oder genullte Konstanten |
| Werte weichen stark zwischen zwei Switch-Modellen mit demselben Modul ab | ein Host beachtet Byte 92, der andere geht von intern aus |
| Tx-Leistung bei jedem Modul einer Charge identisch | kein Kalibrierungsproblem — ein konstanter Tx-Wert (DDM-Pegel) |
In CodingBox
CodingBox liest Byte 92, wendet externe Kalibrierungskonstanten an, wenn das Modul sie deklariert, und zeigt sowohl Roh- als auch umgerechnete Werte, sodass ein Modul, das ein Switch falsch anzeigt, auf der Werkbank beurteilt werden kann. Der Konstantenblock 56–95 ist im EEPROM-Editor bearbeitbar, wobei CC_DMI automatisch neu berechnet wird — nützlich zum Reparieren von Modulen, deren Kalibrierungsbereich überschrieben wurde.
Wie die Konstanten an der Fertigungsteststation erzeugt werden und wo die Firmware sie speichert: Fertigung & Prüfung, Controller & Firmware.