FT245RLを使ってみた1

秋月電子さんから発売されているFT245RLモジュールを使ってみました。

今回はブレッドボードに差し込んでLED点滅だけです。

続きはWebで!FTDIさんのWebサイトからデバイスドライバをだうそします。
対応ハードウェアは豊富です。
Linux
MacOS
Windows 32と64bit
その他CPUも対応してます。

ようしパパLinuxで動かすぞーなんてやるとハマるので次回へ。
今回は下記環境で作りました。
開発環境:VB.net2008Express
OS:WindowsXP SP3
CPU:E7500
普通のパソコンです。
D2XXドライバーをダウンロードしてください。
仮想シリアルドライバも同梱しているっぽいです。
即動作確認したい人は秋月電子さんの商品ページからデモプログラムをだうそしてくださいな。

以下4時間ハマって出した答え。
参照設定でFTD2XX_NET.DLLを追加する
先頭にImports FTD2XX_NETを書く
OpenByDescription
ResetDevice
Purge
SetTimeouts
SetLatency
SetBaudRate
SetBitMode
Write ←主力させる
Close
という順で処理するとおkらしい。

体裁考えずにコピペしてしまいます。

Private Sub test123()
‘参照設定にFTD2XX_NET.DLLを追加します。
‘コードの先頭にImports FTD2XX_NETに追加します。

‘ハード関係の宣言
Dim MyFTDI As New FTDI
Dim ft_status As FTD2XX_NET.FTDI.FT_STATUS
Dim ftdiDeviceCount As UInt32 = 0

‘書き込みバッファとかその他変数
Dim write_byte(104857600) As Byte
Dim written_byte_num As UInt32 = 0
Dim i As Integer

‘FTDI FT245初期化部分 ここから
ft_status = FTDI.FT_STATUS.FT_OK

‘Device名を入力します。
EEPROMに書き込まれている名前と一致しないと起動できません

ft_status = MyFTDI.OpenByDescription(“FT245R USB FIFO“)
If ft_status = FTDI.FT_STATUS.FT_OK Then
Console.WriteLine(“Pass OpenByDescription”)
Else
Console.WriteLine(“Error OpenByDescription”)
End If

リセットやパージ処理
ft_status = MyFTDI.ResetDevice()
If ft_status = FTD2XX_NET.FTDI.FT_STATUS.FT_OK Then
Console.WriteLine(“Pass ResetDevice”)
Else
Console.WriteLine(“Error ResetDevice”)
End If

ft_status = MyFTDI.Purge(FTDI.FT_PURGE.FT_PURGE_RX Or FTDI.FT_PURGE.FT_PURGE_TX)
If ft_status = FTD2XX_NET.FTDI.FT_STATUS.FT_OK Then
Console.WriteLine(“Pass Purge”)
Else
Console.WriteLine(“Error Purge”)
End If

‘初期化コードここまで

Console.WriteLine(“StartUpOK”)

‘通信設定
MyFTDI.SetTimeouts(0, 0)
MyFTDI.SetLatency(100)
MyFTDI.SetBaudRate(115200)

Console.WriteLine(“SetUpOK”)

‘Bitモードで起動します
‘マスクbitは1だとWrite可能 0はReadのみ
ft_status = MyFTDI.SetBitMode(&HFF, 1)
If ft_status = FTD2XX_NET.FTDI.FT_STATUS.FT_OK Then
Debug.Print(“Pass SetBitMode”)
Else
Debug.Print(“Error SetBitMode”)
End If

‘デモ書き込み
‘0から255まで1ずつ加算します。255になれば0にします。
‘カウンタが100000になるまで繰り返します。
‘3分ぐらい続きます(マシンパワー次第)
write_byte(0) = &H0
ft_status = MyFTDI.Write(write_byte, 1, written_byte_num)
For i = 0 To 100000
If write_byte(0) = 255 Then
write_byte(0) = 0
End If
write_byte(0) = write_byte(0) + 1
ft_status = MyFTDI.Write(write_byte, 1, written_byte_num)
Next

‘接続をクローズします
ft_status = MyFTDI.Close()
If ft_status = FTD2XX_NET.FTDI.FT_STATUS.FT_OK Then
Console.WriteLine(“Pass Close”)
Else
Console.WriteLine(“Error Close”)
End If
End Sub

ハード側の配線
初期状態だとUSBから電源を取るので電池とか不要です。
IOポート→LED→3k抵抗→GND
使用したのは赤色LEDです。もう少し抵抗値を増やすべきかもね。適当

今後
1.もっと頭のいいコードにする。
2.FETスイッチ駆動
3.フォトカプラでPCと絶縁

カテゴリー: 電子工作 タグ: パーマリンク

コメントは停止中です。