u8g2を利用したOLEDのアクセス? †
はじめに †
Raspberry Pi 3のCentOS7から、IIC(I2C)デバイスへのドライバ経由のアクセス方法を改めてまとめました。
ドライバー経由のアクセスの準備 †
ドライバーのロード †
インストールデフォルトでは、ドライバーがイネーブルにならないようで /boot/config.txt にドライバを読み込む設定が必要です。
以下の2行を追加します。
# mkdir -p /opt/u8g2
# cd /opt/u8g2/
# git clone https://github.com/wuhanstudio/u8g2-arm-linux.git
Cloning into 'u8g2-arm-linux'...
remote: Enumerating objects: 263, done.
remote: Total 263 (delta 0), reused 0 (delta 0), pack-reused 263
Receiving objects: 100% (263/263), 13.04 MiB | 2.88 MiB/s, done.
Resolving deltas: 100% (127/127), done.
Checking out files: 100% (116/116), done.
# ll
合計 4
drwxr-xr-x 8 root root 4096 8月 12 13:50 u8g2-arm-linux
# cd u8g2-arm-linux/
# ll
合計 32
-rw-r--r-- 1 root root 4040 8月 12 13:50 LICENSE
-rw-r--r-- 1 root root 381 8月 12 13:50 Makefile
-rw-r--r-- 1 root root 3863 8月 12 13:50 README.md
drwxr-xr-x 2 root root 4096 8月 12 13:50 drivers
drwxr-xr-x 4 root root 4096 8月 12 13:50 examples
drwxr-xr-x 2 root root 4096 8月 12 13:50 img
drwxr-xr-x 2 root root 4096 8月 12 13:50 port
drwxr-xr-x 2 root root 4096 8月 12 13:50 u8g2src
#
これにより、起動時にドライバーを読み込んでくれるようになります。
# cd /example
# ll
合計 12
-rw-r--r-- 1 root root 376 8月 12 13:50 Makefile
drwxr-xr-x 2 root root 4096 8月 12 13:59 u8g2_4wire_hw_spi
drwxr-xr-x 2 root root 4096 8月 12 14:01 u8g2_hw_i2c
#
各 u8g2_4wire_hw_spi、 u8g2_hw_i2c のMakefileの CC を
#CC=arm-linux-gnueabi-gcc
CC=gcc
のように書き換えます。
i2c-tools †
i2cドライバー経由でアクセスするツール(i2c-tools)をインストールします。
このパッケージには以下が含まれます。
ファイル | 概要 |
---|
/usr/bin/decode-dimms | メモリモジュールのSPDEEPROMの内容をデコード、表示するツール |
/usr/bin/decode-vaio | VAIO用のEEPROM情報の読み出し&デコードするツール |
/usr/sbin/i2c-stub-from-dump | IICデバイスの応答をエミュレートさせるツール |
/usr/sbin/i2cdetect | IICバス上のIICデバイスを検出するツール |
/usr/sbin/i2cdump | IICバス上の特定のアドレスに0x00から0xffまで、Read命令を連続的に送出するツール |
/usr/sbin/i2cget | IICデバイスのレジスタから読み込みをするツール |
/usr/sbin/i2cset | IICデバイスのレジスタへの書き込みをするツール |
# yum install i2c-tools
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.yz.yamagata-u.ac.jp
* centos-kernel: ftp.yz.yamagata-u.ac.jp
* extras: ftp.yz.yamagata-u.ac.jp
* updates: ftp.yz.yamagata-u.ac.jp
base | 3.6 kB 00:00:00
centos-kernel | 2.9 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ i2c-tools.armv7hl 0:3.1.0-13.el7 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
=====================================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
=====================================================================================================================================
インストール中:
i2c-tools armv7hl 3.1.0-13.el7 base 69 k
トランザクションの要約
=====================================================================================================================================
インストール 1 パッケージ
総ダウンロード容量: 69 k
インストール容量: 182 k
Is this ok [y/d/N]: y
Downloading packages:
i2c-tools-3.1.0-13.el7.armv7hl.rpm | 69 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
警告: RPMDB は yum 以外で変更されました。
** Found 7 pre-existing rpmdb problem(s), 'yum check' output follows:
gettext-common-devel-0.19.8.1-2.el7.noarch は gettext-common-devel-0.18.2.1-4.el7.noarch の複製です
hunspell-en-0.20121024-6.el7.noarch は hunspell-en-0.20121024-5.el7.noarch の複製です
hunspell-en-GB-0.20121024-6.el7.noarch は hunspell-en-GB-0.20121024-5.el7.noarch の複製です
hunspell-en-US-0.20121024-6.el7.noarch は hunspell-en-US-0.20121024-5.el7.noarch の複製です
ncurses-base-5.9-14.20130511.el7.noarch は ncurses-base-5.9-13.20130511.el7.noarch の複製です
raspberrypi2-firmware-4.9.50-v7.1.el7.armv7hl は raspberrypi2-firmware-4.9.13-v7.1.el7.armv7hl の複製です
raspberrypi2-kernel-firmware-4.9.50-v7.1.el7.armv7hl は raspberrypi2-kernel-firmware-4.9.13-v7.1.el7.armv7hl の複製です
インストール中 : i2c-tools-3.1.0-13.el7.armv7hl 1/1
検証中 : i2c-tools-3.1.0-13.el7.armv7hl 1/1
インストール:
i2c-tools.armv7hl 0:3.1.0-13.el7
完了しました!
#
# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
#
お疲れ様でした。