USBシリアル変換IC、FT2232DのGPIOをWindowsPCから操作してみた

FT2232D

USBシリアル変換IC、FT2232DのGPIOをWindows11PCから操作してみました。

秋月電子のAE-FT2232と5V動作のLEDを使いました。

プログラム(hello.cpp)は以下のようになりました。

#pragma comment(lib, "ftd2xx.lib")
#include <windows.h>
#include <stdio.h>
#include "ftd2xx.h"
int main(void)
{
    FT_HANDLE ftHandle;
    FT_STATUS ftStatus;
    unsigned int ftok = 0;
    long long dwLoc;
    dwLoc = 0x1121;
    char TxBuffer[256];
    unsigned long BytesWritten ;
    ftStatus = FT_OpenEx((PVOID)dwLoc,FT_OPEN_BY_LOCATION, &ftHandle);
    if(ftok != ftStatus)
    {
        printf("Connection Failed!");
        return 0;
    }

    ftStatus = FT_SetBaudRate(ftHandle, 115200);
    if(ftok != ftStatus)
    {
        printf("FT_SetBaudRate Failed!");
        return 0;
    }
    ftStatus = FT_SetBitMode(ftHandle, 0, 0);
    ftStatus = FT_SetBitMode(ftHandle, 0xFF, 1);
    if(ftok != ftStatus)
    {
        printf("FT_SetBitMode Failed!");
        return 0;
    }    
    TxBuffer[0] = 0x0 ;
    ftStatus = FT_Write(ftHandle, TxBuffer, 1, &BytesWritten);
    if(ftok != ftStatus)
    {
        printf("FT_Write Failed!");
        return 0;
    }        
    Sleep(500);
    TxBuffer[0] = 0xFF ;
    ftStatus = FT_Write(ftHandle, TxBuffer, 1, &BytesWritten);   
    Sleep(500);
    TxBuffer[0] = 0x00 ;
    ftStatus = FT_Write(ftHandle, TxBuffer, 1, &BytesWritten);   
    Sleep(500);
    TxBuffer[0] = 0xFF ;
    ftStatus = FT_Write(ftHandle, TxBuffer, 1, &BytesWritten);   
    Sleep(500);
    TxBuffer[0] = 0x00 ;
    ftStatus = FT_Write(ftHandle, TxBuffer, 1, &BytesWritten);   
    Sleep(500);
    TxBuffer[0] = 0xFF ;
    ftStatus = FT_Write(ftHandle, TxBuffer, 1, &BytesWritten);   
    Sleep(500);
    TxBuffer[0] = 0x00 ;
    ftStatus = FT_Write(ftHandle, TxBuffer, 1, &BytesWritten);   
    Sleep(500);

    printf("FT_Close");
    FT_Close(ftHandle);
    return 0;
}

dwLocは、FT Progで対象機器のLocation IDを調べて入力しました。

PowerShellで実行するとLEDがチカチカしてプログラムが終了しました。

(AD7とGNDを5V動作のLEDに接続しています。)

ちなみに、以下のmake.batファイルでx64 Native Tools Command Prompt for VS 2022を使ってhello.exeファイルを生成しました。

@cd C:\Program Files\Microsoft Visual Studio\2022\Community
@set destdir=%~dp0
cl /Os /c /Fo%destdir%hello.obj %destdir%hello.cpp
link %destdir%hello.obj /OUT:%destdir%hello.exe ^
/MACHINE:X64 /SUBSYSTEM:CONSOLE /LIBPATH:%destdir%lib

ファイル構成は以下の通りです。

ftledtika/
 ├ lib/
 │ └ ftd2xx.lib
 ├ ftd2xx.h
  ├ hello.cpp
  └ make.bat
タイトルとURLをコピーしました