53 #define FTD2XX_API __declspec(dllexport) 55 #define FTD2XX_API __declspec(dllimport) 59 typedef PVOID FT_HANDLE;
60 typedef ULONG FT_STATUS;
71 FT_INSUFFICIENT_RESOURCES,
75 FT_DEVICE_NOT_OPENED_FOR_ERASE,
76 FT_DEVICE_NOT_OPENED_FOR_WRITE,
77 FT_FAILED_TO_WRITE_DEVICE,
78 FT_EEPROM_READ_FAILED,
79 FT_EEPROM_WRITE_FAILED,
80 FT_EEPROM_ERASE_FAILED,
81 FT_EEPROM_NOT_PRESENT,
82 FT_EEPROM_NOT_PROGRAMMED,
86 FT_DEVICE_LIST_NOT_READY,
90 #define FT_SUCCESS(status) ((status) == FT_OK) 96 #define FT_OPEN_BY_SERIAL_NUMBER 1 97 #define FT_OPEN_BY_DESCRIPTION 2 98 #define FT_OPEN_BY_LOCATION 4 104 #define FT_LIST_NUMBER_ONLY 0x80000000 105 #define FT_LIST_BY_INDEX 0x40000000 106 #define FT_LIST_ALL 0x20000000 108 #define FT_LIST_MASK (FT_LIST_NUMBER_ONLY|FT_LIST_BY_INDEX|FT_LIST_ALL) 114 #define FT_BAUD_300 300 115 #define FT_BAUD_600 600 116 #define FT_BAUD_1200 1200 117 #define FT_BAUD_2400 2400 118 #define FT_BAUD_4800 4800 119 #define FT_BAUD_9600 9600 120 #define FT_BAUD_14400 14400 121 #define FT_BAUD_19200 19200 122 #define FT_BAUD_38400 38400 123 #define FT_BAUD_57600 57600 124 #define FT_BAUD_115200 115200 125 #define FT_BAUD_230400 230400 126 #define FT_BAUD_460800 460800 127 #define FT_BAUD_921600 921600 133 #define FT_BITS_8 (UCHAR) 8 134 #define FT_BITS_7 (UCHAR) 7 140 #define FT_STOP_BITS_1 (UCHAR) 0 141 #define FT_STOP_BITS_2 (UCHAR) 2 147 #define FT_PARITY_NONE (UCHAR) 0 148 #define FT_PARITY_ODD (UCHAR) 1 149 #define FT_PARITY_EVEN (UCHAR) 2 150 #define FT_PARITY_MARK (UCHAR) 3 151 #define FT_PARITY_SPACE (UCHAR) 4 157 #define FT_FLOW_NONE 0x0000 158 #define FT_FLOW_RTS_CTS 0x0100 159 #define FT_FLOW_DTR_DSR 0x0200 160 #define FT_FLOW_XON_XOFF 0x0400 165 #define FT_PURGE_RX 1 166 #define FT_PURGE_TX 2 172 typedef void (*PFT_EVENT_HANDLER)(DWORD,DWORD);
174 #define FT_EVENT_RXCHAR 1 175 #define FT_EVENT_MODEM_STATUS 2 176 #define FT_EVENT_LINE_STATUS 4 182 #define FT_DEFAULT_RX_TIMEOUT 300 183 #define FT_DEFAULT_TX_TIMEOUT 300 189 typedef ULONG FT_DEVICE;
207 #define FT_BITMODE_RESET 0x00 208 #define FT_BITMODE_ASYNC_BITBANG 0x01 209 #define FT_BITMODE_MPSSE 0x02 210 #define FT_BITMODE_SYNC_BITBANG 0x04 211 #define FT_BITMODE_MCU_HOST 0x08 212 #define FT_BITMODE_FAST_SERIAL 0x10 213 #define FT_BITMODE_CBUS_BITBANG 0x20 214 #define FT_BITMODE_SYNC_FIFO 0x40 220 #define FT_232R_CBUS_TXDEN 0x00 // Tx Data Enable 221 #define FT_232R_CBUS_PWRON 0x01 // Power On 222 #define FT_232R_CBUS_RXLED 0x02 // Rx LED 223 #define FT_232R_CBUS_TXLED 0x03 // Tx LED 224 #define FT_232R_CBUS_TXRXLED 0x04 // Tx and Rx LED 225 #define FT_232R_CBUS_SLEEP 0x05 // Sleep 226 #define FT_232R_CBUS_CLK48 0x06 // 48MHz clock 227 #define FT_232R_CBUS_CLK24 0x07 // 24MHz clock 228 #define FT_232R_CBUS_CLK12 0x08 // 12MHz clock 229 #define FT_232R_CBUS_CLK6 0x09 // 6MHz clock 230 #define FT_232R_CBUS_IOMODE 0x0A // IO Mode for CBUS bit-bang 231 #define FT_232R_CBUS_BITBANG_WR 0x0B // Bit-bang write strobe 232 #define FT_232R_CBUS_BITBANG_RD 0x0C // Bit-bang read strobe 238 #define FT_232H_CBUS_TRISTATE 0x00 // Tristate 239 #define FT_232H_CBUS_TXLED 0x01 // Tx LED 240 #define FT_232H_CBUS_RXLED 0x02 // Rx LED 241 #define FT_232H_CBUS_TXRXLED 0x03 // Tx and Rx LED 242 #define FT_232H_CBUS_PWREN 0x04 // Power Enable 243 #define FT_232H_CBUS_SLEEP 0x05 // Sleep 244 #define FT_232H_CBUS_DRIVE_0 0x06 // Drive pin to logic 0 245 #define FT_232H_CBUS_DRIVE_1 0x07 // Drive pin to logic 1 246 #define FT_232H_CBUS_IOMODE 0x08 // IO Mode for CBUS bit-bang 247 #define FT_232H_CBUS_TXDEN 0x09 // Tx Data Enable 248 #define FT_232H_CBUS_CLK30 0x0A // 30MHz clock 249 #define FT_232H_CBUS_CLK15 0x0B // 15MHz clock 250 #define FT_232H_CBUS_CLK7_5 0x0C // 7.5MHz clock 259 FT_STATUS WINAPI FT_Open(
265 FT_STATUS WINAPI FT_OpenEx(
272 FT_STATUS WINAPI FT_ListDevices(
279 FT_STATUS WINAPI FT_Close(
284 FT_STATUS WINAPI FT_Read(
288 LPDWORD lpBytesReturned
292 FT_STATUS WINAPI FT_Write(
295 DWORD dwBytesToWrite,
296 LPDWORD lpBytesWritten
300 FT_STATUS WINAPI FT_IoCtl(
302 DWORD dwIoControlCode,
307 LPDWORD lpBytesReturned,
308 LPOVERLAPPED lpOverlapped
312 FT_STATUS WINAPI FT_SetBaudRate(
318 FT_STATUS WINAPI FT_SetDivisor(
324 FT_STATUS WINAPI FT_SetDataCharacteristics(
332 FT_STATUS WINAPI FT_SetFlowControl(
340 FT_STATUS WINAPI FT_ResetDevice(
345 FT_STATUS WINAPI FT_SetDtr(
350 FT_STATUS WINAPI FT_ClrDtr(
355 FT_STATUS WINAPI FT_SetRts(
360 FT_STATUS WINAPI FT_ClrRts(
365 FT_STATUS WINAPI FT_GetModemStatus(
371 FT_STATUS WINAPI FT_SetChars(
374 UCHAR EventCharEnabled,
376 UCHAR ErrorCharEnabled
380 FT_STATUS WINAPI FT_Purge(
386 FT_STATUS WINAPI FT_SetTimeouts(
393 FT_STATUS WINAPI FT_GetQueueStatus(
399 FT_STATUS WINAPI FT_SetEventNotification(
406 FT_STATUS WINAPI FT_GetStatus(
414 FT_STATUS WINAPI FT_SetBreakOn(
419 FT_STATUS WINAPI FT_SetBreakOff(
424 FT_STATUS WINAPI FT_SetWaitMask(
430 FT_STATUS WINAPI FT_WaitOnMask(
436 FT_STATUS WINAPI FT_GetEventStatus(
442 FT_STATUS WINAPI FT_ReadEE(
449 FT_STATUS WINAPI FT_WriteEE(
456 FT_STATUS WINAPI FT_EraseEE(
478 char *ManufacturerId;
491 UCHAR PullDownEnable;
493 UCHAR USBVersionEnable;
503 UCHAR PullDownEnable5;
505 UCHAR USBVersionEnable5;
507 UCHAR AIsHighCurrent;
508 UCHAR BIsHighCurrent;
523 UCHAR PullDownEnableR;
542 UCHAR PullDownEnable7;
545 UCHAR ALSchmittInput;
546 UCHAR ALDriveCurrent;
548 UCHAR AHSchmittInput;
549 UCHAR AHDriveCurrent;
551 UCHAR BLSchmittInput;
552 UCHAR BLDriveCurrent;
554 UCHAR BHSchmittInput;
555 UCHAR BHDriveCurrent;
564 UCHAR PowerSaveEnable;
568 UCHAR PullDownEnable8;
593 UCHAR PullDownEnableH;
596 UCHAR ACSchmittInputH;
597 UCHAR ACDriveCurrentH;
599 UCHAR ADSchmittInputH;
600 UCHAR ADDriveCurrentH;
617 UCHAR FT1248FlowControlH;
619 UCHAR PowerSaveEnableH;
624 FT_STATUS WINAPI FT_EE_Program(
626 PFT_PROGRAM_DATA pData
630 FT_STATUS WINAPI FT_EE_ProgramEx(
632 PFT_PROGRAM_DATA pData,
634 char *ManufacturerId,
640 FT_STATUS WINAPI FT_EE_Read(
642 PFT_PROGRAM_DATA pData
646 FT_STATUS WINAPI FT_EE_ReadEx(
648 PFT_PROGRAM_DATA pData,
650 char *ManufacturerId,
656 FT_STATUS WINAPI FT_EE_UASize(
662 FT_STATUS WINAPI FT_EE_UAWrite(
669 FT_STATUS WINAPI FT_EE_UARead(
673 LPDWORD lpdwBytesRead
677 FT_STATUS WINAPI FT_SetLatencyTimer(
683 FT_STATUS WINAPI FT_GetLatencyTimer(
689 FT_STATUS WINAPI FT_SetBitMode(
696 FT_STATUS WINAPI FT_GetBitMode(
702 FT_STATUS WINAPI FT_SetUSBParameters(
704 ULONG ulInTransferSize,
705 ULONG ulOutTransferSize
709 FT_STATUS WINAPI FT_SetDeadmanTimeout(
711 ULONG ulDeadmanTimeout
715 FT_STATUS WINAPI FT_GetDeviceInfo(
717 FT_DEVICE *lpftDevice,
725 FT_STATUS WINAPI FT_StopInTask(
730 FT_STATUS WINAPI FT_RestartInTask(
735 FT_STATUS WINAPI FT_SetResetPipeRetryCount(
741 FT_STATUS WINAPI FT_ResetPort(
746 FT_STATUS WINAPI FT_CyclePort(
756 FT_HANDLE WINAPI FT_W32_CreateFile(
760 LPSECURITY_ATTRIBUTES lpSecurityAttributes,
762 DWORD dwAttrsAndFlags,
767 BOOL WINAPI FT_W32_CloseHandle(
772 BOOL WINAPI FT_W32_ReadFile(
776 LPDWORD lpBytesReturned,
777 LPOVERLAPPED lpOverlapped
781 BOOL WINAPI FT_W32_WriteFile(
785 LPDWORD lpBytesWritten,
786 LPOVERLAPPED lpOverlapped
790 DWORD WINAPI FT_W32_GetLastError(
795 BOOL WINAPI FT_W32_GetOverlappedResult(
797 LPOVERLAPPED lpOverlapped,
798 LPDWORD lpdwBytesTransferred,
803 BOOL WINAPI FT_W32_CancelIo(
819 DWORD fReserved : 25;
829 DWORD fOutxCtsFlow:1;
830 DWORD fOutxDsrFlow:1;
832 DWORD fDsrSensitivity:1;
833 DWORD fTXContinueOnXoff: 1;
839 DWORD fAbortOnError:1;
856 DWORD ReadIntervalTimeout;
857 DWORD ReadTotalTimeoutMultiplier;
858 DWORD ReadTotalTimeoutConstant;
859 DWORD WriteTotalTimeoutMultiplier;
860 DWORD WriteTotalTimeoutConstant;
865 BOOL WINAPI FT_W32_ClearCommBreak(
870 BOOL WINAPI FT_W32_ClearCommError(
873 LPFTCOMSTAT lpftComstat
877 BOOL WINAPI FT_W32_EscapeCommFunction(
883 BOOL WINAPI FT_W32_GetCommModemStatus(
885 LPDWORD lpdwModemStatus
889 BOOL WINAPI FT_W32_GetCommState(
895 BOOL WINAPI FT_W32_GetCommTimeouts(
901 BOOL WINAPI FT_W32_PurgeComm(
907 BOOL WINAPI FT_W32_SetCommBreak(
912 BOOL WINAPI FT_W32_SetCommMask(
918 BOOL WINAPI FT_W32_GetCommMask(
920 LPDWORD lpdwEventMask
924 BOOL WINAPI FT_W32_SetCommState(
930 BOOL WINAPI FT_W32_SetCommTimeouts(
936 BOOL WINAPI FT_W32_SetupComm(
938 DWORD dwReadBufferSize,
939 DWORD dwWriteBufferSize
943 BOOL WINAPI FT_W32_WaitCommEvent(
946 LPOVERLAPPED lpOverlapped
959 char SerialNumber[16];
960 char Description[64];
972 FT_STATUS WINAPI FT_CreateDeviceInfoList(
977 FT_STATUS WINAPI FT_GetDeviceInfoList(
983 FT_STATUS WINAPI FT_GetDeviceInfoDetail(
989 LPVOID lpSerialNumber,
990 LPVOID lpDescription,
1000 FT_STATUS WINAPI FT_GetDriverVersion(
1006 FT_STATUS WINAPI FT_GetLibraryVersion(
1012 FT_STATUS WINAPI FT_Rescan(
1017 FT_STATUS WINAPI FT_Reload(
1023 FT_STATUS WINAPI FT_GetComPortNumber(
1025 LPLONG lpdwComPortNumber
1034 FT_STATUS WINAPI FT_EE_ReadConfig(
1041 FT_STATUS WINAPI FT_EE_WriteConfig(
1048 FT_STATUS WINAPI FT_EE_ReadECC(
1055 FT_STATUS WINAPI FT_GetQueueStatusEx(