AliExpressで購入した液晶タッチパネルが、Raspberry Piで動作することを確認できました。

液晶タッチパネルは、Raspberry Pi用3.2インチTFT液晶タッチパネルで、AliExpressからを購入しました。中国からの購入なので商品が届くかどうか心配でしたが、価格の安さで試しにと思い購入してみました。次の日程で、商品が届きました。購入して自宅に届くまで12日くらい、スムーズに配達されてきました。

注文から到着まで

  1. 2014/11/08: AliExpressで3.2インチTFT液晶タッチパネルをWebから購入
  2. 2014/11/10: AliExpressから出荷されたことを示すメールが届く
  3. 2014/11/20: 3.2インチTFT液晶タッチパネルが自宅に届く

自宅にAliExpressから届けられた3.2インチTFT液晶タッチパネルを次に示します。梱包材で梱包されていて傷などはついていませんでした。

AliExpressから届いた3.2インチTFT液晶タッチパネル梱包

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
3.2インチTFT液晶タッチパネルPIN番号割り当て
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液晶タッチパネルに次のように表示されました。

3.2インチTFT液晶タッチパネル

AliExpressで購入した3.2インチTFT液晶タッチパネルは、WaveShare SpotPear製で、fbtftの装置名が新規に割り当てられました。詳細な手順については、”Waveshare3.2インチLCDをRaspberryで動作させる”をごらんください。