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

From FriendlyELEC WiKi
Jump to: navigation, search
Line 31: Line 31:
  
 
* 引脚说明:
 
* 引脚说明:
 +
Matrix-2'8_SPI_Key_TFT目前已经推出过2个版本,引脚定义如下:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
|名称 || 描述     ||名称 || 描述
+
| style="background: PaleTurquoise; color: black" colspan="4"| '''Matrix-2'8_SPI_Key_TFT-1512'''
 +
|-
 +
|Pin# || Name     ||Pin# || Name
 
|-
 
|-
 
|1    || VDD_3.3V  ||2    || VDD_5V
 
|1    || VDD_3.3V  ||2    || VDD_5V
Line 61: Line 64:
 
|25  || GND        ||26  || T_CS
 
|25  || GND        ||26  || T_CS
 
|-  
 
|-  
 +
|}
 +
 +
{| class="wikitable"
 +
|-
 +
| style="background: PaleTurquoise; color: black" colspan="4"| '''Matrix-2'8_SPI_Key_TFT-1706'''
 +
|-
 +
|Pin# || Name      ||Pin# || Name
 +
|-
 +
|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
 +
|-
 +
|}
 +
Matrix-2'8_SPI_Key_TFT-1706将触摸芯片的使能引脚T_CS从Pin26修改为Pin12,这样修改之后NEO/NEO2/NEO-Plus2等引脚是24Pin兼容的开发板就能正常使用触摸芯片了。
 +
 +
==支持该配件的开发板型号和软件版本==
 +
{| class="wikitable"
 +
|-
 +
|序号 ||CPU型号|| 开发板型号 || 软件版本
 +
|-
 +
|1    ||H3||NanoPi NEO|| 使用全志原厂Linux-3.4内核和开源社区Linux-4.x主线内核的ROM
 +
|-
 +
|2    ||H3||NanoPi NEO Air    || 使用全志原厂Linux-3.4内核和开源社区Linux-4.x主线内核的ROM
 +
|-
 +
|3    ||H3||NanoPi M1    || 使用全志原厂Linux-3.4内核和开源社区Linux-4.x主线内核的ROM
 +
|-
 +
|4    ||H3||NanoPi M1 Plus    || 使用全志原厂Linux-3.4内核和开源社区Linux-4.x主线内核的ROM
 +
|-
 +
|5    ||H5||NanoPi NEO2    || 使用开源社区Linux-4.x内核的ROM
 +
|-
 +
|6    ||H5||NanoPi NEO Plus2    || 使用开源社区Linux-4.x内核的ROM
 
|}
 
|}
  
  
 
==硬件连接==
 
==硬件连接==
===连接NanoPi M1===
+
===H3系列===
 +
====连接NanoPi M1====
 
参考下图连接模块:<br>
 
参考下图连接模块:<br>
 
[[File:Matrix-2'8_SPI_Key_TFT_nanopi_m1.jpg|frameless|600px|Matrix-2'8_SPI_Key_TFT_nanopi_m1]]
 
[[File:Matrix-2'8_SPI_Key_TFT_nanopi_m1.jpg|frameless|600px|Matrix-2'8_SPI_Key_TFT_nanopi_m1]]
  
===连接NanoPi M1 Plus===
+
====连接NanoPi M1 Plus====
 
参考下图连接模块:<br>
 
参考下图连接模块:<br>
 
[[File:Matrix-2'8_SPI_Key_TFT_nanopi_m1_plus.jpg|frameless|600px|Matrix-2'8_SPI_Key_TFT_nanopi_m1_plus]]
 
[[File:Matrix-2'8_SPI_Key_TFT_nanopi_m1_plus.jpg|frameless|600px|Matrix-2'8_SPI_Key_TFT_nanopi_m1_plus]]
  
===连接NanoPi NEO===
+
====连接NanoPi NEO====
 
参考下图连接模块:<br>
 
参考下图连接模块:<br>
 
[[File:Matrix-2'8_SPI_Key_TFT_nanopi_neo.jpg|frameless|600px|Matrix-2'8_SPI_Key_TFT_nanopi_neo]]
 
[[File:Matrix-2'8_SPI_Key_TFT_nanopi_neo.jpg|frameless|600px|Matrix-2'8_SPI_Key_TFT_nanopi_neo]]
  
===连接NanoPi NEO Air===
+
====连接NanoPi NEO Air====
 
参考下图连接模块:<br>
 
参考下图连接模块:<br>
 
[[File:Matrix-2'8_SPI_Key_TFT_nanopi_neo_air.jpg|frameless|600px|Matrix-2'8_SPI_Key_TFT_nanopi_neo_air]]
 
[[File:Matrix-2'8_SPI_Key_TFT_nanopi_neo_air.jpg|frameless|600px|Matrix-2'8_SPI_Key_TFT_nanopi_neo_air]]
  
===连接NanoPi 2===
+
===H5系列===
 +
====连接NanoPi NEO2====
 +
参考下图连接模块:<br>
 +
[[File:Matrix-2'8_SPI_Key_TFT_nanopi_neo2.jpg|frameless|600px|Matrix-2'8_SPI_Key_TFT_nanopi_neo2]]
 +
 
 +
====连接NanoPi NEO Plus2====
 +
参考下图连接模块:<br>
 +
[[File:Matrix-2'8_SPI_Key_TFT_nanopi_neo_plus2.jpg|frameless|600px|Matrix-2'8_SPI_Key_TFT_nanopi_neo_plus2]]
 +
 
 +
===4418系列===
 +
====连接NanoPi2====
 
参考下图连接模块:<br>
 
参考下图连接模块:<br>
 
[[File:Matrix-2'8_SPI_Key_TFT_nanopi2.jpg|frameless|600px|Matrix-2'8_SPI_Key_TFT_nanopi2]]
 
[[File:Matrix-2'8_SPI_Key_TFT_nanopi2.jpg|frameless|600px|Matrix-2'8_SPI_Key_TFT_nanopi2]]
  
===连接NanoPi M2 / NanoPi 2 Fire===
+
====连接NanoPi M2 / NanoPi2 Fire====
 
NanoPi M2和NanoPi 2 Fire的40 Pin引脚定义是一模一样的,所以它们操作Matrix配件的步骤是一样的,这里仅以NanoPi M2为例。<br>
 
NanoPi M2和NanoPi 2 Fire的40 Pin引脚定义是一模一样的,所以它们操作Matrix配件的步骤是一样的,这里仅以NanoPi M2为例。<br>
 
参考下图连接模块:<br>
 
参考下图连接模块:<br>
 
[[File:Matrix-2'8_SPI_Key_TFT_nanopi_m2.jpg|frameless|600px|Matrix-2'8_SPI_Key_TFT_nanopi_m2]]
 
[[File:Matrix-2'8_SPI_Key_TFT_nanopi_m2.jpg|frameless|600px|Matrix-2'8_SPI_Key_TFT_nanopi_m2]]
  
==编译运行测试程序==
+
==测试方法==
===在Ubuntu-Core上运行Qt程序===
+
===H3/H5配合Linux-4.x内核===
 +
当使用的开发板为H3或者H5系列时,假设使用的ROM是基于Linux-4.x主线内核的Ubuntu-Core with Qt-Embedded系统,那么首先需要通过npi-config工具来使能Matrix-2'8_SPI_Key_TFT。<br>
 +
启动系统,在root用户下执行下列命令运行npi-config:
 +
<syntaxhighlight lang="bash">
 +
$ npi-config
 +
</syntaxhighlight>
 +
然后依次进入下列菜单项:<br>
 +
[[File:tft-1.png|frameless|1000px|tft-1]]<br>
 +
进入SPI菜单:<br>
 +
[[File:tft-2.png|frameless|1000px|tft-2]]<br>
 +
选择是否使能SPI0:<br>
 +
[[File:tft-3.png|frameless|1000px|tft-3]]<br>
 +
选择enable SPI0后,再选择SPI0上连接的设备为Matrix-2'8_SPI_Key_TFT:<br>
 +
[[File:pcm5102a-4.png|frameless|1000px|pcm5102a-4]]<br>
 +
最后返回主菜单,选择<Finish>,然后根据提示重启系统。重新启动系统后,执行下列命令检查Matrix-2'8_SPI_Key_TFT的显示芯片和触摸芯片是否被使能:
 +
<syntaxhighlight lang="bash">
 +
$ ls /dev/fb-st7789s
 +
/dev/fb-st7789s
 +
</syntaxhighlight>
 +
/dev/fb-st7789s就是显示芯片的framebuffer设备节点。
 +
<syntaxhighlight lang="bash">
 +
$ ls /dev/input/ts-ads7846
 +
/dev/input/ts-ads7846
 +
</syntaxhighlight>
 +
/dev/input/ts-ads7846就是触摸芯片的设备节点。
 +
第一次进入系统时会进行触摸校准,根据屏幕的提示点击5个点完成校准即可。<br>
 +
通过npi-config使能Matrix-2'8_SPI_Key_TFT后,系统会将默认的登录显示设备设置为Matrix-2'8_SPI_Key_TFT,效果如下:
 +
 
 +
 
 +
===H3配合Linux-3.4内核/4418配合Linux-3.4内核===
 +
====在Ubuntu-Core上运行Qt程序====
 
由于Ubuntu-Core系统带有Qt环境,我们可以在该系统上运行一个简单且带图形界面的Qt程序。<br>
 
由于Ubuntu-Core系统带有Qt环境,我们可以在该系统上运行一个简单且带图形界面的Qt程序。<br>
 
启动开发板并运行Ubuntu-Core系统,进入系统后克隆Matrix代码仓库:
 
启动开发板并运行Ubuntu-Core系统,进入系统后克隆Matrix代码仓库:
Line 123: Line 220:
 
三原色可以呈现出屏幕的最佳显示效果。
 
三原色可以呈现出屏幕的最佳显示效果。
  
===在2.8寸屏上显示Debian桌面===
+
====在2.8寸屏上显示Debian桌面====
 
对于支持Debian系统的开发板,用户可以通过下列操作将Debian的桌面显示在2.8寸屏上。<br>
 
对于支持Debian系统的开发板,用户可以通过下列操作将Debian的桌面显示在2.8寸屏上。<br>
  

Revision as of 05:31, 4 July 2017

English

1 介绍

Matrix-2'8 SPI Key TFT.png
  • Matrix-2'8_SPI_Key_TFT模块是一款2.8英寸的TFT 触摸LCD,模块采用ST7789S驱动IC和XPT2046电阻式触摸IC,屏幕分辨率为240*320,采用SPI控制接口,模块还包含3个独立按键,可根据需要自定义功能。
  • 详细规格如下所示:
LCD尺寸 2.8寸
显示区域 57.6mm*43.2mm
驱动IC ST7789S
分辨率 240*320(RGB)
接口方式 SPI
工作电压 5V
背光电压 5V
触摸屏类型 电阻式,钢化玻璃触摸屏

模块上电默认打开背光,可通过置低LED_EN引脚关闭背光。如果需要关闭上电打开背光,只需要拿到电路板上的R12电阻,再通过置高LED_EN引脚打开背光;

2 特性

  • PCB尺寸(mm):

Matrix-2'8 SPI Key TFT PCB.png

  • 引脚说明:

Matrix-2'8_SPI_Key_TFT目前已经推出过2个版本,引脚定义如下:

Matrix-2'8_SPI_Key_TFT-1512
Pin# Name Pin# Name
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# Name Pin# Name
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

Matrix-2'8_SPI_Key_TFT-1706将触摸芯片的使能引脚T_CS从Pin26修改为Pin12,这样修改之后NEO/NEO2/NEO-Plus2等引脚是24Pin兼容的开发板就能正常使用触摸芯片了。

3 支持该配件的开发板型号和软件版本

序号 CPU型号 开发板型号 软件版本
1 H3 NanoPi NEO 使用全志原厂Linux-3.4内核和开源社区Linux-4.x主线内核的ROM
2 H3 NanoPi NEO Air 使用全志原厂Linux-3.4内核和开源社区Linux-4.x主线内核的ROM
3 H3 NanoPi M1 使用全志原厂Linux-3.4内核和开源社区Linux-4.x主线内核的ROM
4 H3 NanoPi M1 Plus 使用全志原厂Linux-3.4内核和开源社区Linux-4.x主线内核的ROM
5 H5 NanoPi NEO2 使用开源社区Linux-4.x内核的ROM
6 H5 NanoPi NEO Plus2 使用开源社区Linux-4.x内核的ROM


4 硬件连接

4.1 H3系列

4.1.1 连接NanoPi M1

参考下图连接模块:
Matrix-2'8_SPI_Key_TFT_nanopi_m1

4.1.2 连接NanoPi M1 Plus

参考下图连接模块:
Matrix-2'8_SPI_Key_TFT_nanopi_m1_plus

4.1.3 连接NanoPi NEO

参考下图连接模块:
Matrix-2'8_SPI_Key_TFT_nanopi_neo

4.1.4 连接NanoPi NEO Air

参考下图连接模块:
Matrix-2'8_SPI_Key_TFT_nanopi_neo_air

4.2 H5系列

4.2.1 连接NanoPi NEO2

参考下图连接模块:
Matrix-2'8_SPI_Key_TFT_nanopi_neo2

4.2.2 连接NanoPi NEO Plus2

参考下图连接模块:
Matrix-2'8_SPI_Key_TFT_nanopi_neo_plus2

4.3 4418系列

4.3.1 连接NanoPi2

参考下图连接模块:
Matrix-2'8_SPI_Key_TFT_nanopi2

4.3.2 连接NanoPi M2 / NanoPi2 Fire

NanoPi M2和NanoPi 2 Fire的40 Pin引脚定义是一模一样的,所以它们操作Matrix配件的步骤是一样的,这里仅以NanoPi M2为例。
参考下图连接模块:
Matrix-2'8_SPI_Key_TFT_nanopi_m2

5 测试方法

5.1 H3/H5配合Linux-4.x内核

当使用的开发板为H3或者H5系列时,假设使用的ROM是基于Linux-4.x主线内核的Ubuntu-Core with Qt-Embedded系统,那么首先需要通过npi-config工具来使能Matrix-2'8_SPI_Key_TFT。
启动系统,在root用户下执行下列命令运行npi-config:

$ npi-config

然后依次进入下列菜单项:
tft-1
进入SPI菜单:
tft-2
选择是否使能SPI0:
tft-3
选择enable SPI0后,再选择SPI0上连接的设备为Matrix-2'8_SPI_Key_TFT:
pcm5102a-4
最后返回主菜单,选择<Finish>,然后根据提示重启系统。重新启动系统后,执行下列命令检查Matrix-2'8_SPI_Key_TFT的显示芯片和触摸芯片是否被使能:

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

/dev/fb-st7789s就是显示芯片的framebuffer设备节点。

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

/dev/input/ts-ads7846就是触摸芯片的设备节点。 第一次进入系统时会进行触摸校准,根据屏幕的提示点击5个点完成校准即可。
通过npi-config使能Matrix-2'8_SPI_Key_TFT后,系统会将默认的登录显示设备设置为Matrix-2'8_SPI_Key_TFT,效果如下:


5.2 H3配合Linux-3.4内核/4418配合Linux-3.4内核

5.2.1 在Ubuntu-Core上运行Qt程序

由于Ubuntu-Core系统带有Qt环境,我们可以在该系统上运行一个简单且带图形界面的Qt程序。
启动开发板并运行Ubuntu-Core系统,进入系统后克隆Matrix代码仓库:

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

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

编译并运行Qt测试程序:

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

nanopi-status是一个简单的Qt程序,可用于显示系统的基本信息,效果如下:
st7789s-status
脚本run.sh会先加载tft屏的驱动模块然后运行Qt程序,驱动模块加载成功后会生成设备节点/dev/fb-st7789s,下列命令可以确定驱动模块是否成功加载:

lsmod
Module                  Size  Used by
fbtft_device           29235  0

在确定tft驱动模块已加载的前提下,运行下列命令可以显示三原色:

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

三原色可以呈现出屏幕的最佳显示效果。

5.2.2 在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 相关资料