Tengo un problema con el FT232HL FTDI ic.
La aplicación de Windows envía datos al chip a través de USB y el chip envía los datos con un canal SPI.
Verifiqué con un analizador lógico, los bytes se envían correctamente y el reloj SPI coincide con la configuración. Sin embargo, entre cada byte, hay un retraso de 64 uS, lo que significa que no importa qué tan alto sea el reloj SPI, la transferencia de datos toma minutos en lugar de segundos.
Imaginé que tal vez jugar con channelConf.LatencyTimer ayudaría, pero no muestra ninguna diferencia sin importar el valor utilizado (10, 128, 255), el retardo permanece 64uS entre bytes consecutivos.
Debe haber algo que arreglar porque hay numerosos ejemplos de personas que alcanzan altas tasas de transferencia. Además, el retraso entre bytes debería ser un ajuste en algún lugar.
He usado código de muestra proporcionado con sample-dynamic.c El flujo de bytes se envía con una sola llamada a p_SPI_Write () con una longitud total de 2048 bytes. He intentado otra longitud (256, 8192, etc) sin cambios. Aquí está la configuración utilizada:
channelConf.ClockRate = 5000*1000;
channelConf.LatencyTimer= 10;
channelConf.configOptions = SPI_CONFIG_OPTION_MODE0| SPI_CONFIG_OPTION_CS_DBUS3/*|*/ ;
channelConf.Pin = 0x00000000; /* FinalVal-FinalDir-InitVal-InitDir (for dir: 0=in, 1=out) */
SO: windows7 X64 Compilador: GCC Biblioteca y código de: enlace
Para tu información: me puse en contacto con el servicio de asistencia técnica de FTDI, me pidieron que actualizara las bibliotecas a la más reciente (lo que hice) y luego no me brindaron más ayuda.
Cualquier ayuda apreciada. Gracias.