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?
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?
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?
No sé si existe tal dispositivo, pero:
Su problema podría muy bien resolverse con un CPLD o incluso un GAL
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
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 .
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).
Suponiendo entradas de voltaje constante: construya una escalera de resistencia:
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.
Lea otras preguntas en las etiquetas encoder