Difference between revisions of "NanoPC-T3/zh"

From FriendlyELEC WiKi
Jump to: navigation, search
(快速入门)
(关于LCD/HDMI分辨率)
Line 420: Line 420:
 
如果要修改LCD的显示分辨率,可以直接修改内核中的文件 arch/arm/plat-s5p4418/nanopi2/lcds.c , 然后重新编译内核并更新即可。<br />
 
如果要修改LCD的显示分辨率,可以直接修改内核中的文件 arch/arm/plat-s5p4418/nanopi2/lcds.c , 然后重新编译内核并更新即可。<br />
 
对于HDMI的显示模式,Android则是会通过EDID获得HDMI设备如电视机所支持的显示模式,然后自动选择一个合适的分辨率。如果使用的是Debian,则缺省是720P,可通过修改内核配置来切换为1080P。
 
对于HDMI的显示模式,Android则是会通过EDID获得HDMI设备如电视机所支持的显示模式,然后自动选择一个合适的分辨率。如果使用的是Debian,则缺省是720P,可通过修改内核配置来切换为1080P。
 +
===在电脑上修改SD卡上的系统===
 +
如果你想在运行系统之前,先对系统做一些修改,可以参看本节内容,否则可以跳过本节。<br />
 +
将制作好SD卡插入一台运行Linux的电脑,可以挂载SD卡上的boot和rootfs等分区,对分区内容进行修改,通过在以下情况下你需要进行这些操作:<br />
 +
1) 你想更改Kernel Command Line参数,则可以通过sd-fuse_nanopi2/tools目录下的fw_setenv工具来操作。<br />
 +
查看当前的Command Line:
 +
<syntaxhighlight lang="bash">
 +
cd sd-fuse_nanopi2/tools
 +
./fw_printenv /dev/sdc | grep bootargs
 +
</syntaxhighlight>
 +
目前的Android 5.1.1_r6启用了SELinux,缺省模式是enforcing,你可以通过Command Line来修改它,例如:
 +
<syntaxhighlight lang="bash">
 +
./fw_setenv /dev/sdc bootargs XXX androidboot.selinux=permissive
 +
</syntaxhighlight>
 +
即可修改为permissive模式,其中上面的XXX需要替换成原来的bootargs值。<br />
 +
 +
2) 更新内核 <br />
 +
新版本的uboot在启动时如果识别到LCD,将读取SD卡boot分区的uImage,否则将读取uImage.hdmi。<br />
 +
对于Android来说是同一个文件,因此直接使用新编译的uImage来替换SD卡boot分区下的文件即可。<br />
 +
对于Debian来说,这2个文件是不相同的,使用新编译的支持LCD的uImage直接替换SD卡boot分区的文件,如果是支持HDMI的内核,则替换uImage.hdmi。<br />

Revision as of 03:11, 19 April 2016

English

1 介绍

Overview
Front
Back
  • NanoPC-T3是友善之臂专门针对企业用户而设计,它采用三星四核Cortex -A53架构的S5P6818处理器,NanoPC-T3与NanoPC-T2相比,除CPU更强劲,接口和布局完全与NanoPC-T2相同。NanoPC-T3动态运行主频400M-1.4GHz, NanoPC-T3配备了8GB的eMMC、音频接口、视频输入/输出接口等;并且集成了WiFi和蓝牙,增加千兆以太网和电源管理功能,板载陶瓷天线,带串口调试功能。为适应工业客户需要,NanoPC-T2加装了标配的散热片,以解决芯片发热问题。
  • NanoPC-T3带两路摄像头输入,支持DVP 摄像头及MIPI-CSI摄像头,并且带四路视频输出,分别为HDMI 1.4A接口、LVDS接口、并行RGB-LCD接口、MIPI-DSI接口。并且支持RTC,板载备份电池接口,引出四个USB接口(其中两个是标准A型接口, 另外两个是2.54mm排针)等。
  • NanoPC-T3流畅运行Android5.1、Debian、UbuntuCore+Qt等系统,内核驱动源码完全开源,接口丰富,系统集成完善,是企业用户首选主控板。

2 资源特性

  • CPU: S5P6818, 动态运行主频400Mhz--1.4GHz
  • PMU 电源管理:AXP228,支持软件关机和睡眠唤醒等
  • DDR3 RAM: 1GB
  • SD: 标准SD卡槽一个
  • 网口: 千兆以太网接口(RTL8211E)
  • Wireless:802.11 b/g/n
  • Bluetooth:4.0 dual mode
  • 天线: Wi-Fi和蓝牙共用, 板载陶瓷天线, 同时提供IPX接口
  • eMMC:8GB
  • 视频输入:DVP Camera/MIPI-CSI(双摄像头口)
  • 视频输出:HDMI/LVDS/并行RGB-LCD/MIPI-DSI(四个视频输出接口)
  • 音频:3.5mm耳机座/Via HDMI
  • 麦克风: 板载麦克风
  • USB Host: 4 x USB 2.0 Host , 其中两个是标准A型接口, 另外两个是2.54mm排针
  • Micro USB: 1 x USB 2.0 Client
  • LCD接口: 45pin, 0.5mm间距FPC贴片座,支持全彩TFT LCD (RGB:8-8-8)
  • HDMI: HDMI 1.4a, Type A型口,1080P高清显示
  • DVP Camera接口: 24pin, 0.5mm间距,FPC贴片竖座
  • GPIO扩展接口: 30 Pin2.54mm排针, 包含3个UART, 1路I2C, 1路SPI, 3路PWM,11个GPIO
  • 调试串口:4Pin,2.5mm间距白色座子
  • 按键:K1(电源按键),Reset,
  • LED:一个电源指示LED, 两个GPIO控制的LED
  • 其他: K1(电源按键),Reset, GPIO控制的LED均通过2.54mm排针引出, 板载温控电阻
  • RTC: 支持RTC, 板上有备份电池接口
  • PCB Size:100 x 60mm,6层,沉金工艺
  • 散热片螺丝孔:能加螺丝固定的散热片
  • 供电: DC 5V/2A
  • OS/Software: u-boot, Android5.1, Debian8

3 接口布局和尺寸

3.1 接口布局

NanoPC-T3接口布局
  • 30Pin GPIO管脚定义
Pin# Name Pin# Name
1 SYS_3.3V 2 DGND
3 UART2_TX/GPIOD20 4 UART2_RX/GPIOD16
5 I2C0_SCL 6 I2C0_SDA
7 SPI0_MOSI/GPIOC31 8 SPI0_MISO/GPIOD0
9 SPI0_CLK/GPIOC29 10 SPI0_CS/GPIOC30
11 UART3_TX/GPIOD21 12 UART3_RX/GPIOD17
13 UART4_TX/GPIOB29 14 UART4_RX/GPIOB28
15 GPIOB31 16 GPIOB30
17 GPIOC4 18 GPIOC7
19 GPIOC8 20 GPIOC24
21 GPIOC28 22 GPIOB26
23 GPIOD1/PWM0 24 GPIOD8/PPM
25 GPIOC13/PWM1 26 AliveGPIO3
27 GPIOC14/PWM2 28 AliveGPIO5
29 VDD_5V 30 DGND
  • 20Pin LVDS接口定义
Pin# Name Pin# Name
1 SYS_3.3V 2 SYS_3.3V
3 GPIOC16 4 GPIOB18
5 DGND 6 DGND
7 LVDS_D0- 8 LVDS_D0+
9 LVDS_D1- 10 LVDS_D1+
11 LVDS_D2- 12 LVDS_D2+
13 DGND 14 DGND
15 LVDS_CLK- 16 LVDS_CLK+
17 LVDS_D3- 18 LVDS_D3+
19 I2C2_SCL 20 I2C2_SDA
  • DVP Camera接口定义
Pin# Name
1, 2 SYS_3.3V
7,9,13,15,24 DGND
3 I2C0_SCL
4 I2C0_SDA
5 GPIOB14
6 GPIOB16
8,10 NC
11 VSYNC
12 HREF
14 PCLK
16-23 Data bit7-0
  • RGB LCD IF 管脚定义
Pin# Name Description
1, 2 VDD_5V 5V输出, 可以给LCD模组供电
11,20,29, 37,38,39,40, 45 DGND 参考地, 0电位
3-10 Blue LSB to MSB RGB的蓝色信号
12-19 Green LSB to MSB RGB的绿色信号
21-28 Red LSB to MSB RGB的红色信号
30 GPIOB25 普通GPIO, 用户可控制
31 GPIOC15 一线协议信号, 以实现LCD型号识别,

背光控制和电阻触摸的功能. 系统已占用, 用户不可重新设置.

32 XnRSTOUT Form CPU 系统复位时向外输出低电平
33 VDEN 指示RGB信号有效的信号
34 VSYNC 场信号
35 HSYNC 行信号
36 LCDCLK LCD频率, Pixel frequency
41 I2C2_SCL I2C2的时钟信号, 用来传输电容屏触摸数据
42 I2C2_SDA I2C2的数据信号, 用来传输电容屏触摸数据
43 GPIOC16 电容触摸中断信号, 配合I2C2使用
44 NC 没有任何连接
  • MIPI-DSI接口定义
Pin# Name
1, 2, 3 VDD_5V
4 DGND
5 I2C2_SDA
6 I2C2_SCL
7 DGND
8 GPIOC0
9 DGND
10 GPIOC1
11 DGND
12 GPIOA28
13 nRESETOUT
14, 15 DGND
16 MIPIDSI_DN3
17 MIPIDSI_DP3
18 DGND
19 MIPIDSI_DN2
20 MIPIDSI_DP2
21 DGND
22 MIPIDSI_DN1
23 MIPIDSI_DP1
24 DGND
25 MIPIDSI_DN0
26 MIPIDSI_DP0
27 DGND
28 MIPIDSI_DNCLK
29 MIPIDSI_DPCLK
30 DGND
  • MIPI-CSI接口定义
Pin# Name
1, 2 SYS_3.3V
3 DGND
4 I2C0_SDA
5 I2C0_SCL
6 DGND
7 SPI2_MOSI/GPIOC12
8 SPI2_MISO/GPIOC11
9 SPI2_CS/GPIOC10
10 SPI2_CLK/GPIOC9
11 DGND
12 GPIOB9
13 GPIOC2
14, 15 DGND
16 MIPICSI_DN3
17 MIPICSI_DP3
18 DGND
19 MIPICSI_DN2
20 MIPICSI_DP2
21 DGND
22 MIPICSI_DN1
23 MIPICSI_DP1
24 DGND
25 MIPICSI_DN0
26 MIPICSI_DP0
27 DGND
28 MIPICSI_DNCLK
29 MIPICSI_DPCLK
30 DGND
说明
  1. SYS_3.3V: 3.3V电源输出
  2. VDD_5V: 5V电源输入/输出, 输入范围:4.7~5.6V。
  3. 更详细的信息请查看原理图:[]

3.2 机械尺寸

NanoPC-T3 1601B Dimensions

详细尺寸:[]
  • 电源接口
  • DC电源座子, 适合DC4.0*1.7mm电源插头, 电压范围:4.7~5.6V
DC-023.png
  • 2.54mm间距, 2510-4P针座. Pin1~Pin4定义: VDD_5V, DGND, DGND, 5V_IN
    其中5V_IN直接连到DC电源座子, VDD_5V是5V_IN经过开关S1后连接到板子的5V电源网络
CON5.png

4 快速入门

4.1 准备工作

要开启你的NanoPC-T3新玩具,请先准备好以下硬件

  • NanoPC-T3主板
  • 大SD卡/: Class10或以上的 8GB SDHC卡
  • 一个DC接口的外接电源,要求输出为5V/2A
  • 一台支持HDMI输入的显示器或者电视(或选购LCD配件)
  • 一套USB键盘鼠标,同时连接还需要USB HUB (或选购串口转接板,要PC上进行操作)
  • 一台电脑,需要联网,建议使用Ubuntu 14.04 64位系统

4.2 制作一张带运行系统的SD卡

4.2.1 快速从SD卡启动NanoPC-T3

首先访问[/ 此处的下载地址]下载需要的固件文件:

  • 您需要准备一张4G或以上容量的SDHC卡,该卡的已有数据将会被破坏,因此请先对SD卡上的数据进行备份。
使用LCD或HDMI作来输出的用户,使用以下固件:
Debian系统固件
Android系统固件
烧写工具:
win32diskimager.rar Windows平台下的烧写工具,Linux系统可以用dd命令
  • 将固件和烧写工具分别解压,在Windows下插入SD卡(限4G及以上的卡),以管理员身份运行 win32diskimager 工具, 在win32diskimager工具的界面上, 选择你的SD卡盘符,选择你要烧写的系统固件,点击 Write 按钮烧写即可。
  • 当制作完成 SD 卡后,拔出 SD 卡插入 NanoPC-T3 的 BOOT 卡槽,按住靠网口位置的boot按键上电启动(注意,这里需要 5V/2A 的供电),你可以看到板上PWR灯常亮,LED1心跳闪烁,LED2不亮,这时你已经成功启动NanoPC-T3。

4.2.2 烧写系统到NanoPC-T3的eMMC

  • 下载RAW Image

用于制作烧写eMMC的SD卡的RAW Image: nanopi2-eflasher-sd4g.img.zip。并且需要下载Windows下的烧写工具: win32diskimager.rar;

  • 烧写RAW Image

在Windows下插入SDHC卡(限4G及以上的卡),以管理员身份运行Win32DiskImager,选择 Image File,选择你的SD卡盘符,点 Write 即开始写Image到SD卡。

  • 准备好烧写到eMMC的ROM

到以下链接[1]相关Android或者Debian的Images(System-image-files-for-eMMC),下载完成后,在本地解压 .tgz 压缩包,然后将解压出来的文件(不包含目录)复制到SD卡对应的文件夹/目录。

OS Image Files Copy to...
Android 5.1 android-lollipop-images.tgz
android-lollipop-images.tgz.hash.md5
boot.img
system.img
userdata.img
cache.img
partmap.txt
images\android
Debian (Jessie) debian-jessie-images.tgz
debian-jessie-images.tgz.hash.md5
boot.img
rootfs.img
partmap.txt
images\debian
  • 指定需要烧写的OS

SD卡上配置文件 images\FriendlyARM.ini 缺省是将烧写 Android,如果要烧写Debian,则只需要编辑此文件:

OS = Debian

即可,其中配置文件中”#” 开始行的是注释。

  • 烧写到NanoPC-T3的eMMC

将制作好的SD卡插入NanoPC-T3,连接HDMI或LCD, 按住网口旁边标住有boot的按键,拨动电源开关,板子则会自动开始烧写,你可以通过HDMI或LCD上的显示来查看烧写状态,如果看到以下内容即表示成功,否则失败。

Android is fused successfully. 
All done.

烧写成功完成后,必须按复位键或重新加电, 即可从eMMC启动。

你还可以根据LED来确定烧写状态,以下是LED状态检查表:

LED闪烁状态 系统状态
LED1心跳模式闪 (连续快闪2次)
LED2灭
加电后正常启动的状态
如果没有进行烧写则会保持为此状态
LED1和LED2交替闪烁 (0.3s) 正在烧写系统
LED1和LED2交替的呼吸效果 (1.2s) 烧写成功
LED1和LED2同时快闪 烧写失败

4.2.3 在Linux Desktop下通过脚本制作

  • 1) 将SD卡插入Ubuntu的电脑,用以下命令查看你的SD卡设备名
dmesg | tail

当dmesg输出类拟信息 sdc: sdc1 sdc2时,则表示SD卡对应的设备名为 /dev/sdc,也通过用命令cat /proc/partitions来查看。

  • 2) 下载Linux下的制作脚本
git clone https://github.com/friendlyarm/sd-fuse_nanopi2.git
cd sd-fuse_nanopi2
  • 3) 以下是制作启动Android的SD卡的方法
su
./fusing.sh /dev/sdx

(注:/dev/sdx请替换为实际的SD卡设备文件名)
制作包中未包含Android和Debian的烧写文件,第一次使用时会提示需要下载,输入Y下载,N或10秒未输入则取消。

  • 4) 以下是制作启动Debian的SD卡的方法
./fusing.sh /dev/sdx debian

4.2.4 关于LCD/HDMI分辨率

系统启动时uboot会自动识别LCD,成功则会设置为该LCD的显示分辨率,失败则缺省会设置为HDMI 720P模式。
如果要修改LCD的显示分辨率,可以直接修改内核中的文件 arch/arm/plat-s5p4418/nanopi2/lcds.c , 然后重新编译内核并更新即可。
对于HDMI的显示模式,Android则是会通过EDID获得HDMI设备如电视机所支持的显示模式,然后自动选择一个合适的分辨率。如果使用的是Debian,则缺省是720P,可通过修改内核配置来切换为1080P。

4.3 在电脑上修改SD卡上的系统

如果你想在运行系统之前,先对系统做一些修改,可以参看本节内容,否则可以跳过本节。
将制作好SD卡插入一台运行Linux的电脑,可以挂载SD卡上的boot和rootfs等分区,对分区内容进行修改,通过在以下情况下你需要进行这些操作:
1) 你想更改Kernel Command Line参数,则可以通过sd-fuse_nanopi2/tools目录下的fw_setenv工具来操作。
查看当前的Command Line:

cd sd-fuse_nanopi2/tools
./fw_printenv /dev/sdc | grep bootargs

目前的Android 5.1.1_r6启用了SELinux,缺省模式是enforcing,你可以通过Command Line来修改它,例如:

./fw_setenv /dev/sdc bootargs XXX androidboot.selinux=permissive

即可修改为permissive模式,其中上面的XXX需要替换成原来的bootargs值。

2) 更新内核
新版本的uboot在启动时如果识别到LCD,将读取SD卡boot分区的uImage,否则将读取uImage.hdmi。
对于Android来说是同一个文件,因此直接使用新编译的uImage来替换SD卡boot分区下的文件即可。
对于Debian来说,这2个文件是不相同的,使用新编译的支持LCD的uImage直接替换SD卡boot分区的文件,如果是支持HDMI的内核,则替换uImage.hdmi。