Detectar qué pines son entradas o salidas

3

Tengo la idea de crear un dispositivo con un zócalo ZIF genérico que pueda usarse para identificar cualquier chip que coloques en él y, una vez identificado, realizar una serie de pruebas para verificar que el chip funciona. Espero apuntar a la mayor parte de la línea 74xx de circuitos integrados.

Mi idea es básicamente conectar cada pin del zócalo a un pin IO en mi MCU. Los chips de la serie 74xx no deben consumir suficiente corriente como para que no pueda alimentarlos desde un puerto de E / S decente, por lo que los arreglos de pines de alimentación impares o el diferente número de pines no debería ser un problema. Para los chips simples, debería ser bastante trivial conduzca los pines de entrada y verifique los pines de salida, una vez que sepa qué chip es. Surgen complicaciones adicionales cuando entro en salidas de colector abierto, salidas de tres estados, activadores de schmitt, etc ..., pero tal vez necesiten preguntas por separado.

Aquí es donde estoy atascado ahora: ¿Hay una buena manera de detectar qué pines son entradas y salidas sin conducir más líneas de las necesarias? Lo más probable es que comience con todos mis pines IO como entradas. Puedo usar las débiles flexiones del microcontrolador para impulsar las líneas flotantes hacia arriba, así que sé que cualquier pin que sea cero es definitivamente una salida del IC. Puedo usar esa información para limitar mis posibilidades, pero dudo que sea suficiente. Cualquier adivinanza conduciendo los pines sin saber qué son las entradas y salidas parece ser una buena manera de causar un cortocircuito.

Estaba pensando que tal vez si añadiera un pulldown externo un poco más fuerte detrás de un interruptor analógico en serie o algo así, podría activar los controles desplegables y comprobar cuáles son ahora altos para obtener una mejor imagen de lo que son entradas y salidas, pero No sé qué tan bien funcionaría, ya que podría cambiar las entradas al IC bajo prueba.

Leí en alguna parte aquí que la forma tradicional de detectar alta impedancia es poner a tierra resistencias iguales y potencia y medir el centro con adc, pero no tengo suficientes entradas analógicas para que parezca factible.

    
pregunta captncraig

3 respuestas

2

Lo que estás tratando de hacer es un poco más complicado de lo que parece. Para los pines de E / S desconocidos en general, parece que necesitará dos pines del microcontrolador. Un pin será una salida con quizás 5 kΩ en serie. El otro pin es una entrada conectada directamente al pin del chip de prueba. Esto le permite conducir el pin alto y bajo, y dejarlo sin conducir. Pero en todos los casos se puede ver cuál es el nivel digital con el otro pin del microcontrolador. Con esta configuración, puede detectar todos los posibles casos digitales del pin bajo prueba de conducción alta, baja o alta impedancia.

Si estipula que esta configuración de prueba es solo para chips lógicos digitales y solo para el mismo voltaje de alimentación que el microcontrolador, entonces no hay necesidad de analógico.

Sin embargo, los pines de alimentación y tierra son otra cuestión. Estos pasadores deben atarse sólidamente alto o bajo durante la operación. En el caso arbitrario, necesitará interruptores laterales bajos y altos en cada pin, ya que cualquiera de ellos podría ser eléctrico o conectado a tierra. Esto se ensucia rápido.

No quiero llover sobre tu idea de un proyecto personal, pero francamente esto me parece bastante difícil de entender y no sirve de mucho si lo haces. La lógica discreta 74xxx se usa raramente en la actualidad, y cuando necesito identificar los chips no encuentro que leer el número del chip sea tan malo.

¿Qué tal un medidor de condensador? Esos pequeños retoños ya no están etiquetados.

    
respondido por el Olin Lathrop
1

Creo que su pregunta tal vez se reduzca a "¿cómo se multiplexan las señales analógicas en un ADC?"

Creo que la respuesta es que deberías considerar usar un (o un conjunto de) Multiplexor analógico (MUX). Digamos que solo tiene seis entradas ADC ... bueno, al incorporar seis MUX analógicas 4x1, puede muestrear efectivamente 4 * 6 = 24 señales analógicas a expensas de dos o tres salidas digitales (para entradas de selección compartidas para todos los MUXes). Voila!

Como ejemplo, este parece que podría funcionar en tu aplicación.

    
respondido por el vicatcu
0

Como una solución inicial que consideraría, en orden de complejidad creciente, usar un multiplexor analógico para conectarse a un

  • 1 - fuente / sumidero actual

  • 2 - que era programable

  • 3 - y que podría programarse para limitar sus rangos de voltaje superior e inferior.

Ninguna de las opciones anteriores es difícil y solo necesitas una fuente / sumidero controlada por pin para ser manejado.

Duplicar esto N veces donde N era suficiente para lidiar con la mayoría de las probabilidades del mundo real sería "bastante fácil".

Puede implementar solo 1. con algo de corriente útil o 1 & 2 o 123. Incluso 123 es bastante fácil. Ahora puede ajustar un pin determinado por una cantidad determinada para ver lo que hace.

Si está usando solo TTL genuino como implica "74xx", pero esto no significa que las pruebas sean mucho más fáciles debido a los atributos de entrada de TTL muy específicos.

Más adelante: para puntos adicionales, probablemente pueda cambiar un mux dual a una serie de condensadores detrás de resistores de bajo valor, establezca los condensadores requeridos con un controlador y los multiplexará en pines individuales lo suficientemente rápido para actuar como si fuera continuo. Se puede cuidar con cuidado, pero es mejor dejarlo para más tarde.

    
respondido por el Russell McMahon

Lea otras preguntas en las etiquetas