Probando un chip FTDI

6

Tengo un chip FTDI (manual de referencia aquí ) que traduce el USB de un PC a un canal SPI conectado a un FPGA. Me gustaría probar que la ruta de comunicación entre la PC y el FPGA es funcional.

Probablemente, el enfoque más sencillo sería realizar una prueba de bucle invertido de algún tipo entre la PC y la FPGA, donde la PC controla la prueba y la FPGA refleja todo lo que recibe.

El chip FTDI viene con una API de C para la comunicación SPI (ejemplo disponible aquí ). En el lado FPGA, quiero tener que escribir Verilog mínimo.

¿Cuál sería la prueba de bucle invertido más fácil que podría tener en el lado FPGA que es compatible con esta API SPI?

    
pregunta Randomblue

2 respuestas

11

Nota: la pregunta se puede interpretar como un problema de diseño, lo dirijo como tal.

Si desea probar el chip FTDI, omitiría el FPGA. Si lo usas, estarás probando dos cosas a la vez, y no sabrás dónde está el error en caso de que no funcione.

El bucle invertido es una buena idea, pero yo iría directamente desde la salida FTDI a su entrada y conectaría un analizador de alcance o lógico a eso. SPI es muy fácil de reconocer y decodificar directamente desde la pantalla. Envíe un byte, verifique el alcance / analizador lógico y vea si recupera el byte.

Una vez que el FTDI esté bien, puede continuar con el siguiente paso, la implementación de SPI en el FPGA.

editar
Para una prueba de producción también puede usar un bucle de retorno. Su FPGA tiene implementado el SPI y su registro de desplazamiento actúa como un retraso. Haga que la PC envíe un byte específico, que cambiará en el registro de cambios SPI. Luego, deje que la PC envíe otro byte y recuperará el anterior (asumiendo que tiene un registro de desplazamiento de 8 bits. IIRC, los controladores NXP Cortex tienen un SPI de 16 bits). Eso no requiere ninguna lógica de prueba adicional en el FPGA.

Esto le permite obtener una verificación buena / mala para el bucle completo, pero no tiene ninguna información de dónde está el error en caso de que la prueba falle. Por lo tanto, dejaría que el FPGA comparara el primer byte recibido con el valor esperado, y generara un bit bueno / malo que luego puede ser leído por la plantilla de prueba. Entonces, en caso de error, al menos sabrá si la ruta de PC a FPGA está bien o no.

    
respondido por el stevenvh
1

está bien para el FPGA, necesitará escribir / crear / obtener un módulo SPI. Con un módulo SPI adecuado, puede hacer un bucle de la salida a la entrada, pero es probable que requiera algún tipo de búfer para almacenar los datos. La razón de esto es que cuando se reciba el primer bit del byte de entrada, ya habrá intentado transmitir el primer byte de la respuesta.

Por lo tanto, necesitará algunos buffers y lógica para conectarse al módulo SPI para recibir el byte, almacenarlo y enviarlo de vuelta al módulo SPI para su retransmisión.

En el lado de la PC, algún tipo de programa de terminal para conectarse al puerto serie virtual que instalará el FTDI. El término de Tera es bueno para eso.

    
respondido por el smashtastic

Lea otras preguntas en las etiquetas