اندرونی اور بیرونی کیلیبریشن
ہماری ٹیم ترجمے پر کام کر رہی ہے۔ یہ مضمون عارضی طور پر اردو میں دستیاب نہیں ہے، اس لیے اسے انگریزی میں دکھایا جا رہا ہے۔
A photodiode does not output dBm and a thermistor does not output °C. Somewhere the raw sensor reading has to be turned into an engineering value — and SFF-8472 allows that to happen either inside the module or on the host, using constants the module provides. Getting this wrong is the usual reason a switch displays absurd DDM values for a module that works perfectly.
Two calibration modes
| Mode | Declared by | Who converts | What the monitor bytes contain |
|---|---|---|---|
| Internal | A0h byte 92 bit 5 | the module's microcontroller | final values in standard units (1/256 °C, 100 µV, 2 µA, 0.1 µW) |
| External | A0h byte 92 bit 4 | the host | raw A/D counts; host applies constants from A2h 56–95 |
Almost every modern module is internally calibrated. Externally calibrated modules are older or cost-optimised designs; their values read as garbage on hosts that skip the conversion.
External calibration constants — A2h bytes 56–95
| Bytes | Constant | Format | Applies to |
|---|---|---|---|
| 56–75 | Rx_PWR(4) … Rx_PWR(0) | five IEEE-754 single-precision floats | Rx power (4th-order polynomial) |
| 76–77 | Tx_I slope | unsigned fixed-point 8.8 | Tx bias |
| 78–79 | Tx_I offset | signed 16-bit | Tx bias |
| 80–81 | Tx_PWR slope | unsigned 8.8 | Tx power |
| 82–83 | Tx_PWR offset | signed 16-bit | Tx power |
| 84–85 | T slope | unsigned 8.8 | temperature |
| 86–87 | T offset | signed 16-bit | temperature |
| 88–89 | V slope | unsigned 8.8 | Vcc |
| 90–91 | V offset | signed 16-bit | Vcc |
| 92–94 | reserved | — | — |
| 95 | CC_DMI | checksum of bytes 0–94 | — |
The conversion formulas
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
For an internally calibrated module the constants are ignored; many vendors still fill them with identity values (slope 1.0, offset 0, Rx polynomial 0,0,0,1,0) so that a host applying them anyway gets the right answer.
Average vs OMA
A0h byte 92 bit 3 says how Rx power is expressed: average power (1) or OMA — optical modulation amplitude (0). Nearly all modules report average power; OMA appears on some multi-mode Ethernet optics where the standard specifies sensitivity that way. Comparing an OMA figure with an average-power sensitivity spec misleads by up to ~3 dB.
Symptoms of a calibration problem
| What you see | Likely cause |
|---|---|
| Temperature of 0 °C or −128 °C, Vcc 0.00 V | host reads raw counts from an externally calibrated module without converting |
| Rx power impossibly high (+10 dBm) or always −40 dBm | wrong calibration mode assumed, or zeroed constants |
| Values differ wildly between two switch models with the same module | one host honours byte 92, the other assumes internal |
| Tx power identical on every module of a batch | not calibration — a constant Tx (DDM levels) |
In CodingBox
CodingBox reads byte 92, applies external calibration constants when the module declares them, and shows both raw and converted values, so a module that a switch displays wrongly can be judged on the bench. The constants block 56–95 is editable in the EEPROM editor with CC_DMI recalculated automatically — useful for repairing modules whose calibration area was overwritten.
How the constants are produced on the factory test station and where the firmware keeps them: Manufacturing & testing, Controller & firmware.