Calibração interna e externa
Um fotodiodo não gera uma saída em dBm, e um termistor não gera uma saída em °C. Em algum ponto a leitura bruta do sensor precisa ser convertida em um valor de engenharia — e o SFF-8472 permite que isso aconteça tanto dentro do módulo quanto no host, usando constantes que o módulo fornece. Errar nisso é a razão mais comum de um switch exibir valores de DDM absurdos para um módulo que funciona perfeitamente.
Dois modos de calibração
| Modo | Declarado por | Quem converte | O que os bytes de monitoramento contêm |
|---|---|---|---|
| Interna | A0h byte 92 bit 5 | o microcontrolador do módulo | valores finais em unidades padrão (1/256 °C, 100 µV, 2 µA, 0,1 µW) |
| Externa | A0h byte 92 bit 4 | o host | contagens brutas de A/D; o host aplica as constantes de A2h 56–95 |
Quase todo módulo moderno é calibrado internamente. Módulos calibrados externamente são projetos mais antigos ou otimizados por custo; seus valores aparecem como lixo em hosts que pulam a conversão.
Constantes de calibração externa — A2h bytes 56–95
| Bytes | Constante | Formato | Aplica-se a |
|---|---|---|---|
| 56–75 | Rx_PWR(4) … Rx_PWR(0) | cinco floats IEEE-754 de precisão simples | potência Rx (polinômio de 4ª ordem) |
| 76–77 | Tx_I slope | ponto fixo sem sinal 8.8 | polarização Tx |
| 78–79 | Tx_I offset | 16 bits com sinal | polarização Tx |
| 80–81 | Tx_PWR slope | sem sinal 8.8 | potência Tx |
| 82–83 | Tx_PWR offset | 16 bits com sinal | potência Tx |
| 84–85 | T slope | sem sinal 8.8 | temperatura |
| 86–87 | T offset | 16 bits com sinal | temperatura |
| 88–89 | V slope | sem sinal 8.8 | Vcc |
| 90–91 | V offset | 16 bits com sinal | Vcc |
| 92–94 | reservado | — | — |
| 95 | CC_DMI | checksum dos bytes 0–94 | — |
As fórmulas de conversão
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
Para um módulo calibrado internamente, as constantes são ignoradas; muitos fabricantes ainda assim as preenchem com valores de identidade (slope 1,0, offset 0, polinômio Rx 0,0,0,1,0) para que um host que as aplique mesmo assim obtenha a resposta certa.
Média vs. OMA
O A0h byte 92 bit 3 diz como a potência Rx é expressa: potência média (1) ou OMA — amplitude de modulação óptica (0). Quase todos os módulos reportam potência média; o OMA aparece em algumas ópticas Ethernet multimodo em que o padrão especifica a sensibilidade dessa forma. Comparar um valor de OMA com uma especificação de sensibilidade em potência média engana em até ~3 dB.
Sintomas de um problema de calibração
| O que você vê | Causa provável |
|---|---|
| Temperatura de 0 °C ou −128 °C, Vcc 0,00 V | o host lê contagens brutas de um módulo calibrado externamente sem converter |
| Potência Rx impossivelmente alta (+10 dBm) ou sempre −40 dBm | modo de calibração assumido errado, ou constantes zeradas |
| Valores muito diferentes entre dois modelos de switch com o mesmo módulo | um host respeita o byte 92, o outro assume interna |
| Potência Tx idêntica em todo módulo de um lote | não é calibração — um Tx constante (Níveis de DDM) |
No CodingBox
O CodingBox lê o byte 92, aplica as constantes de calibração externa quando o módulo as declara, e mostra os valores brutos e convertidos, de modo que um módulo que um switch exibe errado possa ser avaliado na bancada. O bloco de constantes 56–95 é editável no EEPROM editor, com o CC_DMI recalculado automaticamente — útil para reparar módulos cuja área de calibração foi sobrescrita.
Como as constantes são geradas na estação de teste de fábrica e onde o firmware as mantém: Fabricação e testes, Controlador e firmware.