秋月電子さんから発売されている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と絶縁
-
最近の投稿
最近のコメント
アーカイブ
- 2020年1月
- 2019年1月
- 2017年1月
- 2016年11月
- 2016年10月
- 2016年7月
- 2016年6月
- 2016年3月
- 2015年10月
- 2015年7月
- 2015年6月
- 2015年5月
- 2015年4月
- 2014年12月
- 2014年11月
- 2014年10月
- 2014年7月
- 2014年6月
- 2014年5月
- 2013年11月
- 2013年7月
- 2013年6月
- 2013年1月
- 2012年11月
- 2012年10月
- 2012年8月
- 2012年5月
- 2012年4月
- 2011年11月
- 2011年10月
- 2011年9月
- 2011年8月
- 2011年7月
- 2011年6月
- 2011年3月
- 2011年2月
- 2011年1月
- 2010年12月
- 2010年8月
カテゴリー
メタ情報