Kalibracja wewnętrzna i zewnętrzna
Fotodioda nie generuje dBm, a termistor nie generuje °C. Gdzieś surowy odczyt czujnika musi zostać zamieniony na wartość inżynierską — a SFF-8472 pozwala, aby działo się to albo wewnątrz modułu, albo po stronie hosta, przy użyciu stałych dostarczanych przez moduł. Błąd na tym etapie to zwykła przyczyna, dla której przełącznik pokazuje absurdalne wartości DDM dla modułu, który działa bez zarzutu.
Dwa tryby kalibracji
| Tryb | Deklarowany przez | Kto przelicza | Co zawierają bajty monitora |
|---|---|---|---|
| Wewnętrzny | A0h bajt 92 bit 5 | mikrokontroler modułu | wartości końcowe w jednostkach standardowych (1/256 °C, 100 µV, 2 µA, 0,1 µW) |
| Zewnętrzny | A0h bajt 92 bit 4 | host | surowe zliczenia przetwornika A/C; host stosuje stałe z A2h 56–95 |
Niemal każdy współczesny moduł jest kalibrowany wewnętrznie. Moduły z kalibracją zewnętrzną to konstrukcje starsze albo zoptymalizowane pod kątem kosztu; na hostach, które pomijają przeliczenie, ich wartości wyglądają jak bezsensowne liczby.
Stałe kalibracji zewnętrznej — bajty A2h 56–95
| Bajty | Stała | Format | Dotyczy |
|---|---|---|---|
| 56–75 | Rx_PWR(4) … Rx_PWR(0) | pięć liczb zmiennoprzecinkowych IEEE-754 pojedynczej precyzji | moc Rx (wielomian 4. stopnia) |
| 76–77 | nachylenie Tx_I | stałoprzecinkowa bez znaku 8.8 | bias Tx |
| 78–79 | przesunięcie Tx_I | 16-bitowa ze znakiem | bias Tx |
| 80–81 | nachylenie Tx_PWR | bez znaku 8.8 | moc Tx |
| 82–83 | przesunięcie Tx_PWR | 16-bitowa ze znakiem | moc Tx |
| 84–85 | nachylenie T | bez znaku 8.8 | temperatura |
| 86–87 | przesunięcie T | 16-bitowa ze znakiem | temperatura |
| 88–89 | nachylenie V | bez znaku 8.8 | Vcc |
| 90–91 | przesunięcie V | 16-bitowa ze znakiem | Vcc |
| 92–94 | zarezerwowane | — | — |
| 95 | CC_DMI | suma kontrolna bajtów 0–94 | — |
Wzory przeliczeniowe
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
W module kalibrowanym wewnętrznie stałe są ignorowane; wielu producentów mimo to wypełnia je wartościami neutralnymi (nachylenie 1,0, przesunięcie 0, wielomian Rx 0, 0, 0, 1, 0), aby host, który mimo wszystko je zastosuje, uzyskał prawidłowy wynik.
Wartość średnia kontra OMA
A0h bajt 92, bit 3, mówi, jak wyrażona jest moc Rx: jako moc średnia (1) czy jako OMA — amplituda modulacji optycznej (0). Niemal wszystkie moduły raportują moc średnią; OMA pojawia się w części wielomodowej optyki Ethernet, gdzie norma określa czułość w ten sposób. Porównanie wartości OMA ze specyfikacją czułości w mocy średniej wprowadza w błąd nawet o ~3 dB.
Objawy problemu z kalibracją
| Co widzisz | Prawdopodobna przyczyna |
|---|---|
| Temperatura 0 °C albo −128 °C, Vcc 0,00 V | host odczytuje surowe zliczenia z modułu o kalibracji zewnętrznej bez przeliczenia |
| Moc Rx niemożliwie wysoka (+10 dBm) albo zawsze −40 dBm | założono zły tryb kalibracji albo stałe są wyzerowane |
| Wartości drastycznie się różnią między dwoma modelami przełącznika z tym samym modułem | jeden host respektuje bajt 92, drugi zakłada kalibrację wewnętrzną |
| Moc Tx identyczna dla każdego modułu z partii | to nie kalibracja — stała Tx (Poziomy DDM) |
W CodingBox
CodingBox odczytuje bajt 92, stosuje stałe kalibracji zewnętrznej, gdy moduł je deklaruje, i pokazuje zarówno wartości surowe, jak i przeliczone, dzięki czemu moduł błędnie wyświetlany przez przełącznik można ocenić na stanowisku. Blok stałych 56–95 można edytować w EEPROM editor, a CC_DMI jest przeliczane automatycznie — przydatne przy naprawie modułów, których obszar kalibracji został nadpisany.
Jak stałe powstają na fabrycznym stanowisku testowym i gdzie przechowuje je firmware: Produkcja i testy, Kontroler i firmware.