¿Se puede dar a un puerto de 8 bits de 8255 ppi 10 entradas (líneas de entrada) usando puertas OR?

0

Alternativamente, ¿solo se pueden usar 2 bits de los 8 bits del Puerto A para las 2 entradas restantes? Estoy usando 8255 con un ADC de 8 bits, por lo que el Puerto C no se puede usar ya que se usa para comunicarse con el ADC.     

pregunta trs stl

3 respuestas

0

Un puerto de 8 bits solo puede manejar 8 bits. Si usa una compuerta OR para combinar dos bits en una entrada, esa entrada solo verá el OR de esos dos bits, probablemente no sea lo que desea.

Es bastante común usar solo parte de un puerto de 8 bits para datos. Para su ADC de 10 bits, pondría los dos bits de mayor orden del ADC en los dos bits más bajos del puerto A. Los bits restantes del puerto A podrían usarse para otras entradas, con un poco de software para separar las distintas partes del byte recibido.

    
respondido por el Peter Bennett
0

¿Qué tipo de entradas estás leyendo? Si es analógico, tiene otros problemas y una compuerta OR no funcionará en absoluto. Si se trata de datos digitales, considere utilizar una matriz. Podría tener una matriz de 4x4 que le permita leer 16 entradas con estas 8 líneas.

Una alternativa es usar un MUX y leer hasta 512 entradas. Realmente depende de lo que quieras decir con "entrada"

    
respondido por el Gineer
0

He usado el 82C55 mucho en años anteriores. Le proporciona tres puertos de E / S de 8 bits: PA, PB y PC. Al ser un dispositivo diseñado a principios y mediados de los 70, sus modos de configuración están bastante restringidos.

Para el puerto A, los pines PA [7: 0] pueden ser todas las salidas o todas las entradas, no una mezcla de ambas. Por lo tanto, conducir las líneas de selección de muxes y demás es imposible porque eso requeriría que algunos pines sean salidas y otros que sean entradas.

Lo que puede hacer es monitorear un multiplexor de ejecución libre (mux) que alterne automáticamente entre dos conjuntos de entradas a una velocidad razonable que su software pueda seguir. PA [7] se utilizará para indicar cuál de los dos conjuntos se está leyendo y PA [6: 0] puede transportar los datos de entrada. Esto permite 14 entradas a través de su puerto de entrada de 8 bits.

No sé a qué circuito lógico o recursos tiene acceso, así que mostraré un diseño que ilustra la idea. Revisa tu pregunta aún más y esto se puede ajustar mejor a lo que tienes.

simular este circuito : esquema creado usando CircuitLab

El 'reloj lento' es un cambio de señal cuyo conjunto de 7 entradas aparece en PA [6: 0], junto con el indicador de identificación de conjunto en PA [7]. Cada conjunto aparece durante la mitad del período de este reloj, por lo que debe elegir una velocidad lo suficientemente lenta para que su software se mantenga al día. Pero esto debe ser lo suficientemente rápido para que su software se mantenga al tanto de lo que hay en las entradas, por lo que es uno para que pueda trabajar. Tal vez 50 KHz por un tiempo de lectura de 10 us en cada conjunto de entradas.

Puede derivar 'reloj lento' dividiendo un reloj accesible existente en su circuito, utilizando un 74HCT4060 o similar. Puede usar el mismo 74HCT4060 de su oscilador R-C para obtener el 'reloj lento'. El inversor causará un ligero tiempo de contención del bus en las salidas de ambos 74HCT245s después de cada transición 1 a 0, pero nada que cause un problema de forma remota.

Podrías hacer todo esto con un CPLD, generando menos circuitos integrados pero necesitando conocimientos de lógica programable. Esta sería una buena idea para cortarte los dientes si no conoces la lógica programable y estás dispuesto a aprender. Todo el software está disponible gratis a través de internet. Desde lo alto de mi cabeza, un XC9572XL haría todo el lote con un oscilador lógico de 1 MHz conectado, pero házmelo saber y puedo sugerir más dispositivos actualizados.

Sería mejor que su software lea el PA muchas veces de manera rápida y use la lectura de dos lecturas antes de que se detecte que el PA [7] cambia de 0 a 1 o de 1 a 0. Esto asegura que no lea un valor cercano a un cambio entre conjuntos cuando los valores de lectura pueden no ser confiables a medida que los circuitos cambian.

    
respondido por el TonyM

Lea otras preguntas en las etiquetas