Cómo reducir o eliminar el ruido cuando se usa un ADC para muestrear el bus CAN

0

Estoy trabajando en un proyecto para muestrear mensajes CAN basados en un tablero Xilinx Spartan-6. Quiero obtener la información de tiempo de los mensajes CAN. El esquema del módulo de adquisición de datos se muestra a continuación.

El módulo (incluido AD9226) funciona bajo un reloj de 50 MHz.

Subtracter:

EntradadesdeCANHmenosentradadesdeCANL,paraobtenerelvoltajediferencial.

Comparador:

  • Siesmayorqueelvalordeumbral,entoncesemitaun‘0’dominante.
  • Siesmásbajoqueelvalordeumbral,entonceslasalidarecesiva"1".

El módulo AD que elijo es éste que se puede conectar directamente a la placa FPGA.

Vinculé la salida final con un pin de E / S de la placa FPGA para poder observarlo mediante un analizador lógico. Se ve bien cuando se usa el analizador lógico.

Peropuedesnotarquehayunruidoquenoquiero.

AquíestáelresultadoqueobservéporChipScope.Lafrecuenciademuestreoesde50MHz.

Hay tantas transiciones no deseadas.

El módulo ADC está bien diseñado y se puede conectar directamente al FPGA, por lo que no espero tanto ruido de la entrada.

¿Hay alguna manera de eliminar el ruido para mejorar la situación? ¿Hay algún principio de diseño que pueda seguir al usar un ADC para muestrear una señal?

    
pregunta Joe

1 respuesta

0

Su FPGA tiene DFF de entrada y salida para cada pin. Lea sobre los DFF de los pines de E / S en Xilinx UG381, particularmente en la entrada de pines DFF (ILOGIC2) y el camino de retardo de entrada de pin a DFF programable a ese DFF (DDLY).

Utilice estos DFF de entrada en los pines del bus de datos de entrada de su ADC para bloquear los resultados de la conversión del ADC.

Las relaciones de sincronización entre un pin a su entrada DFF y su salida DFF son fijas para el silicio, variando solo con la temperatura y ligeramente de parte a parte. Puede ajustar sus DDLY para obtener un tiempo de configuración de reloj que se adapte a los horarios de los buses ADC.

Entonces, no necesita restricciones de tiempo y el enrutamiento de síntesis se simplifica y es consistente en las compilaciones. Esto es mucho más simple.

Asegúrese de que su VHDL lleve el bus ADC directamente a los DFF, sin lógica combinatoria entre los pines y los DFF. De lo contrario, los DFF de pin de entrada no se pueden usar porque el circuito no se puede enrutar durante la síntesis.

    
respondido por el TonyM

Lea otras preguntas en las etiquetas