Después de 9 meses encontré una respuesta, es lo que sigue:
Para manejar los Bits de forma independiente en un FTDI FT232xx o su homónimo PL232xx:
Salidas: DTR - RTS
Entradas: CTS - DSR - (RI*) - DCD
* ("RI" sólo es compatible con la UART es decir el Com1 y 2 que viene en los PC de sobremesa por defecto; en los FTDI no suele tener implementada esta patilla, porque sólo se usan en los antiguos Modem)
He comprobado la frecuencia máxima de cambio de estado con un osciloscopio. Si pones a cambiar el estado sólo una de las salidad (DTR ó RTS) se obtiene una frecuencia máxima de 166 Hercios. Y si usas los dos a la vez (DTR y RTS), la frecuencia es de 85 hercios. Esto es muy pobre, y para lo que necesitaba no me es factible, pero comunico los resultados por si alguien le encuentra alguna función a todo esto.
El programa está escrito en FreeBasic. No sé cómo se hace en otros lenguajes de programación. Si no puedes acceder al zip que adjunto, copio aquí los dos programas. Hace parpadear dos LED conectados al DB9 del FTDI (también es válido para la UART del PC, pero hay otras formas mucho más sencillas de manejarlo, directamente con la instrucción "Out puerto, dato" [has de abrir el puerto de comunicaciones previamente con 'Open com "com1:2400,8,n,1,rs,ds,cd" as #1' si estás en plataformas de SO de 32 ó 64 bits como el Win XP; en win98 no hace falta abrir el puerto porque el kernel del SO es de 16 bits, es decir, tipo msdos] y puedes alcanzar más de 20KHz de parpadeo). Las conexiones están en el JPG que adjunto. En pantalla no sale nada porque se trata de ver el parpadeo de los LEDs. Antes de ejecutar el programa has de averiguar en qué puerto Com está tu FTDI; lo puedes encontrar en: Inicio > Panel de Pontrol > Sistema > Hardware > Administrador de Dispositivos > Puertos Com & LPT > y pulsas en el símbolo '+', ahí verás la referencia del puerto donde esté. Si quieres tb puedes cambiar el Com a otro que tu quieras mientras esté libre, pulsando con el botón derecho y le das a "Propiedades" y después pulsas en la pestaña "Configuración del puerto". Pulsas sobre el botón "Opciones avanzadas" y verás abajo de esa ventana que te permite cambiar el Com a otro puerto si está libre.
En cualquiera de los dos programas has de pulsar "Escape" para salir.
Puedes descargar los códigos fuentes, esquema y los ejecutables
aquí:
Pines:
RTS -----> patilla 7 del DB9
DTR -----> patilla 4 del DB9
Masa ----> patilla 5 del DB9
-------------------------------------------------------------------------------
Manejo de las Salidas TxD, RTS y DTR del FTDI FT232xx ó PL232xx:
#Include "windows.bi"
Dim Letra As String
Dim hCom As HANDLE
Dim ComX As Integer
Screen 9
Locate 10,1: Input " Escribe solo el -numero- del puerto COM donde tengas tu FTDI. COM:"; ComX
Color 14,1
Cls
Locate 10,1
Print " Observa el cambio de estado de los LED. Han de parpadear"
Print " secuencialmente, un segundo de tiempo cada uno."
Print
Print " Pulsa 'Escape' para salir; quiza tarde varios segundos en"
Print " tener efecto por la temporizacion que hay en el programa."
hCom = CreateFile( "Com" + Str(ComX), GENERIC_READ Or GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL )
While Letra <> Chr( 27 )
Letra=InKey()
EscapeCommFunction( hCom, SETDTR ) ' DTR=1
Sleep 500
EscapeCommFunction( hCom, CLRDTR ) ' DTR=0
Sleep 500
EscapeCommFunction( hCom, SETRTS ) ' RTS=1
Sleep 500
EscapeCommFunction( hCom, CLRRTS ) ' RTS=0
Sleep 500
EscapeCommFunction( hCom, SETBREAK ) ' TxD=1
Sleep 500
EscapeCommFunction( hCom, CLRBREAK ) ' TxD=0
Sleep 500
Wend
CloseHandle( hCom )
End
Y ahora el programa para leer las entradas. Si las patillas de entrada (CTS - DSR - DCD - RI) están sueltas lo interpreta como un 0. Hay que llevarlas a positivo para que se ponga, las entradas que corresponda, a 1. Los resultados podrás leerlo en el monitor.
Pines de entradas:
CDC -----> patilla 1 del DB9
DSR -----> patilla 6 del DB9
CTS -----> patilla 8 del DB9
RI -------> patilla 9 del DB9 (opcional)
Masa ----> patilla 5 del DB9
Manejo de las patillas CDC, DSR, CTS y RI* del FTDI FT232xx ó PL232xx:
* (No en todos los FTDI tiene la función 'RI' integrada.)
#Include "windows.bi"
Dim Letra As String
Dim hCom As HANDLE
Dim modemStat As Dword
Dim ComX As Integer
Screen 9
Locate 10,1: Input "Escribe solo el -numero- del puerto COM donde tengas tu FTDI. COM:"; ComX
Cls
hCom = CreateFile( "Com" + Str(ComX), GENERIC_READ Or GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL )
While Letra = ""
Letra=InKey()
GetCommModemStatus( hCom, @modemStat )
Locate 10,10
If modemStat And MS_CTS_ON Then Print "CTS=1 "; Else Print "CTS=0 ";
If modemStat And MS_DSR_ON Then Print "DSR=1 "; Else Print "DSR=0 ";
If modemStat And MS_RING_ON Then Print "RING=1 "; Else Print "RING=0 ";
If modemStat And MS_RLSD_ON Then Print "RLSD=1" Else Print "RLSD=0"
Print modemstat
Wend
CloseHandle( hCom )
End