Tipos de proteção contra gravação e programação
O fator de forma diz onde os campos de um módulo ficam. Um segundo eixo, independente, decide se você pode alterá-los: como o módulo protege sua memória contra gravações. Os fabricantes usam cinco abordagens, e cada uma exige um método de programação diferente. Reconhecer o tipo primeiro economiza horas de tentativas de gravação fracassadas.
Os cinco tipos de proteção
| # | Tipo | Como é reconhecido | Como é programado |
|---|---|---|---|
| 1 | Sem proteção | Aceita gravações imediatamente | Gravação direta — mas com clock lento |
| 2 | Pino WP de hardware | Somente leitura por mais que você tente; nenhuma senha ajuda | Controlar a linha WP durante a gravação |
| 3 | Senha (controlador de firmware) | WRITE FAIL até que uma senha seja inserida | Inserir a senha em 0x7B primeiro |
| 4 | Armazenamento temporário + comando de salvamento | As gravações “funcionam”, mas revertem após um ciclo de energia | Enviar a sequência de salvamento do fabricante |
| 5 | Combinado | Exige uma sequência de E/S específica do fabricante para desbloquear | Algoritmo de programação do fabricante (scripts) |
1. Sem proteção
A EEPROM não tem restrição de gravação. A pegadinha prática é a temporização: uma programação confiável normalmente exige um clock de dois fios de cerca de 1 kHz — cerca de dez vezes mais lento que a velocidade normal de leitura. Na velocidade padrão, as gravações falham de forma intermitente e deixam páginas parcialmente gravadas. Um indício relacionado: em alguns módulos simples, apenas o A0h lê corretamente, enquanto o A2h retorna erros.
2. Pino WP de hardware
O pino WP da EEPROM é amarrado à alimentação por meio de um resistor, de modo que o chip liga travado. Desbloquear significa puxar a linha WP em direção ao terra por um caminho de menor impedância enquanto a gravação está em andamento — algo que só uma placa programadora com controle sobre essa linha pode fazer. Somente o software não consegue superar esse tipo: o módulo permanece somente leitura através de ciclos de energia e tentativas de senha.
3. Protegido por senha (controlador de firmware)
Conforme o SFF-8472, o bloco A2h reserva uma área de senha de 7 bytes a partir do offset 0x7B; a maioria dos módulos usa uma senha de 4 bytes. Um controlador no módulo compara o que é gravado ali com seu valor armazenado e só então libera as gravações na EEPROM. Sem a senha, toda gravação retorna WRITE FAIL.
- Insira a senha correta e então grave.
- Se ela for desconhecida: uma busca em dicionário de senhas conhecidas de fabricantes (veja Recodificação de EEPROM para valores comuns) ou o fabricante.
- Esses controladores são sensíveis à velocidade do clock e aos intervalos entre blocos — mais um motivo para programar lentamente.
4. Armazenamento temporário com comando de salvamento
As gravações caem em memória volátil. Tudo parece certo — até que o módulo passe por um ciclo de energia e o código antigo volte. O firmware do fabricante precisa de um comando de salvamento explícito (uma sequência de bytes proprietária) para confirmar a imagem temporária no armazenamento permanente. Nenhuma norma o define; a sequência de cada fabricante é diferente e é capturada como um script.
5. Proteção combinada
Os módulos mais recentes empilham vários mecanismos: WP de hardware e senha e comando de salvamento e pré-condições operacionais — por exemplo, o módulo precisa ser colocado em modo de baixa potência antes de aceitar gravações. Isso é típico de módulos em revisões recentes do SFF-8472 que expõem 256+ páginas acima do offset 0x80 do A2h, e de módulos CMIS. A programação exige o algoritmo do fabricante, geralmente compartilhado com clientes de compra em grande volume.
Como identificar o tipo
- Tente uma leitura simples: o A2h lê corretamente? (O tipo 1 costuma falhar aqui.)
- Tente uma gravação de um único byte em um campo sem proteção. Sucesso imediato → tipo 1.
WRITE FAIL→ tipo 3 (ou 5). Sucesso silencioso que reverte após um ciclo de energia → tipo 4. - Insira senhas conhecidas. Continua somente leitura → tipo 2 (hardware) ou tipo 5 (combinado).
- Verifique o fator de forma e a revisão da especificação — módulos CMIS e SFF-8472 de revisão recente costumam ser tipo 5.
No CodingBox
- Configurações de senha — o endereço da tabela, o endereço da senha (0x7B) e o valor são definidos em Memória protegida contra gravação e senhas; as senhas conhecidas são aplicadas a partir do banco de dados.
- Scripts — os scripts de programação do CodingBox carregam as sequências de salvamento do fabricante e os algoritmos de desbloqueio para os tipos 4 e 5.
- Gravação byte a byte e clock lento para módulos que falham na velocidade padrão.
- O WP de hardware é tratado pela placa programadora, não pelo software.
- Toda leitura é salva no code database antes de você gravar, de modo que uma tentativa malsucedida é sempre recuperável.
Sintomas na bancada —
WRITE FAIL, uma gravação que reverte, senha recusada — e o que fazer em cada caso: Erros de leitura e gravação de EEPROM.
Por que esses tipos existem — EEPROM discreta versus mapa emulado por MCU, comandos de salvamento, espelhos de firmware e assinaturas como o firmware os implementa: Controlador e firmware.