Tipos de protección contra escritura y programación
El factor de forma indica dónde viven los campos de un módulo. Un segundo eje, independiente, decide si puede modificarlos: cómo protege el módulo su memoria contra la escritura. Los fabricantes usan cinco enfoques, y cada uno requiere un método de programación distinto. Reconocer el tipo primero ahorra horas de intentos de escritura fallidos.
Los cinco tipos de protección
| # | Tipo | Cómo se reconoce | Cómo se programa |
|---|---|---|---|
| 1 | Sin protección | Acepta escrituras de inmediato | Escritura directa — pero a reloj lento |
| 2 | Pin de protección de escritura por hardware | Solo lectura pruebe lo que pruebe; ninguna contraseña ayuda | Controlar la línea WP durante la escritura |
| 3 | Contraseña (controlador de firmware) | WRITE FAIL hasta introducir una contraseña | Introducir primero la contraseña en 0x7B |
| 4 | Almacenamiento temporal + comando de guardado | Las escrituras «tienen éxito» pero revierten tras un ciclo de alimentación | Enviar la secuencia de guardado del fabricante |
| 5 | Combinada | Necesita una secuencia de E/S específica del fabricante para desbloquearse | Algoritmo de programación del fabricante (scripts) |
1. Sin protección
La EEPROM no tiene restricción de escritura. La dificultad práctica es la temporización: una programación fiable suele requerir un reloj de dos hilos de alrededor de 1 kHz — unas diez veces más lento que la velocidad de lectura normal. A velocidad estándar, las escrituras fallan de forma intermitente y dejan páginas escritas a medias. Un indicio relacionado: en algunos módulos simples solo A0h se lee de forma limpia, mientras que A2h devuelve errores.
2. Pin de protección de escritura por hardware
El pin WP de la EEPROM está unido a la alimentación a través de una resistencia, así que el chip arranca bloqueado. Desbloquearlo significa llevar la línea WP hacia tierra por una vía de menor impedancia mientras la escritura está en curso — algo que solo puede hacer una placa programadora con control sobre esa línea. El software por sí solo no puede sortear este tipo: el módulo permanece de solo lectura a través de ciclos de alimentación e intentos de contraseña.
3. Protegido por contraseña (controlador de firmware)
Según SFF-8472, el bloque A2h reserva un área de contraseña de 7 bytes a partir del desplazamiento 0x7B; la mayoría de los módulos usan una contraseña de 4 bytes. Un controlador del módulo compara lo escrito ahí con su valor almacenado y solo entonces desbloquea las escrituras en la EEPROM. Sin la contraseña, cada escritura devuelve WRITE FAIL.
- Introduzca la contraseña correcta y luego escriba.
- Si se desconoce: una búsqueda por diccionario de contraseñas de fabricantes conocidas (véase Recodificación de EEPROM para valores habituales) o consulte al fabricante.
- Estos controladores son sensibles a la velocidad del reloj y a los intervalos entre bloques — otra razón para programar despacio.
4. Almacenamiento temporal con comando de guardado
Las escrituras caen en memoria volátil. Todo parece correcto — hasta que el módulo pasa por un ciclo de alimentación y el código anterior vuelve. El firmware del fabricante necesita un comando de guardado explícito (una secuencia de bytes propietaria) para confirmar la imagen temporal en el almacenamiento permanente. Ningún estándar lo define; la secuencia de cada fabricante es distinta y se recoge como un script.
5. Protección combinada
Los módulos más recientes apilan varios mecanismos: WP por hardware y una contraseña y un comando de guardado y condiciones operativas previas — por ejemplo, el módulo debe colocarse en modo de bajo consumo antes de aceptar escrituras. Es típico de los módulos con revisiones recientes de SFF-8472 que exponen 256 o más páginas por encima del desplazamiento A2h 0x80, y de los módulos CMIS. La programación requiere el algoritmo del fabricante, normalmente compartido con clientes de compra a granel.
Cómo identificar el tipo
- Pruebe una lectura simple: ¿se lee A2h de forma limpia? (El tipo 1 suele fallar aquí.)
- Pruebe una escritura de un solo byte en un campo sin protección. Éxito inmediato → tipo 1.
WRITE FAIL→ tipo 3 (o 5). Éxito silencioso que revierte tras un ciclo de alimentación → tipo 4. - Introduzca contraseñas conocidas. Sigue en solo lectura → tipo 2 (hardware) o tipo 5 (combinada).
- Compruebe el factor de forma y la revisión de la especificación — los módulos CMIS y los de revisión tardía de SFF-8472 suelen ser tipo 5.
En CodingBox
- Ajustes de contraseña — la dirección de tabla, la dirección de contraseña (0x7B) y el valor se configuran en Memoria protegida y contraseñas; las contraseñas conocidas se aplican desde la base de datos.
- Scripts — los scripts de programación de CodingBox incorporan las secuencias de guardado del fabricante y los algoritmos de desbloqueo para los tipos 4 y 5.
- Escritura byte a byte y reloj lento para los módulos que fallan a velocidad estándar.
- El WP por hardware lo gestiona la placa programadora, no el software.
- Cada lectura se guarda en la base de datos de códigos antes de escribir, de modo que un intento fallido siempre es recuperable.
Síntomas en el banco de pruebas —
WRITE FAIL, una escritura que revierte, una contraseña rechazada — y qué hacer en cada caso: Errores de lectura y escritura de EEPROM.
Por qué existen estos tipos — EEPROM discreta frente a un mapa emulado por MCU, comandos de guardado, espejos de firmware y firmas tal como los implementa el firmware: Controlador y firmware.