You are viewing an older revision! See the latest version
welcome
I2Cサンプルブックのページヘようこそ!¶
CQ出版『トライアルシリーズ(トランジスタ技術 2015年4月号増刊)・LED/モータからA-D/D-A変換まで2線インターフェースI2Cで数珠つなぎ! - マイコンにプラス! シリアル拡張IC サンプルブック[基板付き]』に関連した情報をまとめたページです.
公開コード¶
この本に収録されたサンプルの,データシート,基本操作例のコード,クラスライブラリ(一部非対応)を以下の表にまとめます.
2種類の公開コード¶
基本操作例のコード¶
「基本操作例のコード」は書籍内で紹介された各サンプルデバイスの操作例コード公開ページへのリンクです.I2C APIを直接操作して内部のレジスタにアクセスしてみる例になっており,よりハードに近いところでのデバイスの挙動を理解するのに良い例となっています.各ページ内の「Import this program」ボタンを押すことで,サンプルコードをそのまま自分のコンパイラページに取り込み,直ぐに試してみることができます.
クラスライブラリ¶
もう一つのプログラム例「クラスライブラリ」は,コンポーネントページへのリンクとなっており,各デバイス手軽に使って見るためのコードも用意されています.各デバイスはクラスとして用意されいるので,各クラスのインスタンスを作成してAPIを呼び出すだけで,デバイスの操作ができるようになっています.
また別ページ「I2Cサンプルブック対応クラスライブラリ」に,このサンプルブック用に用意されたクラスライブラリの使い方や,ちょっとしたコツをまとめました.合わせてご覧ください.
さらにGPIOエキスパンダとLEDコントローラについては,これらをさらに使いやすくする高水準APIも設けました.このAPIの使い方は「I2Cサンプルブック対応クラスライブラリ:GPIOエキスパンダ,LEDコントローラ用 高水準API」のページに解説があります.
公開コード一覧¶
mbed-SDK関連¶
mbed APIの使い方¶
書籍内の記事「サンプルコードを使ってみる」内の「mbed APIの使い方」の節で紹介した内容は,mbedのハンドブックページの内容を元にしています.
mbedハンドブックページ内のI2C APIについてはこちらのページ(英語)を参照ください.(菅工房さんによる日本語翻訳ページはこちら)
mbed SDKの中身¶
「mbed SDKの中身」の節で紹介したコードへのリンクも紹介します.
mbed SDKのコードはオープンソース・プロジェクトとしてGitHubで開発・管理されています.
mbedのオンラインコンパイラで使われるmbed SDKは,このGitHubの状態を適宜オンライン環境に持ってくる形で更新されます.記事内ではGitHubでのコードを紹介しましたが,mbed.org内のオンライン環境でも,これと同じコードが公開されています.こちらを参照するには次のリンクが使えます.
http://developer.mbed.org/users/mbed_official/code/mbed-src/
最新mbed SDKは以下のリンクで確認できます.
https://github.com/mbedmicro/mbed/tree/master/libraries/mbed
I2CのAPI定義は
https://github.com/mbedmicro/mbed/blob/master/libraries/mbed/api/I2C.h
"I2C.h"は"mbed.h"をインクルードすれば,その中でインクルードされるようになっています.
https://github.com/mbedmicro/mbed/blob/master/libraries/mbed/api/mbed.h
I2C APIの実装部分は
https://github.com/mbedmicro/mbed/blob/master/libraries/mbed/common/I2C.cpp
実際のI2Cの動作の実装は,ターゲットとするマイコン毎に異なるため,各マイコンに対応した部分を見る必要があります.記事で紹介されている「青mbed:mbed LPC1768」の実装は
https://github.com/mbedmicro/mbed/tree/master/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC176X
さらにこのディレクトリの中の「i2c_api.c」にI2C動作が書かれています. https://github.com/mbedmicro/mbed/blob/master/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC176X/i2c_api.c
I2C仕様¶
I2Cの仕様へのリンクを載せておきます.
(日本語版はRev.5,英語版ではRev.6となっています.5と6の違いは,図41と図42の訂正だけなので,Rev.5を参照いただいてもほぼ問題ありません)
UM10204 I2C-bus specification and user manual(英語版)
UM10204 I2C バス仕様およびユーザーマニュアル(日本語版)