Estoy utilizando un "Contador binario dual de 16 bits con registros de salida de 3 estados" (SN74LV8154) para contar los pulsos de entrada de hasta 32 bits.
Funciona bien la mayor parte del tiempo, pero algunos de los bits en el contador parecen voltearse al azar. El resultado se refleja en el registro, ya que veo que el valor de salida a veces avanza o retrocede.
Los saltos son persistentes (no son lecturas erróneas puntuales) ya que el valor no salta al revés justo después del problema. p.ej.
- 0x12fe
- 0x12ff
- 0x1200 (debería ser 0x1300)
- 0x1201
- 0x1202 (0x0100 aún no está activado)
El chip permite leer byte a byte con la ayuda de un selector de palabras de 4 bits. Esto se hace con bastante frecuencia, palabra por palabra, y grabo una serie temporal con el resultado. Espero que el contador suba unos pocos incrementos entre lecturas.
El resultado está bien la mayor parte del tiempo, pero parece que algunos acarreos internos se han olvidado o se han duplicado.
Aquí hay algunos ejemplos:
|----------------------+------------------------+-------------|
| Before | After | Jump |
| | (Expected) | |
|----------------------+------------------------+-------------|
| 0b010011000011111111 | 0b010011001000000000 | 0b100000000 |
| | (0b010011000100000000) | |
| 0b110001000001111111 | 0b110001000000000000 | -0b10000000 |
| | (0b110001000010000000) | |
| 0b111100101011111111 | 0b111100110000000000 | 0b100000000 |
| | (0b111100101100000000) | |
|----------------------+------------------------+-------------|
También vi saltos en +/- 16, +/- 32, +/- 65536, así que supongo que el problema no está relacionado con el tamaño de la palabra.
Cualquier ayuda sobre cómo investigar esto sería muy apreciada.
Julien