trykmkmの備忘録

自称組み込みエンジニアのブログ

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)が発生しました。

f:id:trykmkm:20171210184453p:plain

 

 このError: all fineをソース上からみたところ、下記339行目が原因と思われます。

 dwNumBytesRead = ftdi_read_data(&ftdic, InputBuffer, 2);

恐らく、事前にセットする&ftdicの値が正しくないと思われます。

 

 よって、getのプログラムを作るには、  libftdiの使い方を詳しくみていく必要がありますが、見通しがたたないのでこのシリーズは終了とします。

 また、機会があれば調査して、getのコマンドを完成させたいと思います。