¿Hay un chip IC de 16 a 4 codificadores simples de un solo uso?

2

Estoy buscando un chip que tenga 16 entradas, donde si solo una de las entradas es alta, codifica los datos a una salida de 4 bits. Si uno no existe, ¿cuál sería la forma más sencilla de construir un circuito de este tipo?

    
pregunta David

2 respuestas

7

La función que está buscando normalmente se conoce como un codificador de prioridad.

Un codificador de prioridad puede hacer frente a más de una señal activa y aún así dar el resultado correcto para el dispositivo activo con el número más alto. Si su sistema puede garantizar que una y una entrada solo estarán activas, puede usar una solución más simple como lo sugiere Dave Tweed en los comentarios, sin embargo, estas soluciones pueden dar un resultado completamente incorrecto si dos o más entradas están activas.

Por lo que sé, nunca ha habido un dispositivo listo para usar para implementar un codificador de prioridad de 16 entradas.

Una versión de 8 bits ha existido durante muchos años. Una de las versiones actuales es SN74HC148 .

@Marku señala que la hoja de datos vinculada tiene un ejemplo de 16 bits que utiliza dos de estos dispositivos junto con 4 2 entradas y puertas para tres paquetes en total.

En estos días es más común realizar una función como la del software en un microcontrolador o como Verilog / VHDL en hardware programable.

¿Puede describir su sistema con más detalle para ver qué solución encajaría mejor?

    
respondido por el Kevin White
2

No sé si existe tal dispositivo, pero:

Enfoques en lugar de 16x "one hot" - > IC de salida de 4 bits

Serializar, contar los relojes hasta que aparezca el 1

  1. Use un (s) registro (s) de desplazamiento en paralelo a la serie para convertir su uso directo en una secuencia de 15 ceros y 1 en el lugar correcto. Reloj que desplaza el registro y alimenta su salida
  2. un contador de 4 bits o más (probablemente encontrará 8 bits) con salida paralela que se sincroniza con el mismo reloj, pero se engancha en la entrada de datos

Lógica programable

Su problema podría muy bien resolverse con un CPLD o incluso un GAL

IC de memoria

Utilice el IC de memoria con el bus de dirección paralelo y el bus de salida de datos paralelo.

Simplemente almacene el valor correcto de 4 bits en la dirección correcta de 16 bits

ROM en lógica de diodo

Básicamente, puede hacer una matriz de tabla de búsqueda en las trazas de PCB. Requerirá una gran cantidad de diodos discretos (4 bits de salida son OR de 8 bits de entrada, cada uno, por lo tanto, 32 si mi matemática es correcta). Pero es "lógicamente" fácil.

Suponga que tiene una puerta "O" de 8 entradas (que serían 8 diodos con un cátodo común). Entonces, la salida más alta sería "¿Es alguna de la segunda mitad de las entradas", verdad? Entonces, solo conectas eso O a estos. De forma similar, su salida más baja sería "cualquiera de las demás entradas", por lo que puede conectarlas a otra puerta 8xOR.

Dato curioso: hay componentes de cátodo común de 8 diodos, ¡y son bastante baratos! Solo use los arrays de diodos de sujeción de TVS ( 8 matrices de diodos de cátodos comunes de cuatro .

ROM usando puertas discretas

Igual que el anterior, pero use compuertas lógicas listas (probablemente de la serie 74) (ORs, o en realidad solo buffers con resistencias de salida).

Escalera de resistencia DAC + salida paralela ADC

Suponiendo entradas de voltaje constante: construya una escalera de resistencia:

simular este circuito : esquema creado usando CircuitLab

Sugerencia: hay redes de resistencias (muchas resistencias en el mismo paquete) que hacen que sea menos difícil de soldar.

Vout es proporcional a la entrada que está actualmente caliente.

Use un ADC con una salida paralela para leerlo.

Extrañamente, este podría ser un enfoque relativamente simple y barato, considerando que los ADC de salida paralela de 8 bits son disponible y no tan caro.

    
respondido por el Marcus Müller

Lea otras preguntas en las etiquetas