CodingBox Документация

Внутренняя и внешняя калибровка

Фотодиод не выдаёт дБм, а термистор — °C. Где-то сырое показание датчика должно превратиться в инженерную величину — и SFF-8472 позволяет делать это либо внутри модуля, либо на хосте, по константам, которые предоставляет модуль. Ошибка здесь — обычная причина, по которой коммутатор показывает абсурдные значения DDM для модуля, который работает идеально.

Два режима калибровки

РежимОбъявляетсяКто пересчитываетЧто содержат байты мониторов
ВнутренняяA0h байт 92, бит 5микроконтроллер модуляитоговые значения в стандартных единицах (1/256 °C, 100 мкВ, 2 мкА, 0,1 мкВт)
ВнешняяA0h байт 92, бит 4хостсырые отсчёты АЦП; хост применяет константы из A2h 56–95

Почти все современные модули калиброваны внутренне. Модули с внешней калибровкой — старые или удешевлённые конструкции; их значения читаются мусором на хостах, которые пропускают пересчёт.

Константы внешней калибровки — A2h байты 56–95

БайтыКонстантаФорматК чему
56–75Rx_PWR(4) … Rx_PWR(0)пять чисел IEEE-754 одинарной точностимощность Rx (полином 4-й степени)
76–77Tx_I slopeбеззнаковое 8.8 с фикс. точкойток смещения Tx
78–79Tx_I offsetзнаковое 16-битток смещения Tx
80–81Tx_PWR slopeбеззнаковое 8.8мощность Tx
82–83Tx_PWR offsetзнаковое 16-битмощность Tx
84–85T slopeбеззнаковое 8.8температура
86–87T offsetзнаковое 16-биттемпература
88–89V slopeбеззнаковое 8.8Vcc
90–91V offsetзнаковое 16-битVcc
92–94резерв
95CC_DMIконтрольная сумма байтов 0–94

Формулы пересчёта

Rx_PWR (мкВт)      = Rx4·raw⁴ + Rx3·raw³ + Rx2·raw² + Rx1·raw + Rx0
Tx_I   (мкА)       = Tx_I_slope · raw + Tx_I_offset
Tx_PWR (0,1 мкВт)  = Tx_PWR_slope · raw + Tx_PWR_offset
T      (1/256 °C)  = T_slope · raw + T_offset
V      (100 мкВ)   = V_slope · raw + V_offset

Для внутренне калиброванного модуля константы игнорируются; многие вендоры всё равно заполняют их единичными значениями (slope 1,0, offset 0, полином Rx 0,0,0,1,0), чтобы хост, применяющий их вопреки всему, получил верный ответ.

Средняя мощность и OMA

Бит 3 байта 92 A0h говорит, как выражена мощность Rx: средняя мощность (1) или OMA — амплитуда оптической модуляции (0). Почти все модули сообщают среднюю; OMA встречается у части многомодовой Ethernet-оптики, где стандарт задаёт чувствительность именно так. Сравнение значения OMA со спецификацией чувствительности в средней мощности вводит в заблуждение до ~3 дБ.

Симптомы проблемы с калибровкой

Что видитеВероятная причина
Температура 0 °C или −128 °C, Vcc 0,00 Вхост читает сырые отсчёты внешне калиброванного модуля без пересчёта
Rx невозможно высокий (+10 дБм) или всегда −40 дБмпредположен неверный режим калибровки или обнулены константы
Значения дико различаются на двух моделях коммутаторов с одним модулемодин хост уважает байт 92, другой считает калибровку внутренней
Tx одинаков у всех модулей партиине калибровка — константный Tx (Уровни DDM)

В CodingBox

CodingBox читает байт 92, применяет константы внешней калибровки, когда модуль их объявляет, и показывает и сырые, и пересчитанные значения, так что модуль, который коммутатор показывает неверно, можно оценить на столе. Блок констант 56–95 редактируем в редакторе EEPROM с автоматическим пересчётом CC_DMI — полезно для восстановления модулей с затёртой областью калибровки.