Interne en externe kalibratie
Een fotodiode levert geen dBm en een thermistor geen °C. Ergens moet de ruwe sensorwaarde worden omgezet in een technische waarde — en SFF-8472 staat toe dat dit ofwel in de module ofwel op de host gebeurt, met constanten die de module levert. Een verkeerde keuze is meestal de reden waarom een switch absurde DDM-waarden weergeeft voor een module die perfect werkt.
Twee kalibratiemodi
| Modus | Aangegeven door | Wie zet om | Wat de monitorbytes bevatten |
|---|---|---|---|
| Intern | A0h byte 92 bit 5 | de microcontroller van de module | uiteindelijke waarden in standaardeenheden (1/256 °C, 100 µV, 2 µA, 0,1 µW) |
| Extern | A0h byte 92 bit 4 | de host | ruwe A/D-tellingen; host past constanten uit A2h 56–95 toe |
Bijna elke moderne module is intern gekalibreerd. Extern gekalibreerde modules zijn oudere of kostengeoptimaliseerde ontwerpen; hun waarden worden als onzin gelezen op hosts die de omzetting overslaan.
Externe kalibratieconstanten — A2h bytes 56–95
| Bytes | Constante | Indeling | Van toepassing op |
|---|---|---|---|
| 56–75 | Rx_PWR(4) … Rx_PWR(0) | vijf IEEE-754-floats met enkele precisie | Rx-vermogen (polynoom van de 4e orde) |
| 76–77 | Tx_I slope | vastkommagetal zonder teken in 8.8-formaat | Tx-bias |
| 78–79 | Tx_I offset | 16-bit met teken | Tx-bias |
| 80–81 | Tx_PWR slope | zonder teken in 8.8-formaat | Tx-vermogen |
| 82–83 | Tx_PWR offset | 16-bit met teken | Tx-vermogen |
| 84–85 | T slope | zonder teken in 8.8-formaat | temperatuur |
| 86–87 | T offset | 16-bit met teken | temperatuur |
| 88–89 | V slope | zonder teken in 8.8-formaat | Vcc |
| 90–91 | V offset | 16-bit met teken | Vcc |
| 92–94 | gereserveerd | — | — |
| 95 | CC_DMI | checksum van bytes 0–94 | — |
De omzettingsformules
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
Voor een intern gekalibreerde module worden de constanten genegeerd; veel fabrikanten vullen ze toch met identiteitswaarden (slope 1,0, offset 0, Rx-polynoom 0,0,0,1,0), zodat een host die ze alsnog toepast het juiste antwoord krijgt.
Gemiddelde versus OMA
A0h byte 92 bit 3 geeft aan hoe Rx-vermogen wordt uitgedrukt: gemiddeld vermogen (1) of OMA — optische modulatieamplitude (0). Bijna alle modules rapporteren gemiddeld vermogen; OMA komt voor bij sommige multimode Ethernet-optica waarvoor de standaard de gevoeligheid zo specificeert. Vergelijking van een OMA-waarde met een gevoeligheidsspecificatie voor gemiddeld vermogen kan tot ~3 dB misleiden.
Symptomen van een kalibratieprobleem
| Wat u ziet | Waarschijnlijke oorzaak |
|---|---|
| Temperatuur van 0 °C of −128 °C, Vcc 0,00 V | host leest ruwe tellingen van een extern gekalibreerde module zonder om te zetten |
| Rx-vermogen onmogelijk hoog (+10 dBm) of altijd −40 dBm | verkeerde kalibratiemodus aangenomen, of op nul gezette constanten |
| Waarden verschillen sterk tussen twee switchmodellen met dezelfde module | één host respecteert byte 92, de andere gaat uit van intern |
| Tx-vermogen identiek op elke module van een batch | geen kalibratie — een constante Tx (DDM-niveaus) |
In CodingBox
CodingBox leest byte 92, past externe kalibratieconstanten toe wanneer de module deze aangeeft en toont zowel ruwe als omgerekende waarden, zodat een door een switch verkeerd weergegeven module op de werkbank kan worden beoordeeld. Het constantenblok 56–95 is te bewerken in de EEPROM editor met CC_DMI automatisch herberekend — nuttig voor het repareren van modules waarvan het kalibratiegebied is overschreven.
Hoe de constanten worden geproduceerd op het fabrieksteststation en waar de firmware ze bewaart: Productie en testen, Controller en firmware.