Raspberry PiでFT232Hのi2cデバイス制御(一旦終)
今回は、(7)の続きで、libftdiを直接使用したFT232Hのi2cデバイス制御の受信プログラムを作成しようと思います。
プログラムは、Ori Idanさんが公開している、FT4232用リードコマンドを流用します。
ラズパイの状態は、(7)の作業を終えた状態です。
試験基板を挿入し、カレントディレクトリはホームディレクトリ(/home/pi)の状態から始めます。
下記に作業手順を記載します。
①プログラムをFT4232から FT232H 用にするため、i2cget.cの314行目の0x6011を0x6014にします。
②デバッグモードを有効にするため、i2cget.cの38行目を debug = 1 に書き換えます。 送信したデータがターミナルに表示できます。
③コマンドmakeを入力して、実行ファイルを生成します。
④i2csendとi2cgetでセットで下記コマンドを入力します。コマンドの使い方の詳細は、ここを参照。
sudo ./i2csend 0x60 0x00 0x35
sudo ./i2cget 0x60 1
結果は、下記の通り、エラー(Error: all fine)が発生しました。
このError: all fineをソース上からみたところ、下記339行目が原因と思われます。
dwNumBytesRead = ftdi_read_data(&ftdic, InputBuffer, 2);
恐らく、事前にセットする&ftdicの値が正しくないと思われます。
よって、getのプログラムを作るには、 libftdiの使い方を詳しくみていく必要がありますが、見通しがたたないのでこのシリーズは終了とします。
また、機会があれば調査して、getのコマンドを完成させたいと思います。