Km2Net USB-IO2.0でソフトウェアI2C通信
2015/01/02作成

前回の記事ではGPIOとソフトウェアI2CでADT7410と通信して温度を表示するプログラムを作成しました。
今回はGPIOの代わりにKm2Net USB-IO2.0を用いてソフトウェアI2C通信を実装しました。
USB-IO2.0自体は汎用的な入出力端子が無いコンピュータでも電子回路と接続できるようにするものですが、今回の記事のように通信プロトコルを実装することによって温度計などのデバイスを扱えるようになります。
また秋月電子通商で同等品のUSB-IO2.0(AKI)も販売されていますが、今回の記事の内容はどちらでも適用できます。
I2C通信に関しては、接続方法や必要な部品はUSB-IO2.0を用いる以外は前回と全く同じですので、そちらを参照してください。
ただし今回はUSB-IO2.0が5V駆動のため、生成されるI2C信号も5Vとなりますので、使用するI2Cデバイスの定格に注意してください。

ソフトウェアI2Cのソースコードを作成しました。
今回のプログラムも前回同様にADT7410から得た温度を表示しています。
Windows 7とVisual Studio 2013でコンパイルしましたが、他のバージョンのWindowsとVisual Studioでもコンパイル可能かと思います。
使用するピンはJ1-0からJ1-3の4本としました。
実行前にUSB-IO2.0付属のソフトウェアを起動し、J1-1とJ1-3を出力、J1-0とJ1-2を入力、プルアップ入力を有効にしてください。
通信速度は前回のGPIOによる実装の10kHzと比べると非常に遅く、約80Hzとなっています。
元々USB-IO2.0の仕様により500Hz以下(書き込みと読み込みを合わせて1秒間に1000回まで)の動作のため、速度に関しては最適化してませんがご了承ください。
なお、ソースコードにはMITライセンス(修正BSDライセンスと互換)を適用しますので、ご自由にお使いください。



実行するとコンソールが表示され、温度が表示されました。
今回はGPIOではなくUSB接続のため、CPUの使用率はほぼ0%でした。


目次 質問フォーム Q&A このサイトについて トップページ