waveshare製Raspberry Pi用液晶について
2015-01-26


先日、aitendoでRaspberry Pi用3.5インチTFT液晶([URL] )を購入しました。
ドライバ導入済みのOSイメージをSDに書き込んで、ブート&表示できることを確認。

・・・したまでは良いものの、シールドのデータシートが無く、液晶モジュール自体の素性がよくわからないので、実験等に使うには情報不足。
なのでちょいと調べてみることにしました。

まず、シルク印刷の単語でググってみると、WaveShareの製品のバルクであることがわかった。
[URL]
ところが、メーカーサイトにも詳しい仕様は無く、空振り。

とりあえず、aitendoに回路図([URL] )はあったので見てみたものの、かなり間違いが多く、あまり当てにはできません。
(例えば、74HC4094が74HC4049になってたり、74HC4040のQ3がQ5になってたり、3.5inchが3.2inchになってたり(ぉ、LEDバックライトのカソード本数6本が5本になってたり、etc...)
それでも、3.5インチで320x480かつ、タッチパネル付きで、フレキに37ピン出ている液晶となるとそこそこ絞れてくる。
ざっと出てきた感じだと、コントローラーは、
・ili9481
・ili9486
・HX8357B
・RM68042
辺りが使われていることが多いようです。

それぞれのデータシートをパパッと見た感じだと、どのコントローラーも、

1. コマンド2Aでカラムアドレス指定
2. コマンド2Bでページアドレス指定
3. コマンド2Cで指定範囲データ流し込み

という手順で共通しているみたいなので、描画用のプログラム自体は簡単に流用利きそう。
問題は、初期化の手順がわからないこと。

わからないなら、動いてる所から情報を引っ張ってくるしかないので、付属OSのログを漁る。
すると、以下のような項目が。抜粋すると、

[ 14.040140] fbtft_device: SPI devices registered:
[ 14.045289] fbtft_device: spidev spi0.0 500kHz 8 bits mode=0x00
[ 14.051724] fbtft_device: spidev spi0.1 500kHz 8 bits mode=0x00
[ 14.058202] fbtft_device: 'fb' Platform devices registered:
[ 14.063958] fbtft_device: bcm2708_fb id=-1 pdata? no
[ 14.069475] fbtft_device: Deleting spi0.0
[ 14.076924] flexfb spi0.0: fbtft_request_gpios: 'reset' = GPIO25
[ 14.092207] flexfb spi0.0: fbtft_request_gpios: 'dc' = GPIO24
[ 14.098068] flexfb spi0.0: flexfb_verify_gpios_dc()
[ 14.113756] flexfb spi0.0: fbtft_init_display()
[ 14.118401] flexfb spi0.0: fbtft_reset()
[ 14.250931] flexfb spi0.0: init: write(0xB0) 0x00
[ 14.256797] flexfb spi0.0: init: write(0x11)
[ 14.268532] flexfb spi0.0: init: mdelay(250)
[ 14.539125] flexfb spi0.0: init: write(0x3A) 0x55
[ 14.544149] flexfb spi0.0: init: write(0xC2) 0x44
[ 14.549121] flexfb spi0.0: init: write(0xC5) 0x00 0x00 0x00 0x00
[ 14.555493] flexfb spi0.0: init: write(0xE0) 0x0F 0x1F 0x1C 0x0C 0x0F 0x08 0x48 0x98 0x37 0x0A 0x13 0x04 0x11 0x0D 0x00
[ 14.566659] flexfb spi0.0: init: write(0xE1) 0x0F 0x32 0x2E 0x0B 0x0D 0x05 0x47 0x75 0x37 0x06 0x10 0x03 0x24 0x20 0x00
[ 14.577823] flexfb spi0.0: init: write(0xE2) 0x0F 0x32 0x2E 0x0B 0x0D 0x05 0x47 0x75 0x37 0x06 0x10 0x03 0x24 0x20 0x00
[ 14.588966] flexfb spi0.0: init: write(0x36) 0x28
[ 14.593962] flexfb spi0.0: init: write(0x11)
[ 14.598434] flexfb spi0.0: init: write(0x29)
[ 14.773084] flexfb spi0.0: Display update: 1763 kB/s (170.096 ms), fps=0 (0.000 ms)
[ 14.780844] flexfb spi0.0: fbtft_register_backlight()
[ 14.785997] flexfb spi0.0: fbtft_register_backlight(): led pin not set, exiting.
[ 14.798708] Console: switching to colour frame buffer device 80x29
[ 14.813466] graphics fb1: flexfb frame buffer, 480x320, 300 KiB video memory, 4 KiB DMA buffer memory, fps=20, spi0.0 at 16 MHz
[ 14.829078] fbtft_device: GPIOS used by 'flexfb':
[ 14.842578] fbtft_device: 'reset' = GPIO25
[ 14.853693] fbtft_device: 'dc' = GPIO24
[ 14.866900] fbtft_device: SPI devices registered:
[ 14.875148] fbtft_device: spidev spi0.1 500kHz 8 bits mode=0x00

続きを読む

[雑記]

コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット