2016年10月9日日曜日

Raspberry Pi Zero + 小型TFT液晶 (S95417AAA)

概要

パイゼロで小型液晶を使うプロトタイプ。
LCDコントローラは前回と同一な為あっさりできる。
つまりはファミコン(風)コントローラに組込む為の準備。

スペック

・Raspberry Pi Zero [2016.07.19 購入]
 Raspbian 8.0 Jessie (May 2016) (NOOBS 1.9.2 (2016.10.09))
 ※面倒くさくてアップデートしていない
S95417AAA [2016.07.31 購入]
 2.4インチTFT (240x320)、LCDコントローラ:ILI9325 (タッチなし)

1. ラズパイとの接続

接続全体
実際

補足
Vcc:2.8V。
RD:High(Vcc)固定。
DB00~DB07:データシートによりConnected GNDとのこと。
配線は前回のようなスパゲッティーを改める。
I2C、SPI用の各IOは置換え可能のようだ。
おそらくシリアル通信を割り当てられているIOも置換えできるだろうが未検証。
とりあえずバックライトLEDのアノード側に300Ω(10[mA]、2.5[mA/1LED]くらい?)を挟んでおく。もうちょい明るい方がいい。実際トランジスタ駆動するようにした方がいいな。

2. LCDドライバの設定 (fbtft.confの作成)

2-1. GPIOの設定
「Raspberry Piの設定」-「インターフェイス」タブからSPI、I2C、シリアルを無効にする。

2-2. /etc/modules-load.d/fbtft.conf
sudo touch /etc/modules-load.d/fbtft.conf
sudo leafpad /etc/modules-load.d/fbtft.conf
下を記入後保存。
flexfb
fbtft_device

2-3. /etc/modprobe.d/fbtft.conf
こいつも、
sudo touch /etc/modprobe.d/fbtft.conf
sudo leafpad /etc/modprobe.d/fbtft.conf
下を記入後保存。
# for S95417AAA
options fbtft_device name=flexpfb rotate=90 gpios=reset:11,dc:3,wr:4,cs:2,db00:18,db01:23,db02:24,db03:25,db04:27,db05:22,db06:10,db07:9,led:17
options flexfb width=240 height=320 regwidth=16 setaddrwin=1 init=-1,0x00E3,0x3008,-1,0x00E7,0x0012,-1,0x00EF,0x1231,-1,0x0001,0x0100,-1,0x0002,0x0700,-1,0x0003,0x1018,-1,0x0004,0x0000,-1,0x0008,0x0207,-1,0x0009,0x0000,-1,0x000A,0x0000,-1,0x000C,0x0000,-1,0x000D,0x0000,-1,0x000F,0x0000,-1,0x0010,0x0000,-1,0x0011,0x0007,-1,0x0012,0x0000,-1,0x0013,0x0000,-2,200,-1,0x0010,0x1690,-1,0x0011,0x0223,-2,50,-1,0x0012,0x000D,-2,50,-1,0x0013,0x1200,-1,0x0029,0x000A,-1,0x002B,0x000C,-2,50,-1,0x0020,0x0000,-1,0x0021,0x0000,-1,0x0030,0x0000,-1,0x0031,0x0506,-1,0x0032,0x0104,-1,0x0035,0x0207,-1,0x0036,0x000F,-1,0x0037,0x0306,-1,0x0038,0x0102,-1,0x0039,0x0707,-1,0x003C,0x0702,-1,0x003D,0x1604,-1,0x0050,0x0000,-1,0x0051,0x00EF,-1,0x0052,0x0000,-1,0x0053,0x013F,-1,0x0060,0xA700,-1,0x0061,0x0001,-1,0x006A,0x0000,-1,0x0080,0x0000,-1,0x0081,0x0000,-1,0x0082,0x0000,-1,0x0083,0x0000,-1,0x0084,0x0000,-1,0x0085,0x0000,-1,0x0090,0x0010,-1,0x0092,0x0600,-1,0x0007,0x0133,-3

補足
前回と比較するとSPIの記述を削除し、GPIOのアサインを大きく変更している。
それ以外はほぼそのまま。

3. LCDへの画面切替え

3-1. 一時的な切替え
①"Ctrl + Alt + F1"でコンソール画面にする
②下を入力する
con2fbmap 1 1

HDMI接続の液晶に戻る場合は
③下を入力する
con2fbmap 1 0
④"Alt + F7"でXwindowに戻る

3-2. 恒常的な切替え
 保留

4. 蛇足

失敗①  "/etc/modprobe.d/fbtft.conf"の記述ミス
"db06:10"とすべき部分を"db06:0"としていた為、バックライトは光れど何も表示されないという事態になった。

失敗② 配線のミス
なんだよこれ…
単純にDB13の導通がなかった。
ホールのはんだがブクブクいうまでコテを当て直した。
ポリウレタン銅線を使う際には気をつけよう。


2 件のコメント :

  1. Hi, thanks, can you install retropie on your raspberry pi and send me a video how it works?
    I had a display like these on a device what i dont need anymore, but still works!
    Thanks ! my email is bflorin519@gmail.com . Please send me a re if you see this comment.

    返信削除
    返信
    1. Thank you for your message.
      Unfortunately, I'm not doing these now.
      So there is no video unless take a new shot.
      However, I remember retropie on pi zero was too slow.
      recalbox was better.
      but, doom did not move smoothly. maybe.
      I'm trying to NanoPi NEO 2 little by little now.

      削除