Señales extrañas I2C emitidas desde FPGA

1

Tengo un dispositivo ZedBoard FPGA y estoy tratando de implementar una interfaz I2C para comunicarme con un módulo de cámara. Estoy usando Vivado 2014.2 y he agregado un bloque AXI IIC a mi diseño con la frecuencia de reloj SCL establecida en 90 KHz. Los pines físicos SCL / SDA tienen una resistencia de pullup de 10k a VCC (también probaron 4K7). Por alguna razón, mi alcance muestra que ambos pines ya tienen algún tipo de señal no válida que se está emitiendo en ellos, cuando debería estar en baja ya que aún no he configurado ninguna comunicación real en el software. ¡También note que la velocidad de estas señales es de 24MHz! Cuál es la velocidad del reloj del procesador integrado por alguna razón (no, los pines NO están mezclados). Aquí está la salida del alcance con los pines SCL / SDA:

¿Alguna idea de por qué sucede esto?

    
pregunta bparker

3 respuestas

1

Por lo tanto, las señales no deseadas están sincronizadas pero no son perfectamente idénticas (aunque ese podría ser el alcance) y alrededor de 1Vpp.

¿La interferencia, quizás? ¿Hay otra señal digital sincronizada en un pin o rastreo cercano? ¿Desaparecen las señales no deseadas si conectas a tierra los pines en lugar de dejarlos flotando con detectores?

Si no incluye el módulo I2C en la compilación, ¿muestran los pines el mismo comportamiento? Si incorporas algún GPIO conectado a esos pines y los pines en alto y / o bajo, ¿se superpone la señal no deseada en el nivel lógico accionado?

Además, ¿el bloque Zynq PS ya tiene dos periféricos I2C? ¿Por qué no estás usando uno de ellos?

    
respondido por el markt
0

Me parece que no estás conduciendo activamente los pines SCL / SDA. Probablemente estén configurados como de alta impedancia de forma predeterminada en el flujo de bits y, por lo tanto, simplemente muestran el ruido del reloj de pin adyacente como otros han sugerido. Parece que el alcance está mostrando 500mv por división, por lo que la magnitud del ruido me parece grande, pero eso no lo descarta cuando está en alta impedancia, si su pullup no estaba funcionando.

Intente mirar el editor de pin / pad del dispositivo para asegurarse de que realmente tenga los pins activados como pins impulsados. Compruebe que los pines de GND y de alimentación para el específico IO-Bank que contiene estos pines están conectados en su tarjeta y no están flotando. Compruebe que las conexiones verilog / vhdl estén intactas. Dependiendo de la cadena de herramientas FPGA del proveedor, busque la vista esquemática y vuelva atrás del Pin IO para asegurarse de que en realidad esté controlado por algunos flip flops y que la señal de entrada del pin (el controlador de la celda IO para la 'z' lógica) no sea reemplazado por la constante 1.

Estoy seguro de que tan pronto como los controladores activos para estos pines estén habilitados, el ruido se reducirá por completo con la señal.

    
respondido por el shuckc
0

Disculpe si esto es demasiado obvio, pero ¿tiene las sondas de alcance configuradas en límite de banda de 10: 1 y 20MHz 'off' en el 'alcance?

    
respondido por el Spehro Pefhany

Lea otras preguntas en las etiquetas