Resistencias desplegables externas en Xilinx XC95144XL

0

Necesito su ayuda en la terminación de entrada de la serie Xilxx XC9500XL.

Tengo un Xilinx CPLD XC95144XL que funciona como un controlador matricial de LED así como un registro de desplazamiento de salida en serie de entrada paralela. Un total de 48 señales están conectadas como entradas. 14 salidas controlan una matriz de LED que muestra estas entradas. El registro PISO está interconectado desde un microcontrolador PIC que lee las entradas y también ajusta el reloj.

Algunas de las entradas son activas-altas, otras son activas bajas (en realidad son los componentes de señal redundantes de un diseño de primera falla). No todas las entradas están siempre conectadas, dependiendo de la disponibilidad de los dispositivos conectados que controlan las entradas. Por lo tanto, necesito mantener las entradas en estado inactivo mediante resistencias de tracción en caso de que las entradas no estén controladas. Mi problema es que necesito un menú desplegable en las entradas activas-altas y un menú desplegable en las entradas activas-bajas, pero el CPLD no leerá las entradas desplegables como BAJAS.

El Aplicación Xilinx Nota XAPP784 estados:

  
  1. Evite las resistencias desplegables en los pines.   Todos los CPLD de Xilinx incluyen circuitos adicionales en un pin de E / S más allá del búfer de E / S. Esta   incluye ESD, así como circuitos que gestionan el comportamiento de encendido. Por ejemplo:   a. XC9500 tiene High-Z durante el encendido   segundo. XC9500XL / XV tiene High-Z durante el encendido, luego un seguro de retención   do. XPLA3 tiene High-Z durante el encendido, luego un "medio pestillo"   re. CoolRunner-II tiene High-Z durante el encendido, luego un cierre de seguridad   Las resistencias de arrastre “combaten” la electrónica interna del pasador, que puede comportarse mal debido a la   pull-down externo. Para el comportamiento más predecible, evite las resistencias desplegables de pines.
  2.   

Mi diseño tiene un desplegable de 47k (a GND) en algunas y una resistencia de pull-up de 47k (a 5V) en otras entradas. Todas las entradas tienen además una resistencia de la serie 1k. En el ISE de Xilinx, establezco la configuración Fitter -terminate en "float" para deshabilitar el pull-up interno.

simular este circuito : esquema creado usando CircuitLab

Entonces, cuando inicio el sistema, todas las entradas que no están controladas activamente se leen como '1'. Pero tan pronto como toco esas entradas con un multímetro para medir el voltaje de entrada, el CPLD lee las entradas a medida que las extrae la resistencia externa (visible en la matriz de LED y en los datos desplazados).

¿Alguien puede indicarme cómo deshabilitar realmente el circuito interno de extracción? Me parece que la configuración de "flotación" no es la verdad completa.

Gracias, Ulminpoika

    
pregunta Ulminpoika

2 respuestas

0

Todos los pines del usuario en la serie XC95..XL tienen circuito de retención de bus que es siempre activo (no se puede apagar)

Este diagrama es de la hoja de datos que he anotado con la resistencia de realimentación nominal:

La hoja de datos tiene esto que decir:

  

Cuando el dispositivo no está en una operación de usuario válida, el circuito de retención de bus   por defecto a una resistencia de pull-up equivalente de 50 kΩ para proporcionar una   Estado de dispositivo repetible conocido. Esto ocurre cuando el dispositivo está en el   estado borrado, en el modo de programación, en el modo INTEST JTAG, o durante   arranque inicial. Se puede agregar externamente una resistencia desplegable (1 kΩ)   a cualquier pin para anular la resistencia predeterminada de RBH para forzar un estado bajo   durante el encendido o cualquiera de estos otros modos .

Énfasis mío.

Sugeriría que la única forma simple de anular la retención del bus es mediante el uso de una resistencia de tracción fuerte, independientemente de lo que XAPP784 tenga que decir.

    
respondido por el Peter Smith
0

El atributo FLOAT no parece ser compatible con su familia de CPLD específica, consulte this . Aquí dice que

Los dispositivos XC9500XL y XC9500XV tienen circuitos de retención débiles en todos los pines de E / S para evitar que floten. También puede configurar todos los pines de E / S no utilizados como pines de tierra complementarios al habilitar la propiedad de Project Navigator "Crear pines GND programables en E / S no utilizados" para el proceso de ajuste (diseño de implementos). (Los atributos PULLUP y KEEPER no se aplican a los dispositivos de la serie XC9500).

Hay otro DS054 que aparece en la página 12 que: Cuando el dispositivo no está en una operación de usuario válida, el bus de espera Por defecto, el circuito tiene una resistencia de pull-up equivalente de 50 kΩ en Para proporcionar un estado de dispositivo repetible conocido. Esta Ocurre cuando el dispositivo está en el estado borrado, en la programación modo, en modo JTAG INTEST, o durante la inicial Encender. Una resistencia de bajada (1 kΩ) puede ser externa añadido a cualquier pin para anular la resistencia predeterminada de RBH a forzar un estado bajo durante el encendido o cualquiera de estos otros modos

Por lo tanto, es posible que no vea la imagen completa, pero hasta ahora parece que estás atrapado en los "circuitos de mantenimiento de la semana" y la resistencia de activación de 50k predeterminada. Por lo tanto, es posible que su resistencia de 47k no sea lo suficientemente "fuerte" para dominar la resistencia interna. Agregar una resistencia de 1k puede no ser una buena solución cuando necesite conducir el pin.

¿Tiene una opción para agregar un búfer externo / controlador de línea?

    
respondido por el Nazar

Lea otras preguntas en las etiquetas