3-1-1. Waveshare3.2インチLCDのセットアップ


Raspberry Pi と Waveshare 3.2inch RPi LCD (V3)。

以下、TomoSoftさんの Waveshare3.2インチLCDをRaspberryで動作させる を、参考にさせていただいた。

FBTFTというLCD用の、フレームバッファドライバが必要で、Waveshare3.2インチLCDは、このドライバの device name が ”waveshare32b” でサポートされているとのこと。

1. Raspberry Piの設定

①. ファイルシステムを拡張する。

sudo raspi-config → 「Expand Filesystem」を選択して拡張する

②. X11関連のファイルを自動で実行させないように、次のOptionの行をコメントにする。

sudo nano /usr/share/X11/xorg.conf.d/99-fbturbo.conf
#Option “fbdev” “/dev/fb0″ ← をコメントにする。

③. SPI機能を有効にする。

sudo nano /etc/modprobe.d/raspi-blacklist.conf
#blacklist spi-bcm2708 ← をコメントにする。

④. 設定変更後、再起動する。

sudo reboot

2. ドライバのインストール

①. FBTFTドライバをカーネルにインストールする。

sudo REPO_URI=https://github.com/notro/rpi-firmware rpi-update

②. インストール後、再起動する。

sudo reboot
     

③. SPIが生成されているかを確認する。  

dmesg | grep spi での、正常時表示。
	[    0.000000] Linux version 3.12.34+ (pi@raspi2) (gcc version 4.8.3 20140106 (prerelease)
	 (crosstool-NG linaro-1.13.1-4.8-2014.01 - Linaro GCC 2013.11) ) #1 PREEMPT Sun Dec 7 22:39:06 CET 2014
	[    5.844607] bcm2708_spi bcm2708_spi.0: DMA channel 2 at address 0xf2007200 with irq 77
	[    6.041786] bcm2708_spi bcm2708_spi.0: DMA channel 4 at address 0xf2007400 with irq 20
	[    6.283305] bcm2708_spi bcm2708_spi.0: SPI Controller at 0x20204000 (irq 80)
	[    6.457789] bcm2708_spi bcm2708_spi.0: SPI Controller running in dma mode
	[   21.290605] fbtft_device:      spidev spi0.0 500kHz 8 bits mode=0x00
	[   21.303891] fbtft_device:      spidev spi0.1 500kHz 8 bits mode=0x00
	[   21.349306] fbtft_device: Deleting spi0.0
	[   21.453169] fbtft_device:      spidev spi0.1 500kHz 8 bits mode=0x00
	[   21.473176] fbtft_device:      fb_ili9340 spi0.0 48000kHz 8 bits mode=0x00
	[   21.834484] ads7846_device: Deleting spi0.1
	[   22.174302] graphics fb1: fb_ili9340 frame buffer, 320x240, 150 KiB video memory, 
	4 KiB DMA buffer memory, fps=20, spi0.0 at 48 MHz
	[   22.215451] ads7846 spi0.1: touchscreen, irq 187
	[   22.252593] input: ADS7846 Touchscreen as /devices/platform/bcm2708_spi.0/spi_master/spi0/spi0.1/input/input3

   

④. FBTFTドライバの動作確認
 次のコマンドでカーネルモジュールをロードする。

sudo modprobe fbtft_device name=waveshare32b rotate=270


270度回転させて、HDMIや電源のケーブルが上側になるようにする。

dmesg | grep fbtft_device での、正常時表示。
	[   21.263843] fbtft_device:  SPI devices registered:
	[   21.290605] fbtft_device:      spidev spi0.0 500kHz 8 bits mode=0x00
	[   21.303891] fbtft_device:      spidev spi0.1 500kHz 8 bits mode=0x00
	[   21.321442] fbtft_device:  'fb' Platform devices registered:
	[   21.337939] fbtft_device:      bcm2708_fb id=-1 pdata? no
	[   21.349306] fbtft_device: Deleting spi0.0
	[   21.362119] fbtft_device:  GPIOS used by 'waveshare32b':
	[   21.393322] fbtft_device:    'reset' = GPIO27
	[   21.413265] fbtft_device:    'dc' = GPIO22
	[   21.422677] fbtft_device:  SPI devices registered:
	[   21.453169] fbtft_device:      spidev spi0.1 500kHz 8 bits mode=0x00
	[   21.473176] fbtft_device:      fb_ili9340 spi0.0 48000kHz 8 bits mode=0x00

3. HDMI側への出力からLCD側への出力の切替

以下のコマンドを実行し、framebaffer番号で出力の切替を行う

con2fbmap [仮想コンソール番号] [framebaffer番号]

コンソールを HDMI から LCD に切り替えるには

 con2fbmap 1 1 ← これで LCD に表示されればOK
HDMI側に出力を戻すには
 con2fbmap 1 0
X Window を LCD に表示するには
 FRAMEBUFFER=/dev/fb1 startx



元に戻るには

FRAMEBUFFER=/dev/fb0 startx

4. 小さなコンソール画面でも多くの文字を表示可能に、フォントを切り替えるには

sudo nano /etc/default/console-setup ← このファイルを修正
 CODESET="guess"
 FONTFACE="Terminus“
 FONTSIZE="6x12“

5. 起動時にカーネルモジュールをロードさせるには

sudo nano /etc/modules ← 一番下に以下の行を追加。
 fbtft_device name=waveshare32b rotate=270

6. 起動画面から LCD に表示させるさせるには

boot configulationファイルを修正して、起動時に HDMI/TV 出力の /dev/fb0 の変わりに、
LCD の /dev/fb1 を使用するよう、/etc/modules の一番下に以下の行を追加。

 fbcon=map:10 fbcon=rotate:1 fbcon=font:ProFont6x11






関連ページ