-
Notifications
You must be signed in to change notification settings - Fork 0
hogeki/aqm0802a
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
秋月のI2C接続小型LCD(AQM0802A)のLinux用デバイスドライバを作ってみました。 http://akizukidenshi.com/catalog/g/gP-06669/ Raspberry Pi(Raspbian Wheezy)上で開発しています。他のプラットホーム上でも多分動くと思います。 使い方(Raspberry Piで使うことを想定): 1.まずRasPiでI2Cを使えるようにします。 /etc/modprobe.d/raspi-blacklist.confでi2c-bcm2708の行をコメントアウトします。 #blacklist i2c-bcm2708 rebootして設定を反映します。 2.ドライバをコンパイルします。まずRaspbianのカーネルをビルドしておく必要があります。 カーネルビルドについては説明するのが面倒なので適当にググってください。 /usr/src/linuxにカーネルソースがあるとすると make -C /usr/src/linux M=$PWD modules でドライバがビルドできます。 3.出来上がったaqm0802a.koをinsmodします。そして以下のコマンドでI2CのアダプタにAQM0802Aが接続されていることを伝えます。 echo aqm0802a 0x3e > /sys/class/i2c-adapter/i2c-1/new_device /proc/devicesでデバイスのメジャー番号を確認します。 cat /proc/devices | grep aqm0802a 私の環境では248でした。このメジャー番号を使ってデバイスファイルを作成します。 mknod /dev/akilcd c 248 0 4./dev/akilcdは16バイトまでの文字列を書き込むことができる普通のキャラクタデバイスです。 echo -n "hoge" > /dev/akilcd で液晶に文字が表示されます(-nを付けないと改行コードが入ってしまいます)。 5.AQM0802Aはコントラストを0から63まで設定することができます。 デフォルトでは32になっています。これを変更するにはioctlを使います。 ioctl(ファイルディスクリプタ, 26625, コントラスト); コントラスト設定のためのコマンドも作っておきました(setcontrast.c)。 6.カーソルの表示/非表示を設定することもできます。 ioctl(ファイルディスクリプタ, 26626, 設定値); 設定値: 0 カーソルを表示しない 1 カーソルを表示する 2 カーソルを点滅させる カーソルの位置はその時点でのファイルポインタの位置になります。 lseekによってカーソルを任意の位置に動かすこともできます。 7.ユーザーが定義した文字を表示することもできます。 ioctl(ファイルディスクリプタ, 26627〜26632, フォントデータへのポインタ); リクエストコード26627〜26632で文字コード0から5に対応する文字を定義できます。 フォントデータはサイズ8のchar型の配列です。配列のそれぞれの要素は下位5bitだけが意味をもち、1bitが1ドットに対応しています。 以下のような配列によって5*8ドットの任意のフォントを表します。 000 00000 000 00000 000 01010 000 00000 000 00000 000 10001 000 01110 000 00000 echo -en "\000" > /dev/akilcd のようにしてユーザー定義の文字を表示できます。
About
秋月の小型I2C接続LCDのデバイスドライバ(Linux)
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published