Difference between revisions of "Matrix - 2'8 SPI Key TFT"

From FriendlyELEC WiKi
Jump to: navigation, search
(Compile & Run Test Program)
(Compile & Run Test Program)
Line 211: Line 211:
 
[[File:qt-demo-status.png|frameless|600px|qt-demo-status]]<br>
 
[[File:qt-demo-status.png|frameless|600px|qt-demo-status]]<br>
  
===H3配合Linux-3.4内核 / S5P4418配合Linux-3.4内核===
+
===Under H3 & Linux-3.4 Kernel/S5P4418 & Linux-3.4 Kernel===
 
====在Ubuntu-Core上运行Qt程序====
 
====在Ubuntu-Core上运行Qt程序====
由于Ubuntu-Core系统带有Qt环境,我们可以在该系统上运行一个简单且带图形界面的Qt程序。<br>
+
===Run Qt Programs on Ubuntu-Core===
启动开发板并运行Ubuntu-Core系统,进入系统后克隆Matrix代码仓库:
+
FriendlyElec's Ubuntu-Core supports Qt. Users can run a Qt application by following the steps below.<br>
 +
Boot Ubuntu-Core on a board and clone the Matrix code samples:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
$ apt-get update && apt-get install git
 
$ apt-get update && apt-get install git
 
$ git clone https://github.com/friendlyarm/matrix.git
 
$ git clone https://github.com/friendlyarm/matrix.git
 
</syntaxhighlight>
 
</syntaxhighlight>
克隆完成后会得到一个名为matrix的目录。
+
After it is done a "matrix" directory will be generated.
  
编译并运行Qt测试程序:
+
Compile and Run Qt Test Program:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
cd matrix/demo/nanopi-status
 
cd matrix/demo/nanopi-status
Line 227: Line 228:
 
./run.sh /dev/fb-st7789s
 
./run.sh /dev/fb-st7789s
 
</syntaxhighlight>
 
</syntaxhighlight>
nanopi-status是一个简单的Qt程序,可用于显示系统的基本信息,效果如下:<br>
+
The nanopi-status is a simple Qt program which shows system information. Here is what you expect to observe:<br>
[[File:st7789s-status.png|frameless|600px|st7789s-status]]<br>
+
[[File:st7789s-status.png|frameless|600px|st7789s-status]]
脚本run.sh会先加载tft屏的驱动模块然后运行Qt程序,驱动模块加载成功后会生成设备节点/dev/fb-st7789s,下列命令可以确定驱动模块是否成功加载:
+
The run.sh script will load TFT's driver and run the Qt program. After the driver is successfully loaded a device node /dev/fb-st7789s will be generated. You can check whether or not the driver is loaded successfully by running the following commands
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
lsmod
 
lsmod
Line 235: Line 236:
 
fbtft_device          29235  0
 
fbtft_device          29235  0
 
</syntaxhighlight>
 
</syntaxhighlight>
在确定tft驱动模块已加载的前提下,运行下列命令可以显示三原色:
+
After the TFT's driver is loaded you can enable the TFT by running the following commands
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
cd matrix/demo/matrix-lcdtest
 
cd matrix/demo/matrix-lcdtest
Line 242: Line 243:
 
./matrix-lcdtest
 
./matrix-lcdtest
 
</syntaxhighlight>
 
</syntaxhighlight>
三原色可以呈现出屏幕的最佳显示效果。
+
You will watch the display.
  
 
====在2.8寸屏上显示Debian桌面====
 
====在2.8寸屏上显示Debian桌面====
Line 280: Line 281:
  
 
<!---
 
<!---
===Run Qt Programs on Ubuntu-Core===
 
FriendlyElec's Ubuntu-Core supports Qt. Users can run a Qt application by following the steps below.<br>
 
Boot Ubuntu-Core on a board and clone the Matrix code samples:
 
<syntaxhighlight lang="bash">
 
$ apt-get update && apt-get install git
 
$ git clone https://github.com/friendlyarm/matrix.git
 
</syntaxhighlight>
 
After it is done a "matrix" directory will be generated.
 
  
Compile and Run Qt Test Program:
+
 
<syntaxhighlight lang="bash">
+
cd matrix/demo/nanopi-status
+
./build.sh
+
./run.sh /dev/fb-st7789s
+
</syntaxhighlight>
+
The nanopi-status is a simple Qt program which shows system information. Here is what you expect to observe:<br>
+
[[File:st7789s-status.png|frameless|600px|st7789s-status]]
+
  
 
===Display Debian GUI on 2.8"LCD===
 
===Display Debian GUI on 2.8"LCD===

Revision as of 08:24, 5 July 2017

查看中文

1 Introduction

Matrix-2'8 SPI Key TFT.png
  • The Matrix-2.8_SPI_Key_TFT LCD is a FriendlyARM developed LCD module with resistive touch panel. Its resolution is 240 x 320. It uses the ST7789S IC and XPT2046 resistive touch IC. It has SPI interface and three configurable user keys.
  • Specification
LCD Dimension 2.8"
Display Area 57.6mm*43.2mm
Driver IC ST7789S
Resolution 240 * 320(RGB)
MCU Interface SPI
Power Supply 5V
Backlight Voltage 5V
Touch Resistive Touch, tempered glass touch panel

By default the module's backlight is turned on after the module is powered on. LED_EN can be set to turn off the backlight. If you don’t want the backlight to be turned on after the module is powered on you can take off R12 and in this case you can turn on the backlight by pulling up LED_EN.

2 Features

  • PCB dimension(mm):

Matrix-2'8 SPI Key TFT PCB.png

  • Pin Description:

FriendlyElec has released two versions. Here are the spec:

Matrix-2'8_SPI_Key_TFT-1512
Pin# Description Pin# Description
1 VDD_3.3V 2 VDD_5V
3 NC 4 VDD_5V
5 NC 6 GND
7 LCD_RESET 8 NC
9 GND 10 NC
11 LED_EN 12 NC
13 KEY_1 14 GND
15 KEY_2 16 KEY_3
17 VDD_3.3V 18 T_IRQ
19 SPI_MOSI 20 GND
21 SPI_MISO 22 LCD_D/C
23 SPI_CLK 24 LCD_CS
25 GND 26 T_CS
Matrix-2'8_SPI_Key_TFT-1706
Pin# Description Pin# Description
1 VDD_3.3V 2 VDD_5V
3 NC 4 VDD_5V
5 NC 6 GND
7 LCD_RESET 8 NC
9 GND 10 NC
11 LED_EN 12 T_CS
13 KEY_1 14 GND
15 KEY_2 16 KEY_3
17 VDD_3.3V 18 T_IRQ
19 SPI_MOSI 20 GND
21 SPI_MISO 22 LCD_D/C
23 SPI_CLK 24 LCD_CS
25 GND 26 NC

The Matrix-2'8_SPI_Key_TFT-1706 exposes T_CS from Pin26 to Pin12. And NEO/NEO2/NEO-Plus2 all of which have a 24Pin connector will be able to work with its touch.

3 Applicable Boards & OS

Index SoC Model Board Model OS
1 H3 NanoPi NEO/NEO Air/M1/M1 Plus Allwinner's released Linux-3.4 kernel and Mainline Linux-4.x kernel
2 H5 NanoPi NEO2/NEO Plus2 Mainline Linux-4.x kernel
3 S5P4418 NanoPi2/NanoPi M2/NanoPi2 Fire Samsung's released Linux-3.4 kernel

4 Applications

4.1 H3 Based Boards

Connect to NanoPi M1:
Refer to the following hardware setup to connect the module to the NanoPi M1:
Matrix-2'8_SPI_Key_TFT_nanopi_m1

Connect to NanoPi M1 Plus:
Refer to the following hardware setup to connect the module to the NanoPi M1 Plus:
Matrix-2'8_SPI_Key_TFT_nanopi_m1_plus

Connect to NanoPi NEO:
Refer to the following hardware setup to connect the module to the NanoPi NEO:
Matrix-2'8_SPI_Key_TFT_nanopi_neo

Connect to NanoPi NEO Air:
Refer to the following hardware setup to connect the module to the NanoPi NEO Air:
Matrix-2'8_SPI_Key_TFT_nanopi_neo_air

4.2 H5 Based Boards

Connect to NanoPi NEO2:
Matrix-2'8_SPI_Key_TFT_nanopi_neo2

Connect to NanoPi NEOPlus2:
Matrix-2'8_SPI_Key_TFT_nanopi_neo_plus2

4.3 S5P4418 Based Boards

Connect to NanoPi 2:
Refer to the following hardware setup to connect the module to the NanoPi 2:
Matrix-2'8_SPI_Key_TFT_nanopi2

Connect to NanoPi M2 / NanoPi 2 Fire:
Refer to the following hardware setup to connect the module to the NanoPi M2 / NanoPi 2 Fire:
Matrix-2'8_SPI_Key_TFT_nanopi_m2

5 Compile & Run Test Program

5.1 Under H3/H5 & Mainline Linux-4.x Kernel

If you use a FriendlyElec's H3/H5 board under Mainline Linux-4.x kernel you need to enable the 2.8"TFT with npi-config.Start npi-config as root:

$ npi-config

Open the following menu:
tft-1
Open SPI:
tft-2
Enable/Disable SPI0:
tft-3
Enable SPI0 and then select Matrix-2.8"_SPI_Key_TFT:
tft-4
Return to the main menu and do <Finish>. Reboot your system and run the following command to check whether or not the Matrix-2.8"_SPI_Key_TFT is enabled:

$ ls /dev/fb-st7789s 
/dev/fb-st7789s

/dev/fb-st7789s stands for a framebuffer device

$ ls /dev/input/ts-ads7846 
/dev/input/ts-ads7846

/dev/input/ts-ads7846 stands for a touch device When you first start the system you will be prompted to click on five points to do calibration.
tft-tslib
Note: in the mainline Linux-4.x kernel Pin12 of Matrix-2'8_SPI_Key_TFT-1706 is by default set as touch device's enable/disable pin.
After you enable the Matrix-2'8_SPI_Key_TFT with npi-config your system will set it as your default display device. If you want to make Qt-demo auto-start on system boot you can follow the steps below:
tft-qt-demo-1
Enter Autologin:
tft-qt-demo-2
Enter 去Qt/Embedded:
tft-qt-demo-3
Enable Qt/E Demo:
tft-qt-demo-4
Return to the main menu and do <Finish>.Reboot your system and your Qt/E demo will be started automatically:
qt-demo-status

5.2 Under H3 & Linux-3.4 Kernel/S5P4418 & Linux-3.4 Kernel

5.2.1 在Ubuntu-Core上运行Qt程序

5.3 Run Qt Programs on Ubuntu-Core

FriendlyElec's Ubuntu-Core supports Qt. Users can run a Qt application by following the steps below.
Boot Ubuntu-Core on a board and clone the Matrix code samples:

$ apt-get update && apt-get install git
$ git clone https://github.com/friendlyarm/matrix.git

After it is done a "matrix" directory will be generated.

Compile and Run Qt Test Program:

cd matrix/demo/nanopi-status
./build.sh
./run.sh /dev/fb-st7789s

The nanopi-status is a simple Qt program which shows system information. Here is what you expect to observe:
st7789s-status The run.sh script will load TFT's driver and run the Qt program. After the driver is successfully loaded a device node /dev/fb-st7789s will be generated. You can check whether or not the driver is loaded successfully by running the following commands

lsmod
Module                  Size  Used by
fbtft_device           29235  0

After the TFT's driver is loaded you can enable the TFT by running the following commands

cd matrix/demo/matrix-lcdtest
make
export LCDSET_FB_DEV=/dev/fb-st7789s
./matrix-lcdtest

You will watch the display.

5.3.1 在2.8寸屏上显示Debian桌面

对于支持Debian系统的开发板,用户可以通过下列操作将Debian的桌面显示在2.8寸屏上。

启动开发板并运行Debian系统,进入系统后克隆Matrix代码仓库:

$ apt-get update && apt-get install git
$ git clone https://github.com/friendlyarm/matrix.git

克隆完成后会得到一个名为matrix的目录。

对于H3系列的开发板,需要先修改X11的配置文件:

$ vi /etc/X11/xorg.conf

将字样“/dev/fb0”修改为“/dev/fb-st7789s”。

执行下列命令在2.8寸屏上启动Debian桌面:

$ cd matrix/demo/nanopi-status/
$ ./display-debian.sh /dev/fb-st7789s

用触摸笔在屏幕上点击4个点完成校准并进入Debian桌面,效果如下:
fbtft-debian

完成触摸校准后终端会有类似如下的打印信息:

Section "InputClass" 
        Identifier      "calibration" 
        MatchProduct    "ADS7846 Touchscreen" 
        Option  "Calibration"   "196 3825 3887 358" 
        Option  "SwapAxes"      "0" 
EndSection

将上述内容手动保存在/usr/share/X11/xorg.conf.d/99-calibration.conf中,以后就再也无需进行校准了。


6 Resources

7 Update Log

7.1 Feb-24-2016

  • Added the driver's source code location in Section 5.2

7.2 June-17-2016

  • Re-organized and simplified wiki

7.3 March-5-2017

  • Added sections 3.2, 3.3, 3.4 and 4.1