¿Qué hace el FPGA con los pines de E / S no referenciados?

5

Aquí hay una que me ha estado desconcertando por un tiempo.

Tengo un diseño FPGA en Altera, manejando un chip de audio y programado a través de su interfaz serial. Monitoreo y depuro esto con un osciloscopio / SignalTAP. El chip está configurado en una configuración de bucle invertido para que lo que se reproduce en LineIn salga de LineOut.

El esquema del chip de audio se muestra a continuación y muestra los pines de la interfaz I2C_SDAT e I2C_SCL. De las entradas, AUD_XCK es proporcionado por un generador de reloj IP (audio estándar ~ 44 kHz) y AUD_DACDAT está vinculado a AUD_ADCDAT para crear el bucle al conectar el ADC directamente al DAC.

Mirando algunos de los relojes, el AUD_BCLK (reloj de frecuencia de bits), AUD_DACLRCK y AUD_ADCLRCK (relojes de frecuencia de muestreo ADC y DAC) se generan internamente (en lo que la hoja de datos llama modo "maestro"). No son necesarios, ya que los datos digitales del ADC se envían directamente a la salida DAC para ir a LineOut.

Sinembargo!AlprogramarelbusserieI2Ctuveuncomportamientoanómalo.Elbusprogramaríaelchipcorrectamente(todoslospresentesdeACK).Sinembargo,elbuclederetornoADC-DACnofuncionóenabsoluto.Loprimeroquepenséfuequenoestabaprogramandolainterfazcorrectamente.

Despuésdemuchocrujirdedientes,dejédeanalizarmiI2C(que,despuésdetodo,estabasiendoACK'dporelchip).ParaversielAUD_BCLKyotrosrelojesfuncionabanenelanalizadorlógico,tuvequeagregarlosaldiseño,yelsimplehechodehacerlohizoquetodoempezaraafuncionar,aunquesedejarondesconectadoscomosemuestraacontinuación:/p>

Encontré que simplemente al incluir estos relojes desconectados, la diferencia entre el funcionamiento del chip o no. Estoy buscando ideas sobre lo que hace la herramienta Altera a los pines no referenciados en el diseño, de manera que si no se incluyen los relojes BCLK, DACLRCK / ADCLRCK en el diseño lógico, el chip no funcionará, ¡aunque estén lógicamente desconectados! ¿Altera une todos los pines no utilizados al suelo cuando los retira o es similar?

Lo siento por la publicación más larga. Espero haber logrado explicar el escenario, ¡todas las ideas / recomendaciones son bienvenidas!

David

    
pregunta davidhood2

1 respuesta

9

De forma predeterminada, Quartus II solía configurar los pines no utilizados como salidas con un nivel bajo. Esto no era bueno como se puede imaginar: una restricción de pin incorrecto y un pin de entrada usado podrían considerarse erróneamente como no utilizados y provocar un cortocircuito en la señal de entrada.

En las versiones más recientes, se cambió a lo sensato "como entrada de tres puntos con un pull-up débil ', lo que me ahorró tener que cambiarlo cada vez que creaba un nuevo proyecto.

Puede cambiarlo en Asignaciones / Dispositivo / DispositivoAndPinOptions / UnusedPins, que muestra el siguiente cuadro de diálogo:

    
respondido por el TonyM

Lea otras preguntas en las etiquetas