Por razones de garantía, es deseable contar ciertos eventos como ciclos de energía, horas de operación, reinicios duros (pulsando un botón) y tiempos de espera.
Resumen: Por razones de garantía, es deseable contar ciertos eventos como ciclos de energía, horas de operación, reinicios duros (pulsador) y tiempos de espera. Los contadores digitales son fáciles de construir, pero no es obvio cómo hacerlos no volátiles y no reiniciables. Este artículo describe los modos de emulación de EPROM para EEPROM seriales fácilmente disponibles y cómo resolver el problema utilizando un esquema de codificación inusual.
Una versión similar de este artículo apareció en la edición del 15 de mayo de 2011 de la revista EE Times.
motivación
Por razones de garantía, puede ser deseable contar y registrar ciertos eventos, como ciclos de energía, horas de funcionamiento, reinicios duros (pulsando un botón) y tiempos de espera. Un contador electrónico convencional para este propósito se construye a partir de flip-flops usando código binario como se muestra en la Figura 1. El conteo máximo se alcanza cuando todos los flip-flops están configurados, por lo que el tamaño del contador es el número máximo de eventos contados durante el intervalo de interés.
Cumplir con los requisitos
Los contadores basados en flip-flops son fáciles de crear, pero tienen un gran inconveniente. Rollover (restablecerse a sí mismo) a cero cuando se alcanza el límite de conteo. Su comportamiento también es volátil, requiriendo energía para mantener el estado del conteo. El primer problema puede solucionarse congelando el contador cuando alcance su límite. El segundo problema se puede resolver instalando baterías para mantener el contador alimentado. Sin embargo, estas medidas agregan costos y trabajo por un tiempo limitado y pueden no ser aceptables.
Hay alternativas. El valor de conteo se puede respaldar en EEPROM u otra forma de almacenamiento no volátil (NV). En el próximo encendido, puede precargar el contador con el valor almacenado en esta memoria NV. Sin embargo, a menos que la memoria NV esté integrada en otro chip, como un microcontrolador o FPGA, el contenido de la memoria no es seguro, ya que el chip de memoria se puede quitar, reprogramar (restablecer) y reemplazar fácilmente en la placa de circuito. Por lo tanto, este método no cumple con el requisito de no reiniciable.
trucos del pasado
EPROM es otro tipo de memoria no volátil que no requiere batería. EPROM se hizo popular con la llegada de los microprocesadores en la década de 1970. Tal como se envía de fábrica, todos los bytes de la EPROM se leen en FFh. Los datos se almacenan programando bits individuales de 1 (borrar) a 0 (programar). La programación requiere un pulso de 12V a 13V. Antes de cargar nuevos datos, el chip debe exponerse a luz ultravioleta de alta intensidad a través de una ventana integrada en el paquete para borrar toda la memoria. Las EPROM programables por única vez (OTP) no tienen ventana y no se pueden borrar. Estos inconvenientes han reducido la popularidad de la EPROM a favor de la EEPROM y la memoria flash de alta densidad, las cuales pueden operar y programar por debajo de 5V. Sin embargo, la programación unidireccional (uno a cero) y la falta de capacidad de borrado de las EPROM OTP combinadas con la tecnología EEPROM moderna permiten una nueva característica llamada modo de emulación de EPROM. El modo de emulación de EPROM es una técnica clave para implementar contadores no volátiles y no reiniciables.
Modo de emulación de EPROM
Una característica común de las EEPROM de interfaz en serie es un búfer de escritura de página que permite programar una página de memoria completa de una sola vez. Cuando se recibe un comando de escritura, el sistema carga automáticamente los datos de la página de memoria direccionada en el búfer de escritura de la página. Para el modo de emulación de EPROM, el búfer de escritura se implementa como un registro de desplazamiento (Figura 2). Los nuevos datos entrantes (D-IN) se envían a una puerta AND que los combina con los datos almacenados en el búfer (S-OUT) antes de ingresar al búfer (S-IN). Por lo tanto, la puerta AND evita que el bit de memoria cambie a 1 después de haber sido programado a 0. Después de un ciclo a través de todos los bits de la página, los datos en el búfer se realinean con los datos en la página de memoria. Ahora puede comenzar el ciclo de escritura. Esto copiará todo el búfer a la EEPROM no volátil.

Cuenta en EPROM
Los códigos de conteo tradicionales no funcionan porque los bits de EPROM solo se pueden cambiar en una dirección. En cambio, toda la matriz de memoria debe verse como una sola entidad de n bits. Inicialmente, ninguno de los n bits está programado (todos 1). Para contar eventos, uno de los bits no programados debe cambiarse a 0. Podríamos elegir aleatoriamente qué bit programar a continuación, pero el esquema de la Figura 3 es más fácil de implementar. Esto comienza con el bit menos significativo y continúa en orden hasta que todos los bits de ese byte hayan sido programados. Luego programe los siguientes bytes poco a poco: En el modo de emulación de EPROM, un chip de memoria de 1024 bits es adecuado para contar 1024 eventos.