¿Cuál es una forma eficiente de dividir el reloj por 1000 o más?

Contexto: Este es un proyecto casero que NO incorpora microcontroladores como ejercicio de aprendizaje. Necesito cronometrar algo de hasta 20 segundos de duración, hasta la centésima de segundo más cercana, y mostrar el intervalo de tiempo medido. Estoy usando un LED de cátodo común de 7 segmentos y 4 dígitos para la pantalla.

Tengo un cristal de 100 khz y quiero mostrar las decenas, unidades, décimas y centésimas de segundo (es decir, 23,36 segundos) en una pantalla LED de 4 dígitos y 7 segmentos. Pensé que podría usar el chip 4026, un contador decimal y un controlador de led. Sin embargo, tengo que encadenar 3 de ellos solo para llegar a 100 Hz, luego encadenar otros 4 para obtener los 4 dígitos de la pantalla. 7 circuitos integrados (más lógica de multiplexación porque la pantalla usa cables abcdefg comunes, además de reinicio, etc.) parece MUCHO.

¿Me estoy perdiendo una forma mucho más simple de abordar esto? Las 'reglas' son: cualquier circuito integrado u otros componentes, pero sin software (sin MCU).

Gracias.

Suena como un trabajo para un CPLD.
Si la precisión no es importante, un simple contador binario podría hacer el trabajo. Dividir por 2^10 es dividir aproximadamente por 1000 (1024 para ser precisos). pdf1.alldatasheet.com/datasheet-pdf/view/66436/INTERSIL/…
Más de 20 segundos serían 2048 ciclos "perdidos" que equivalen a 2 centésimas de segundo (0,02048 segundos) según mis cálculos. ¡No está mal! Esperaba una precisión de milisegundos. Esperaré otra opción, pero puedo usar esto, ¡gracias!
O un pequeño microcontrolador. Iría por un ATtiny13, solo porque los tengo por ahí, pero hay otros más pequeños que pueden hacer el trabajo perfectamente bien.
@jippie Excepto que el OP dijo explícitamente que no hay MCU .
Henry, el divisor binario no perderá ciclos. Con el divisor binario sugerido, obtiene un pulso de salida único por cada 1024 pulsos de entrada, y con un divisor de mil obtiene un pulso de salida único por cada 1000 pulsos de entrada. Eso significaría que después de 20 segundos, su error de conteo máximo sería solo 1024 en el caso de un divisor binario, o 1000 en el caso de un divisor de mil décadas. Verá, la diferencia es solo 24 pulsos durante 20 segundos en el peor de los casos. Si cuenta 123 pulsos durante 1 segundo con un divisor binario, mostraría 125952 Hz (123 x 1024) en su pantalla. El divisor de décadas es más legible para los humanos.
Ah, sí... y si necesita más precisión que 2^10, entonces detiene el contador y lee todos los bits inferiores con su MCU. Eso le daría una precisión de un solo pulso. Esa característica es un beneficio de un contador sobre un divisor dedicado (que generalmente tiene el beneficio de permitir frecuencias más altas).
@avra - dijo que no hay microcontroladores. Dos veces.
@stevenh: Entonces, "leer todos los bits inferiores con su MCU" se convierte en "leer todos los bits inferiores". Una vez. ;-)

Respuestas (2)

Mantenlo simple. Puede encontrar circuitos integrados que dividirán los 100 kHz por 1000, como el contador programable de división por N 74HC4059 , pero la mayoría de estos le costarán un brazo y una pierna, mientras que un par de contadores 74HC390 baratos servirán . El HC390 es un contador BCD doble, por lo que para el segundo solo necesita la mitad del IC, pero es más económico que un contador BCD único.

Me gusta la idea de mantenerlo simple, no sabía que había contadores de dos décadas así, ¡gracias!

Si desea implementar un circuito como el que describe utilizando chips listos para usar, calculo que se necesitarían tres chips contadores de décadas (dos de los cuales se usarán para dividir por cinco y uno para dividir por -cuatro), dos chips 74HC595 (registro de desplazamiento con pestillo), un 74HC374 (pestillo de 8 bits), un chip controlador de segmento, algunos transistores y resistencias para manejar cinco comunes de dígitos LED, y probablemente alrededor de 3-4 "lógica de pegamento" miscelánea chips (cuádruple NAND, cuádruple XOR, etc.)

El circuito básico se parece a esto ; como se ilustra, funcionaría con 20Khz en lugar de 100Khz, pero un contador de décadas dividido por cinco lo arreglaría fácilmente.

Los LED parpadean dígitos en el orden 1000ths 100ths 10ths unidades decenas. Aunque en este esquema utilizo un pestillo de 20 bits con salidas retroalimentadas a las entradas, sería más fácil usar un chip de registro de desplazamiento para 16 de los bits. El chip de registro de desplazamiento (74HC595) también ofrecería la ventaja de incluir un pestillo de salida libre (equivalente al que se encuentra en la parte inferior derecha).

Si uno tuviera que omitir la puerta "Y" y "O" cerca de la parte superior derecha del esquema, contaría en binario. Cada bit es el xor de sí mismo y del acarreo anterior, y el nuevo acarreo debe ser el "y" del acarreo anterior y del bit anterior, excepto que en el primer bit de cada "trama" se debe forzar el acarreo. Lógica muy simple que permite que un registro de desplazamiento realice cualquier incremento de longitud. Una ligera "arruga" en esta variación es que el circuito bloqueará cada cuatro bits (ya que cada cuatro bits deberá mostrarse como un dígito decimal) y también probará si un dígito bloqueado es 9 y se establece un acarreo; en ese caso, "simulará" que los siguientes cuatro bits de la palanca de cambios son todos 1,

Si no fuera necesario mostrar los valores de conteo, podría ser más simple conectar en cascada un contador de división por diez para cada dígito. Por otro lado, este circuito ofrece la ventaja de poder multiplexar cinco dígitos en un solo controlador de pantalla. Si lo desea, podría adaptarse fácilmente para manejar cualquier número de dígitos, simplemente agregando más registros de desplazamiento y ajustando el circuito de temporización.

Gracias por la respuesta muy completa, que casualmente me presentó a ese asombroso applet de simulador de circuito. Todavía no entiendo completamente la respuesta, pero le daré un +1 :)
@Henry: Me alegro de ser de ayuda. Por cierto, el applet permite, como característica no documentada, la capacidad de establecer el tamaño de "Latch", "Decade Counter", "ADC", "DAC" y algunas otras cosas. Si selecciona "Exportar" en el menú de archivo, obtendrá una línea para cada cable o pieza. Lo primero en la línea dirá qué cosa es; la mayoría de los chips, puertas y cosas tendrán un número allí. El resto de la línea describirá los detalles de la cosa. En muchos casos, habrá un parámetro que indique el tamaño (incluso para partes cuyo tamaño no se puede editar de otra manera). Prueba a cambiarlo...
... luego presione el botón "IMPORTAR" y vea qué sucede. Tenga en cuenta que algunas partes como el contador "Década" incluyen un parámetro para cada pin de salida que parece indicar el estado inicial; los parámetros deben estar presentes (uno por salida) pero los valores se ignoran. Esto es importante cuando se cambia el contador de décadas a, por ejemplo, una división por 16; para que el dispositivo vuelva a importar, se deben agregar seis ceros más (uno por cada salida agregada).