Ruido curioso en la conexión del microcontrolador FPGA

0

Tengo la siguiente configuración:

Una placa de evaluación FPGA tiene una placa hija con encabezados de pines conectados a ella. Desde estos encabezados conecté cables de calibre 24 de 16 ~ 10 pulgadas para alimentar un bus a los conectores integrados incorporados de la placa de evaluación TI OMAP-138 Microcontroller conectados a sus pines GPIO. Estoy generando formas de onda de audio (voz) en el FPGA y enviándolas a través del bus a una velocidad constante de 8 Ksps. El reloj del FPGA es de 30 MHz y el Microcontrolador es de 300MHz. El FPGA también envía una señal de reloj que utilizo para muestrear los datos.

El problema es que cuando muestro los datos del microcontrolador, veo una distorsión importante en el audio de lectura (lo obtengo de un volcado de memoria). También leí los datos del FPGA con un analizador lógico de un conector Mictor en la misma placa hija y esa señal no está distorsionada.

Aquí hay una imagen de los dos (no muy alineados pero lo suficientemente cerca para verlos).


enlace

No tengo experiencia en tratar con transitorios como este. A estas velocidades, ¿se espera este tipo de distorsión o es probable que sea un problema con la forma en que estoy leyendo los datos con el microcontrolador?

    
pregunta ballaw

1 respuesta

3

Esto tiene que ser un error de protocolo entre FPGA y MCU. Su MCU está leyendo mal (de alguna manera) su señal de CA (audio) de bajo nivel del FPGA. El ruido parece un valor incorrecto del bit de signo que aparece como grandes impulsos en la señal decodificada.

Como dice Dave Tweed, no quieres que la MCU esté leyendo la señal mientras que la FPGA la está actualizando. ¿Estás leyendo todos los pines GPIO con una sola instrucción? Supongo que no.

Es posible que desee a prueba de bombas esta transferencia con un apretón de manos de FPGA a MCU. Actualice la muestra de audio y luego haga valer una señal Req. Espere a que la MCU haga valer una señal de Ack, retraiga Req, luego espere hasta que la MCU retraiga a Ack (y la siguiente muestra esté lista) antes de actualizar la señal nuevamente.

En la MCU, solo accede a los datos de audio cuando Ack es 1.

    
respondido por el Brian Drummond

Lea otras preguntas en las etiquetas