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

From FriendlyELEC WiKi
Jump to: navigation, search
 
(18 intermediate revisions by 3 users not shown)
Line 2: Line 2:
  
 
==介绍==
 
==介绍==
[[File:Matrix-SPI_TFT.png|thumb|]]
+
[[File:Matrix-2'8_SPI_TFT.png|thumb|]]
* Z280IT010是一个RGB 240*320 点矩阵TFT LCD 模块。TFT 面板含有 720个源极和320 个栅极。微控制器可以轻易的存取液晶显示模组。
+
*Matrix - 2'8 SPI TFT模块是一款2.8英寸的TFT 触摸LCD,模块采用ST7789S驱动IC和XPT2046电阻式触摸IC,屏幕分辨率为320*240,采用SPI控制接口。
*  
+
*详细规格如下所示:
 +
{| class="wikitable"
 +
|-
 +
|LCD尺寸||2.8寸
 +
|-
 +
|显示区域||57.6mm*43.2mm
 +
|-
 +
|驱动IC||ST7789S
 +
|-
 +
|分辨率||320*240(RGB)
 +
|-
 +
|接口方式||SPI
 +
|-
 +
|工作电压||5V
 +
|-
 +
|背光电压||5V
 +
|-
 +
|触摸屏类型||电阻式,钢化玻璃触摸屏
 +
|-
 +
|}
 +
 
 
==特性==
 
==特性==
 
* PCB尺寸(mm):
 
* PCB尺寸(mm):
[[File:Matrix-SPI_TFT_PCB.png|frameless|400px|]]
+
[[File:Matrix-2'8_SPI_TFT_PCB.png|frameless|400px|]]
  
 
* 引脚说明:
 
* 引脚说明:
Line 14: Line 34:
 
|名称 || 描述
 
|名称 || 描述
 
|-
 
|-
| ||  
+
|GND        ||
 +
|-
 +
|5V        || 电源5V
 +
|-
 +
|LED_EN    || 背光
 +
|-
 +
|LCD_RESET  || 复位
 +
|-
 +
|LCD_D/C    || LCD数据/命令选择
 +
|-
 +
|LCD_CS    || LCD片选
 +
|-
 +
|SPICLK    || SPI时钟
 +
|-
 +
|SPIMOSI    || SPI MOSI
 +
|-
 +
|SPIMISO    || SPI MISO
 +
|-
 +
|T_CS      || 触摸片选
 
|-
 
|-
 +
|T_IRQ      || 触摸中断
 +
|-
 
|}
 
|}
  
Line 21: Line 61:
  
 
==下载Matrix源码==
 
==下载Matrix源码==
Matrix配件相关的代码是完全开源的,统一由一个仓库进行管理:git://github.com/friendlyarm/matrix.git <br>
+
Matrix配件相关的代码是完全开源的,统一由一个仓库进行管理:https://github.com/friendlyarm/matrix.git <br>
 
该仓库里不同的分支代表着Matrix配件所支持的不同开发板。<br>
 
该仓库里不同的分支代表着Matrix配件所支持的不同开发板。<br>
 
* nanopi分支用于支持NanoPi;
 
* nanopi分支用于支持NanoPi;
Line 35: Line 75:
 
克隆Matrix配件代码仓库
 
克隆Matrix配件代码仓库
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
$ git clone git://github.com/friendlyarm/matrix.git
+
$ git clone https://github.com/friendlyarm/matrix.git
 
</syntaxhighlight>
 
</syntaxhighlight>
 
克隆完成后会得到一个名为matrix的目录,里面存放着所有Matrix配件的代码。
 
克隆完成后会得到一个名为matrix的目录,里面存放着所有Matrix配件的代码。
  
 
==与NanoPi 2连接使用==
 
==与NanoPi 2连接使用==
===准备工作===
 
在NanoPi 2上运行Debian系统,然后在主机PC上安装并使用相应的编译器,参考wiki: [[NanoPi_2/zh|NanoPi_2]] & [[How_to_build_the_Compiling_Environment/zh|How to Build the Compiling Environment]]。<br>
 
注意: 只有使用s5p4418-nanopi2-matrix分支编译出来的内核才能配合Matrix配件正常工作。<br>
 
下载NanoPi 2内核源代码并编译:<br>
 
<syntaxhighlight lang="bash">
 
$ git clone https://github.com/friendlyarm/linux-3.4.y.git
 
$ cd linux-3.4.y
 
$ git checkout s5p4418-nanopi2-matrix
 
$ make nanopi2_linux_defconfig
 
$ touch .scmversion
 
$ make
 
</syntaxhighlight>
 
编译好后的uImage位于内核源码arch/arm/boot/目录下,把该uImage替换掉SD卡boot分区上的uImage即可。<br>
 
 
 
===硬件连接===
 
===硬件连接===
参考下图连接模块Matrix-SPI_TFT和NanoPi 2:<br>
+
参考下图连接模块Matrix-2'8_SPI_TFT和NanoPi 2:<br>
[[File:Matrix-SPI_TFT_nanopi_2.jpg|frameless|600px|Matrix-SPI_TFT_nanopi_2]]
+
[[File:Matrix-2'8_SPI_TFT_nanopi2.jpg|frameless|600px|Matrix-2'8_SPI_TFT_nanopi2]]
  
 
连接说明:
 
连接说明:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
|Matrix-SPI_TFT || NanoPi 2
+
|Matrix-2'8_SPI_TFT || NanoPi 2
 
|-
 
|-
| ||  
+
|GND        || Pin6
 
|-
 
|-
 +
|5V        || Pin2
 +
|-
 +
|LED_EN    || Pin11
 +
|-
 +
|LCD_RESET  || Pin7
 +
|-
 +
|LCD_D/C    || Pin22
 +
|-
 +
|LCD_CS    || Pin24
 +
|-
 +
|SPICLK    || Pin23
 +
|-
 +
|SPIMOSI    || Pin19
 +
|-
 +
|SPIMISO    || Pin21
 +
|-
 +
|T_CS      || Pin26
 +
|-
 +
|T_IRQ      || Pin18
 +
|-
 
|}
 
|}
  
===加载驱动模块===
+
===编译测试程序===
启动NanoPi 2,在其Debian的shell终端上加载芯片对应的驱动模块
+
进入Matrix代码仓库,切换到nanopi2分支
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
$ modprobe fbtft_device name=matrix-spi_tft gpios=dc:161,reset:162,cs:163
+
$ cd matrix
$ modprobe matrix_ads7846
+
$ git checkout nanopi2
 
</syntaxhighlight>
 
</syntaxhighlight>
模块fbtft_device是芯片ili9341的驱动,模块matrix_ads7846是芯片xpt2046的驱动
 
  
===安装软件包===
+
编译Matrix配件代码
在NanoPi 2的shell终端上安装软件包qtembedded和matrix-tslib
+
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
$ apt-get update
+
$ make CROSS_COMPILE=arm-linux- clean
$ apt-get install qtembedded
+
$ make CROSS_COMPILE=arm-linux-
$ apt-get install matrix-tslib 
+
$ make CROSS_COMPILE=arm-linux- install
 
</syntaxhighlight>
 
</syntaxhighlight>
qtembedded是qt相关的库,matrix-tslib则用于触摸屏校准。
+
注意:请确保你的主机PC当前使用的交叉编译器为NanoPi 2配套的arm-linux-gcc-4.9.3。<br>
 +
编译成功后库文件位于install/lib目录下,测试程序位于install/usr/bin目录下,硬件驱动模块位于modules目录。<br>
 +
硬件驱动模块位于modules目录下,对应的驱动源码都包含在在NanoPi 2的Linux内核仓库里:https://github.com/friendlyarm/linux-3.4.y.git <br>
  
===运行测试程序===
+
===加载驱动程序===
启动Qt应用程序
+
将带有Debian系统的SD卡插入一台运行Linux的电脑,可以挂载SD卡上的boot和rootfs分区。<br>
 +
假设rootfs分区的挂载路径为/media/rootfs,执行以下命令将Matrix的硬件驱动、库文件和测试程序拷贝到NanoPi 2的文件系统上。<br>
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
$ . /usr/bin/matrix-setqt4env
+
$ cp modules /media/rootfs/ -r
$ /usr/local/Trolltech/QtEmbedded-4.8.5-arm/examples/tetrix -qws
+
$ cp install/lib/* /media/rootfs/lib/ -d
 +
$ cp install/usr/bin/* /media/rootfs/usr/bin/
 
</syntaxhighlight>
 
</syntaxhighlight>
matrix-setqt4env用于设置环境变量,第一次运行该脚本时,会出现触摸校准的界面,根据提示点击5个点后完成校准。
+
 
tetrix是一个qt4编写俄罗斯方块小游戏,点击start按钮后就可以开始娱乐了。
+
将SD卡重新插入NanoPi 2,上电启动,在Debian的shell终端中执行以下命令加载硬件驱动。<br>
 +
<syntaxhighlight lang="bash">
 +
$ cd /modules
 +
$ insmod fbtft_device.ko name=matrix-st7789s gpios=dc:97,reset:60,cs:94
 +
$ insmod matrix_ads7846.ko
 +
</syntaxhighlight>
 +
fbtft_device是LCD驱动,成功加载驱动后,可以看到LCD被清屏,matrix_ads7846是触摸驱动。<br>
 +
 
 +
===测试LCD显示===
 +
切换到root账户,后续的操作都需要使用root账户。<br>
 +
执行以下命令选择模块Matrix-2'8_SPI_TFT作为桌面显示设备:
 +
<syntaxhighlight lang="bash">
 +
$ FRAMEBUFFER=/dev/fb-st7789s startx &
 +
</syntaxhighlight>
 +
&表示让其在后台运行,稍等一会,可以看到类似下面的打印信息:<br>
 +
<syntaxhighlight lang="bash">
 +
Log file: "/var/log/Xorg.2.log"
 +
</syntaxhighlight>
 +
表明X窗口进程的环境变量DISPLAY=2,请根据实际打印信息确定DISPLAY的值。<br>
 +
 
 +
===触摸校准===
 +
执行以下命令进行触摸校准:
 +
<syntaxhighlight lang="bash">
 +
$ DISPLAY=:2.0 xinput_calibrator --device "ADS7846 Touchscreen"
 +
</syntaxhighlight>
 +
用触摸笔在屏幕上点击4个点即可完成校准,完成校准后会有类似如下的打印信息:
 +
<syntaxhighlight lang="bash">
 +
Section "InputClass"
 +
        Identifier      "calibration"
 +
        MatchProduct    "ADS7846 Touchscreen"
 +
        Option  "Calibration"  "196 3825 3887 358"
 +
        Option  "SwapAxes"      "0"
 +
EndSection
 +
</syntaxhighlight>
 +
将上述内容手动保存在/usr/share/X11/xorg.conf.d/99-calibration.conf中,以后就再也无需进行校准了。
  
 
==与NanoPi连接使用==
 
==与NanoPi连接使用==
Line 108: Line 190:
  
 
===硬件连接===
 
===硬件连接===
参考下图连接模块Matrix-SPI_TFT和NanoPi <br>
+
参考下图连接模块Matrix-2'8_SPI_TFT和NanoPi <br>
[[File:Matrix-SPI_TFT_nanopi.jpg|frameless|600px|Matrix-SPI_TFT_nanopi]]
+
[[File:Matrix-2'8_SPI_TFT_nanopi.jpg|frameless|600px|Matrix-2'8_SPI_TFT_nanopi]]
  
 
连接说明:
 
连接说明:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
|Matrix-SPI_TFT || NanoPi
+
|Matrix-2'8_SPI_TFT || NanoPi
 +
|-
 +
|GND        || Pin6
 +
|-
 +
|5V        || Pin2
 +
|-
 +
|LED_EN    || Pin1
 +
|-
 +
|LCD_RESET  || Pin7
 +
|-
 +
|LCD_D/C    || Pin11
 +
|-
 +
|LCD_CS    || Pin12
 +
|-
 +
|SPICLK    || Pin23
 +
|-
 +
|SPIMOSI    || Pin19
 +
|-
 +
|SPIMISO    ||
 
|-
 
|-
| ||  
+
|T_CS      ||  
 
|-
 
|-
 +
|T_IRQ      ||
 +
|-
 
|}
 
|}
  
Line 133: Line 235:
 
$ apt-get update
 
$ apt-get update
 
$ apt-get install qtembedded
 
$ apt-get install qtembedded
$ apt-get install matrix-tslib
+
$ apt-get install matrix-tslib
 
</syntaxhighlight>
 
</syntaxhighlight>
 
qtembedded是qt相关的库,matrix-tslib则用于触摸屏校准。
 
qtembedded是qt相关的库,matrix-tslib则用于触摸屏校准。

Latest revision as of 08:20, 6 January 2016

English

1 介绍

  • Matrix - 2'8 SPI TFT模块是一款2.8英寸的TFT 触摸LCD,模块采用ST7789S驱动IC和XPT2046电阻式触摸IC,屏幕分辨率为320*240,采用SPI控制接口。
  • 详细规格如下所示:
LCD尺寸 2.8寸
显示区域 57.6mm*43.2mm
驱动IC ST7789S
分辨率 320*240(RGB)
接口方式 SPI
工作电压 5V
背光电压 5V
触摸屏类型 电阻式,钢化玻璃触摸屏

2 特性

  • PCB尺寸(mm):

File:Matrix-2'8 SPI TFT PCB.png

  • 引脚说明:
名称 描述
GND
5V 电源5V
LED_EN 背光
LCD_RESET 复位
LCD_D/C LCD数据/命令选择
LCD_CS LCD片选
SPICLK SPI时钟
SPIMOSI SPI MOSI
SPIMISO SPI MISO
T_CS 触摸片选
T_IRQ 触摸中断

3 工作原理

4 下载Matrix源码

Matrix配件相关的代码是完全开源的,统一由一个仓库进行管理:https://github.com/friendlyarm/matrix.git
该仓库里不同的分支代表着Matrix配件所支持的不同开发板。

  • nanopi分支用于支持NanoPi;
  • nanopi2分支用于支持NanoPi 2;
  • tiny4412分支用于支持Tiny4412;
  • raspberrypi分支用于支持RaspberryPi;

在主机PC上安装git,以Ubuntu14.04为例

$ sudo apt-get install git

克隆Matrix配件代码仓库

$ git clone https://github.com/friendlyarm/matrix.git

克隆完成后会得到一个名为matrix的目录,里面存放着所有Matrix配件的代码。

5 与NanoPi 2连接使用

5.1 硬件连接

参考下图连接模块Matrix-2'8_SPI_TFT和NanoPi 2:
Matrix-2'8_SPI_TFT_nanopi2

连接说明:

Matrix-2'8_SPI_TFT NanoPi 2
GND Pin6
5V Pin2
LED_EN Pin11
LCD_RESET Pin7
LCD_D/C Pin22
LCD_CS Pin24
SPICLK Pin23
SPIMOSI Pin19
SPIMISO Pin21
T_CS Pin26
T_IRQ Pin18

5.2 编译测试程序

进入Matrix代码仓库,切换到nanopi2分支

$ cd matrix
$ git checkout nanopi2

编译Matrix配件代码

$ make CROSS_COMPILE=arm-linux- clean
$ make CROSS_COMPILE=arm-linux-
$ make CROSS_COMPILE=arm-linux- install

注意:请确保你的主机PC当前使用的交叉编译器为NanoPi 2配套的arm-linux-gcc-4.9.3。
编译成功后库文件位于install/lib目录下,测试程序位于install/usr/bin目录下,硬件驱动模块位于modules目录。
硬件驱动模块位于modules目录下,对应的驱动源码都包含在在NanoPi 2的Linux内核仓库里:https://github.com/friendlyarm/linux-3.4.y.git

5.3 加载驱动程序

将带有Debian系统的SD卡插入一台运行Linux的电脑,可以挂载SD卡上的boot和rootfs分区。
假设rootfs分区的挂载路径为/media/rootfs,执行以下命令将Matrix的硬件驱动、库文件和测试程序拷贝到NanoPi 2的文件系统上。

$ cp modules /media/rootfs/ -r
$ cp install/lib/* /media/rootfs/lib/ -d
$ cp install/usr/bin/* /media/rootfs/usr/bin/

将SD卡重新插入NanoPi 2,上电启动,在Debian的shell终端中执行以下命令加载硬件驱动。

$ cd /modules
$ insmod fbtft_device.ko name=matrix-st7789s gpios=dc:97,reset:60,cs:94
$ insmod matrix_ads7846.ko

fbtft_device是LCD驱动,成功加载驱动后,可以看到LCD被清屏,matrix_ads7846是触摸驱动。

5.4 测试LCD显示

切换到root账户,后续的操作都需要使用root账户。
执行以下命令选择模块Matrix-2'8_SPI_TFT作为桌面显示设备:

$ FRAMEBUFFER=/dev/fb-st7789s startx &

&表示让其在后台运行,稍等一会,可以看到类似下面的打印信息:

Log file: "/var/log/Xorg.2.log"

表明X窗口进程的环境变量DISPLAY=2,请根据实际打印信息确定DISPLAY的值。

5.5 触摸校准

执行以下命令进行触摸校准:

$ DISPLAY=:2.0 xinput_calibrator --device "ADS7846 Touchscreen"

用触摸笔在屏幕上点击4个点即可完成校准,完成校准后会有类似如下的打印信息:

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 与NanoPi连接使用

6.1 准备工作

在NanoPi上运行Debian系统,然后在主机PC上安装并使用相应的编译器。参考wiki:NanoPi
注意:必须使用nanopi-v4.1.y-matrix分支编译出来的内核。
下载NanoPi内核源代码并编译

$ git clone https://github.com/friendlyarm/linux-4.x.y.git
$ cd linux-4.x.y
$ git checkout nanopi-v4.1.y-matrix
$ make nanopi_defconfig
$ touch .scmversion
$ make

6.2 硬件连接

参考下图连接模块Matrix-2'8_SPI_TFT和NanoPi
Matrix-2'8_SPI_TFT_nanopi

连接说明:

Matrix-2'8_SPI_TFT NanoPi
GND Pin6
5V Pin2
LED_EN Pin1
LCD_RESET Pin7
LCD_D/C Pin11
LCD_CS Pin12
SPICLK Pin23
SPIMOSI Pin19
SPIMISO
T_CS
T_IRQ

6.3 加载驱动模块

启动NanoPi,在其Debian的shell终端上加载芯片对应的驱动模块

$ modprobe fbtft_device name=matrix-spi_tft gpios=dc:161,reset:162,cs:163
$ modprobe matrix_ads7846

模块fbtft_device是芯片ili9341的驱动,模块matrix_ads7846是芯片xpt2046的驱动

6.4 安装软件包

在NanoPi的shell终端上安装软件包qtembedded和matrix-tslib

$ apt-get update
$ apt-get install qtembedded
$ apt-get install matrix-tslib

qtembedded是qt相关的库,matrix-tslib则用于触摸屏校准。

6.5 运行测试程序

启动Qt应用程序

$ . /usr/bin/matrix-setqt4env
$ /usr/local/Trolltech/QtEmbedded-4.8.5-arm/examples/tetrix -qws

matrix-setqt4env用于设置环境变量,第一次运行该脚本时,会出现触摸校准的界面,根据提示点击5个点后完成校准。 tetrix是一个qt4编写俄罗斯方块小游戏,点击start按钮后就可以开始娱乐了。

7 与Tiny4412连接使用

8 与RaspberryPi连接使用

9 与Arduino连接使用

10 相关资料