PCにCDIをUSBデバイスとして認識させる

TCDI V1.0に搭載予定のUSB-UART変換IC、FT234Xを使って、現在のプロトタイプ版CDIとPCの通信テストをしている。実際は基板に載せるけど、とりあえず秋月で売ってるモジュールが楽チンなのでこれをそのまま適当に繋げている。
このFT234Xは普通に使うと仮想COMポートとして認識されるので、PC側で作成したアプリケーションと通信するには、接続するCOMポートを選択してやる必要がある。ただよくよく確認してみると、D2XXドライバーを使って、かつDLLを読み込んでやれば直接USBデバイスとして認識されるらしく、このCOMポート選択という手間がなくせる。
これはとても魅力的なので、早速FTDIのサイトからDLLと XMLをダウンロードして、visual C#用のサンプルコードを見ながら、現状のソースコードを修正してみた。
サンプルコードはこちら C# Examples - FTDI
参照に追加する手順書はこちら https://ftdichip.com/wp-content/uploads/2023/11/TN_186_CSharp_Examples_Using_Microsoft_Visual_Studio.pdf
サンプルだとread関数で受信したデータをアスキーコードとして解釈する感じのコードになっていたので、これを変えてやる必要がある。DLLの中身を見てみると、もう一つ単純に受信したデータを1バイトの配列に格納していく関数があったので、こちらを使うようにした。早速やってみたが、1時間ほどでまず接続確認までできるようになった。ここまで来たらしめたもので、2時間ほどでだいたい改変完了。

これでvisual studio側で今まで使ってきたシリアルポートクラスは丸々不要になるし、UIには COMポート選択画面がなくなる。とってもスマートで素晴らしい。こんなに簡単なら、USB対応のPICをわざわざ使わなくてもこれ使ったほうが良さそうね。チップサイズも3mm四方と極小だし。