Raspberry Piに実装されているCPUには
周辺回路(ペリフェラル)としてI2C(Inter-Integrated Circuit)が内蔵されています。
I2Cは周辺デバイスとのシリアル通信の方式で、昔から存在する通信方式です。
非常に簡単な仕組みで動作させることが出来るので
UART(Universal Asynchronous Receiver Transmitter)
SPI(Serial Peripheral Interface)
などとともに組込み系では良く使われていますね。
今後I2Cを使ったDeviceを使っていく予定なので
今回の記事ではI2Cを使用できるように設定します。
I2Cを有効に設定
Raspberry PiのデフォルトではI2Cは無効になっています。
raspi-configを使用してI2Cの有効/無効設定を行います。
pi@raspberrypi ~ $ sudo raspi-config
なおraspi-configで設定できる項目は下記の9個です。
- Expand Filesystem
- Change User Password
- Enable Boot to Desktop/Scratch
- Internationalisation Options
- Enable Camera
- Add to Rastrack
- Overclock
- Advanced Options
- About raspi-config
8番を選びます。
- Overscan
- Hostname
- Memory Split
- SSH
- Device Tree
- SPI
- I2C
- Serial
- Audio
- Update
となっているので、7番(実際の画面ではA7です)を選択します。
有効にするかどうかを聞いてきますので、<はい>を選択します。
(日本語になっているのは以前日本語フォントに変更したためです。
変更方法は最下記の参考記事を参照してください。)
I2Cをデフォルトでロードするか聞いてきますので<はい>を選択します。
raspi-configを終了させると再起動を要求されますので、再起動します。
I2C toolのインストール
I2Cを使う上で便利なツール群をインストールします。
pi@raspberrypi ~ $ sudo apt-get install i2c-tools
i2c-devを使えるようにする
i2c-devを使えるようにします。これにより/dev/i2c-* が有効になり
C言語でデバイスファイル (/dev/i2c-0 または /dev/i2c-1) をopenして
read/writeすることでデバイスに対するレジスタアクセスが出来るようになります。
pi@raspberrypi ~ $ sudo vim /etc/modules
でエディタを起動して
i2c-dev
を追記します。
----
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.
snd-bcm2835
i2c-dev
----
設定が終わったら再起動します。
I2Cの確認
I2C Driverが有効になったかを確認します。
pi@raspberrypi ~ $ lsmod
Module Size Used by
:
i2c_dev 6027 0
:
i2c_bcm2708 4990 0
:
があれば有効になっています。
参考記事)日本語の設定
参考記事)raspi-configの項目について