Por lo tanto, tengo un CPLD Xilinx CoolRunner II con el que estoy trabajando y que está hablando con periféricos con alimentación condicional. Estoy usando el CPLD como una especie de traductor de nivel lógico entre un microcontrolador y los periféricos, así como para alguna lógica interna. Necesito que las entradas periféricas al CPLD sean bajas cuando no están accionadas (apagadas). Lo primero que pensé fue usar algunos controles desplegables externos en las líneas de E / S, pero luego leí esto en una de las notas de la aplicación del fabricante:
Evita las resistencias desplegables. Siempre use resistores de pull-up externos si se requiere una terminación externa. Esto se debe a que el CPLD, que incluye algunos circuitos de activación de E / S más allá de los búferes de entrada y salida, puede tener conflicto con resistencias de extracción externas y, en consecuencia, la E / S no cambiará como se esperaba.
y en otros lugares recomiendan:
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:
- XC9500 tiene High-Z durante el encendido
- XC9500XL / XV tiene High-Z durante el encendido, luego un cierre de seguridad
- XPLA3 tiene High-Z durante el encendido, luego un "medio pestillo" de mantenimiento
- CoolRunner-II tiene High-Z durante el encendido, luego un seguro de retención
Las resistencias desplegables "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.
Actualmente estoy persiguiendo si puedo usar la señal de potencia del periférico como una indicación para bajar la línea o dejar que sea controlada por el periférico, así que lo haré si es posible. Mi pregunta es ¿qué pasaría si ignoro las advertencias de los fabricantes? ¿Qué pasa si uso un desplegable extremadamente débil? 10Meg? 100Meg? ¿Alguien ha hecho esto alguna vez?