AliExpressで購入した液晶タッチパネルが、Raspberry Piで動作することを確認できました。
液晶タッチパネルは、Raspberry Pi用3.2インチTFT液晶タッチパネルで、AliExpressからを購入しました。中国からの購入なので商品が届くかどうか心配でしたが、価格の安さで試しにと思い購入してみました。次の日程で、商品が届きました。購入して自宅に届くまで12日くらい、スムーズに配達されてきました。
注文から到着まで
- 2014/11/08: AliExpressで3.2インチTFT液晶タッチパネルをWebから購入
- 2014/11/10: AliExpressから出荷されたことを示すメールが届く
- 2014/11/20: 3.2インチTFT液晶タッチパネルが自宅に届く
自宅にAliExpressから届けられた3.2インチTFT液晶タッチパネルを次に示します。梱包材で梱包されていて傷などはついていませんでした。
液晶パネルのメーカは、WaveShare SpotPear(URL:http://www.wvshare.com/product/3.2inch-RPi-LCD-B.htm)で、送られてきな液晶パネルには、Raspberry Piで表示するための仕様書などは、一切含まれていなく、表示させるためにはWebで調べる必要があります。
3.2インチTFT液晶タッチパネルのInterface
まず、Raspberry Piに接続するインタフェースを調べました。液晶タッチパネルには次のように仕様で、PIN番号が割り当てられています。
- Type TFT
- SPI Interface
- Touch panel control chip XPT2046
- Levels Index 65536
- LED backlight
- Resolution of 320×240 (Pixel)
- Size ratio 4:3
PIN NO. | SYMBOL | DESCRIPTION |
---|---|---|
1, 17 | 3.3V | Power positive (3.3V power input) |
2, 4 | 5V | Power positive (5V power input) |
3, 5, 7, 8, 10, 22 | NC | NC |
6, 9, 14, 20, 25 | GND | Ground |
11 | TP_IRQ | Touch Panel interrupt, low level while the Touch Panel detects touching |
12 | KEY1 | Key |
13 | RST | Reset |
15 | LCD_RS | LCD instruction control, Instruction/Data Register selection |
16 | KEY2 | Key |
18 | KEY3 | Key |
19 | LCD_SI / TP_SI | SPI data input of LCD/Touch Panel |
21 | TP_SO | SPI data output of Touch Panel |
23 | LCD_SCK / TP_SCK | SPI clock of LCD/Touch Panel |
24 | LCD_CS | LCD chip selection, low active |
26 | TP_CS | Touch Panel chip selection, low active |
AliExpressで購入した3.2インチTFT液晶タッチパネルをfbtftを用いて表示
Webで調べていくと、AliExpressで購入した液晶タッチパネルは、fbtftを使用すればRaspberry Piで表示できることがわかりました。fbtftが提供するカーネルモジュールは、dafruit、Sainsmartなどが販売しているSPIインターフェースのTFT液晶ディスプレイに、Framebufferという仕組みを経由して表示処理を行えるようにしてくれます。また今回のように、dafruit、Sainsmart以外の液晶ディスプレイでも、カーネルモジュールの読み込み設定を調整することで利用できる場合があります。
AliExpressで購入した3.2インチTFT液晶タッチパネルに表示するために、/etc/modulesの一番下に以下の行を追加することにより、起動時にカーネルモジュールの読み込み設定がロードされ、液晶タッチパネルに表示できるようになりました。
/etc/modulesの内容
snd-bcm2835 i2c-bcm2708 i2c-dev fbtft_device name=flexfb gpios=dc:22,reset:27 speed=48000000 flexfb width=320 height=240 buswidth=8 init=-1,0xCB,0x39,0x2C,0x00,0x34,0x02,-1,0xCF,0x00,0XC1,0X30,-1,0xE8,0x85,0x00,0x78,-1,0xEA,0x00,0x00,-1,0xED,0x64,0x03,0X12,0X81,-1,0xF7,0x20,-1,0xC0,0x23,-1,0xC1,0x10,-1,0xC5,0x3e,0x28,-1,0xC7,0x86,-1,0×36,0x28,-1,0x3A,0x55,-1,0xB1,0x00,0x18,-1,0xB6,0x08,0x82,0x27,-1,0xF2,0x00,-1,0×26,0x01,-1,0xE0,0x0F,0x31,0x2B,0x0C,0x0E,0x08,0x4E,0xF1,0x37,0x07,0x10,0x03,0x0E,0x09,0x00,-1,0XE1,0x00,0x0E,0x14,0x03,0x11,0x07,0x31,0xC1,0x48,0x08,0x0F,0x0C,0x31,0x36,0x0F,-1,0×11,-2,120,-1,0×29,-1,0x2c,-3 ads7846_device model=7846 cs=1 gpio_pendown=17 speed=1000000 keep_vref_on=1 swap_xy=0 pressure_max=255 x_plate_ohms=60 x_min=200 x_max=3900 y_min=200 y_max=3900
動作確認を行います。設定完了後再起動して、コンソールの表示のために次のコマンドを実行します。
con2fbmap 1 1
コマンドを実行すると、3.2インチTFT液晶タッチパネルに次のように表示されました。
AliExpressで購入した3.2インチTFT液晶タッチパネルは、WaveShare SpotPear製で、fbtftの装置名が新規に割り当てられました。詳細な手順については、”Waveshare3.2インチLCDをRaspberryで動作させる”をごらんください。