CodingBox Documentação

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

#TipoComo é reconhecidoComo é programado
1Sem proteçãoAceita gravações imediatamenteGravação direta — mas com clock lento
2Pino WP de hardwareSomente leitura por mais que você tente; nenhuma senha ajudaControlar a linha WP durante a gravação
3Senha (controlador de firmware)WRITE FAIL até que uma senha seja inseridaInserir a senha em 0x7B primeiro
4Armazenamento temporário + comando de salvamentoAs gravações “funcionam”, mas revertem após um ciclo de energiaEnviar a sequência de salvamento do fabricante
5CombinadoExige uma sequência de E/S específica do fabricante para desbloquearAlgoritmo 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

  1. Tente uma leitura simples: o A2h lê corretamente? (O tipo 1 costuma falhar aqui.)
  2. 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.
  3. Insira senhas conhecidas. Continua somente leitura → tipo 2 (hardware) ou tipo 5 (combinado).
  4. 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.


Se você encontrar uma imprecisão ou um erro neste artigo, selecione o trecho correspondente e pressione Ctrl+Enter para .