ブレッドボード
I/Oプログラミング
連載第1回
「USB GPIOを手に入れる」
著者:西田 亙
※PDFでのダウンロード販売は終了しました。

ブレッドボードI/Oプログラミングは、ブレッドボード上の回路を通して、I/O制御の基本を身につけることを目指しています。I/OとはInput/Outputの略であり、LEDやブザー、液晶ディスプレイやEEPROM、センサなど、様々なデバイスを制御する際に必要となる、プロセッサの入出力機能を指します。
プロセッサとデバイスは、I/Oポートを介して、基本インターフェースで結ばれています。インターフェースプロトコルの原理を学び、自分自身の力でプロトコルを実装できれば、あらゆるデバイスと自在に会話することが可能になります。
本連載では、パソコンに汎用I/O機能を実装するために、USB-FIFOと呼ばれるコンバータICを用います。具体的には、Future Technology Devices International Ltd. (FTDI社)が提供している、FTx232Hを搭載したブレイクアウトボードを利用します。
I/Oプログラミングの習得にあたっては、各種デバイスのデータシートも一緒に読み進めて頂く必要があります。なぜなら、テキストに掲載された手順とコードの繰り返しでは、新たな視界が開けることはないからです。自分の足で登り切って、初めて見えてくるものがあるのです。データシートはそのための地図であり、ブレッドボードI/Oプログラミングは羅針盤となります。
「連載第1回 USB GPIOを手に入れる」では、FTDI社が提供するD2XXライブラリをC言語から呼び出し、USB経由でFTx232HブレイクアウトボードのI/Oポートを制御するプログラムを作成します。このためには、D2XXプログラマーズガイド、FTx232Hデータシート、FTx232Hブレイクアウトボードの回路図、以上3種の資料を読み込まなければなりません。データシートの読み方、注意点、落とし穴、そしてUNIX環境における組み込みプログラミングについて、ひとつひとつの基本を丁寧に重ねていきます。
本連載が終了する頃には、I/Oプログラミングの作法を体得すると共に、その醍醐味を実感して頂けることでしょう。
- ■注意事項
- プログラム開発環境は、Mac OS X/XcodeもしくはUbuntu/GNU開発ツールを想定しています。それぞれのインストール方法については、本ページの【実行環境】に公開記事一覧を掲載しています。
- 本連載における、ポインタおよびポインタ型の取扱いについては、C言語におけるポインタ型変数の宣言 で解説しています。
- 初版執筆時においては、FTDI社のVCP (Virtual COM Port)ドライバのみに言及していましたが、その後公開されたMac OS X Mavericksでは、Apple製のUSB-FTDIドライバが標準搭載されるようになりました。本連載のプログラムを動作させるためには、VCPドライバだけでなく、Apple製USB-FTDIドライバのアンロードを実行する必要があります。本文中の追記コーナーに加筆した通り、詳細についてはMac OS X MavericksにおけるFTDIシリアルポートドライバの取扱い をご覧ください。
- FTx232Hが処理できる電流は、最大で16mAしかありません。このため、I/OポートにLEDなどを接続し、不用意に過電流を流すと、FTx232H内部が焼き切れてしまう恐れがあります。LEDなどの接続は、連載第二回で解説する絶対最大定格および電流制限抵抗の意味を十分に理解した上で行って頂くよう、お願い致します。
- 初版PDF発行
- 2013年12月26日
- 初版発売
- 2013年12月29日
- 総ページ数
- 102ページ
- 発行/発売元
- オーバーシー・パブリッシング
現在、訂正はありません
Xcodeおよびコマンドライン開発ツールのインストールとアクティブ開発ディレクトリの切り替え【Mac OS X Mavericks版】
【重要】Mac OS X MavericksにおけるFTDIシリアルポートドライバの取扱い
■ VirtualBox仮想マシン上でのUbuntu運用
■ FTx232Hボード
- FTDI UM232H データシート
- 秋月電子 AE-FT232HL 解説ページ
- Dangerous Prototypes FT2232 解説ページ
- ストロベリー・リナックス FT4232HX 解説ページ
■ プログラマーズマニュアル、アプリケーションノートおよびデータシート