• 本当は、田舎に庵を建てて隠遁生活したいけど、先立つものも無いので自宅で..。

FT232RLのbit bangモードをC#で使う

FT232のbit bang modeをC#で使うための関数など調査した。 C#のコードを探したんだけど、適当なものがない。

FTDIのサイトからC#のwrapperのソースコードが入手できたので、それからの予想。 必要な関数は、以下の6個だと思う。

デバイスのOpen
private FT_STATUS tFT_Open(UInt32 index, ref IntPtr ftHandle)

baud rateの設定
private FT_STATUS tFT_SetBaudRate(IntPtr ftHandle, UInt32 dwBaudRate)

Bit bangモード設定
private FT_STATUS tFT_SetBitMode(IntPtr ftHandle, byte ucMask, byte ucMode)
(ucMaskで入出力を設定。 ucModeでモードを設定 
非同期bit bangモード public const byte FT_BIT_MODE_ASYNC_BITBANG = 0x01;)

デバイスのリセット
private FT_STATUS tFT_ResetDevice(IntPtr ftHandle)

データの書き込み
private FT_STATUS tFT_Write(IntPtr ftHandle, byte[] lpBuffer, UInt32 dwBytesToWrite, ref UInt32 lpdwBytesWritten)
lpdwBytesWrittenは書き込んだバイト数

クローズ
private FT_STATUS tFT_Close(IntPtr ftHandle)

手順としては、

①tFT_Openでデバイスをオープン ftHandleにハンドルを取得
②tFT_SetBaudRateでボーレートを設定
③tFT_SetBitModeで出力ピンと非同期モードを設定
④tFT_ResetDEviceでリセット
⑤tFT_Writeでデータの送信
⑥データの送信が終わったらtFT_Closeでデバイスのクローズ

エラー処理とかは、とりあえず省略。 こんなんで、うまくいくかな..。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA