내부·외부 교정
포토다이오드는 dBm을 직접 출력하지 않고, 서미스터도 °C를 직접 출력하지 않습니다. 원시 센서값은 어딘가에서 공학적 단위로 변환되어야 하며, SFF-8472는 모듈이 제공하는 상수를 이용해 이 변환을 모듈 내부에서 하거나 호스트에서 하도록 허용합니다. 이 과정에서 잘못되는 경우가, 멀쩡하게 동작하는 모듈에 대해 스위치가 터무니없는 DDM 값을 표시하는 흔한 원인입니다.
두 가지 교정 모드
| 모드 | 선언 위치 | 변환 주체 | 모니터 바이트의 내용 |
|---|---|---|---|
| 내부 | A0h 바이트 92 비트 5 | 모듈의 마이크로컨트롤러 | 표준 단위로 변환된 최종값(1/256 °C, 100 µV, 2 µA, 0.1 µW) |
| 외부 | A0h 바이트 92 비트 4 | 호스트 | 원시 A/D 카운트; 호스트가 A2h 56–95의 상수를 적용 |
요즘 모듈은 거의 모두 내부 교정 방식입니다. 외부 교정 모듈은 구형이거나 비용을 낮춘 설계이며, 변환을 건너뛰는 호스트에서는 그 값이 의미 없는 숫자로 읽힙니다.
외부 교정 상수 — A2h 바이트 56–95
| 바이트 | 상수 | 형식 | 적용 대상 |
|---|---|---|---|
| 56–75 | Rx_PWR(4) … Rx_PWR(0) | IEEE-754 단정밀도 부동소수점 5개 | Rx 파워(4차 다항식) |
| 76–77 | Tx_I slope | 부호 없는 8.8 고정소수점 | Tx 바이어스 |
| 78–79 | Tx_I offset | 부호 있는 16비트 | Tx 바이어스 |
| 80–81 | Tx_PWR slope | 부호 없는 8.8 | Tx 파워 |
| 82–83 | Tx_PWR offset | 부호 있는 16비트 | Tx 파워 |
| 84–85 | T slope | 부호 없는 8.8 | 온도 |
| 86–87 | T offset | 부호 있는 16비트 | 온도 |
| 88–89 | V slope | 부호 없는 8.8 | Vcc |
| 90–91 | V offset | 부호 있는 16비트 | Vcc |
| 92–94 | 예약됨 | — | — |
| 95 | CC_DMI | 바이트 0–94의 체크섬 | — |
변환 공식
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
내부 교정 모듈에서는 이 상수들이 무시됩니다. 그런데도 많은 벤더는 항등값(slope 1.0, offset 0, Rx 다항식 0,0,0,1,0)을 채워 두는데, 혹시라도 호스트가 이를 적용하더라도 올바른 값이 나오게 하기 위해서입니다.
평균 파워 대 OMA
A0h 바이트 92의 비트 3은 Rx 파워를 어떤 방식으로 표현하는지 나타냅니다: 평균 파워(1) 또는 OMA — 광 변조 진폭(0)입니다. 거의 모든 모듈이 평균 파워를 보고하며, OMA는 표준이 그런 방식으로 수신 감도를 규정하는 일부 멀티모드 이더넷 광학계에서 나타납니다. OMA 수치를 평균 파워 기준 수신 감도 규격과 비교하면 최대 약 3 dB까지 오차가 생깁니다.
교정 문제의 증상
| 나타나는 현상 | 가능성 있는 원인 |
|---|---|
| 온도가 0 °C 또는 −128 °C, Vcc가 0.00 V | 호스트가 외부 교정 모듈의 원시 카운트를 변환 없이 읽음 |
| Rx 파워가 비현실적으로 높음(+10 dBm) 또는 항상 −40 dBm | 교정 모드를 잘못 가정했거나 상수가 0으로 되어 있음 |
| 같은 모듈인데 스위치 기종에 따라 값이 크게 다름 | 한쪽 호스트는 바이트 92를 따르고 다른 쪽은 내부 교정이라고 가정 |
| 배치 내 모든 모듈의 Tx 파워가 동일함 | 교정 문제가 아니라 Tx가 상수임(DDM 수치) |
CodingBox에서
CodingBox는 바이트 92를 읽고, 모듈이 외부 교정을 선언하면 그 상수를 적용하며, 원시값과 변환값을 모두 보여줍니다. 그래서 스위치가 잘못 표시하는 모듈도 벤치에서 정확히 판단할 수 있습니다. 상수 블록 56–95는 EEPROM editor에서 편집할 수 있고 CC_DMI는 자동으로 재계산됩니다 — 교정 영역이 덮어써진 모듈을 복구할 때 유용합니다.
공장 테스트 스테이션에서 이 상수들이 어떻게 만들어지는지, 펌웨어가 이를 어디에 보관하는지: 제조와 테스트, 컨트롤러와 펌웨어.