Rockchip RK3399 - NanoPC-T4开发板介绍
最近从网上买了一块NanoPC-T4开发板,主控芯片是Rockchip RK3399,这块板子也是友善之家的,并且官方有很详细的文档,NanoPC-T4/zh。
这篇博客主要是对这块板子进行一个介绍,大部分内容也都来自官方手册,由于官方手册是实时更新的,因此,更详细的内容介绍请移步官网。
一、介绍
- NanoPC-T4号称是世界上最小的全功能接口RK3399一体化主板,而且是一款完全开源的高性能计算平台。这款板子尺寸有100x64mm,标配4GB LPDDR3内存和16GB闪存, 板载2.4G & 5G双频WiFi模组, 带有标准完整的M.2 PCIe接口, 可直接安装使用NVME SSD高速固态硬盘。NanoPC-T4支持运行Android 7.1和Lubuntu Desktop两种系统,它们均带有GPU和VPU加速处理。
- NanoPC-T4还带有MIPI-CSI双摄像头接口,MIPI-DSI和eDP双显示接口,HDMI 2.0视频输出口,并具备Type-C/DP,USB 3.0, USB2.0,MicroSD, 千兆以太网口,3.5mm音频输出口,红外接收等常见标准接口,以及AD输入,调试串口,40Pin树莓派兼容扩展口。
- RK3399内置新一代高端图像处理器Mali-T860, 具有超强的3D处理和超高清H.265/H2.64视频解析能力,并可支持双路摄像头同时输入,双ISP像素处理能力高达800MPix/s。NanoPC-T4非常适合广告机,游戏主机,视频会议,智能监控,集群计算,虚拟现实,机器视觉和计算机视觉等方面的应用,并且是人工智能和深度学习平台的绝佳选择。
1.1 硬件特性
1.1.1 RK3399
主控芯片: Rockchip RK3399:
(1) CPU
big.LITTLE大小核架构,双Cortex-A72大核(up to 2.0GHz) + 四Cortex-A53小核结构(up to 1.5GHz);
L1缓存:
- 48KB Icache and 32KB Dcache for each A72;
- 32KB Icache and 32KB Dcache for each A53;
L2缓存:
- 1024KB for big cluster;
- 512KB for little cluster;
(2) GPU
Mali-T860 GPU,支持OpenGL ES1.1/2.0/3.0/3.1, OpenCL, DX11, 支持AFBC(帧缓冲压缩);
(3) Display
- Dual VOP: one supports 4096x2160 with AFBC supported;The other supports 2560x1600;
- Dual channel MIPI-DSI (4 lanes per channel);
- eDP 1.3 (4 lanes with 10.8Gbps) to support display, with PSR;
- HDMI 2.0 for 4K 60Hz with HDCP 1.4/2.2;
- DisplayPort 1.2 (4 lanes, up to 4K 60Hz);
- Supports Rec.2020 and conversion to Rec.709;
(4) 内部SRAM
- 192KB total;
- 4KB used by bootrom when bootup;
(5) 内存
双通道64位DRAM控制器;
支持DDR3/DDR3L,LPDDR3、LPDDR4;
(5) Connectivity
- PCIe 2.1 (4 full-duplex lanes with 20Gbps);
- Embedded low power MCU for other application;
- 8 channels I2S supports 8 channels RX or 8 channels TX;
(6) Camera
Dual mipi CSI,dual ISP,Maximum input resolution of 13M pixels。
1.1.2 板载外设
电源管理单元::RK808-D PMIC, 搭配独立DC/DC, 支持动态调压, 软件关机, 按键开机, RTC唤醒, 睡眠唤醒等功能;
内存: 双通道4GB LPDDR3-1866;
Flash: 16GB eMMC 5.1 Flash,型号为KLMAG2WEMB-B031;
有线网络: 原生千兆以太网,板载以太网PHY芯片型号为RTL8211E-VB-CG,是Realtek瑞昱推出的一款高集成的网络接收PHY芯片,它符合10Base-T,100Base-TX和1000Base-T IEEE802.3标准,该芯片在网络通信中属于物理层,用于MAC与PHY之间的数据通信;
Wi-Fi/蓝牙: 802.11a/b/g/n/ac, Bluetooth 4.1 双频Wi-Fi蓝牙模块, 2x2 MIMO, 双天线;
视频输入: 1个或2个4线MIPI-CSI, 双ISP像素处理能力高达13MPix/s,支持双路摄像头数据同时输入;
视频输出:
- HDMI: HDMI 2.0a, 支持4K@60Hz显示,支持HDCP 1.4/2.2;
- DP on Type-C: DisplayPort 1.2 Alt Mode on USB Type-C;
- LCD Interface: 一个eDP 1.3(4 线,10.8Gbps), 一个或2个4线MIPI-DSI;
Audio Out: 3.5mm 双通道耳机接口, 或者通过HDMI输出;
Audio In: 2Pin 2.54mm麦克风接口;
USB 2.0: 2个独立的原生USB 2.0 Host A型接口;
USB 3.0: 1个原生USB 3.0 Host A型接口;
USB Type-C: 支持USB3.0 Type-C 和 DisplayPort 1.2 Alt Mode on USB Type-C;
PCIe: 一个 M.2 M-Key PCIe x4 接口, 兼容PCIe 2.1, 双操作模式, 带有M.2 2280模块M3固定螺柱;
microSD Slot x 1;
40Pin GPIO 扩展接口:
2 X 3V/1.8V I2C, up to 1 x 3V UART, 1 X 3V SPI, 1 x SPDIF_TX, up to 8 x 3V GPIOs;
1 x 1.8V I2S, 3 x 1.8V GPIOs;
ADC: 提供3路 1.8V ADC 输入, 5 Pin 2.54mm 排针接口;
调试串口: 4 Pin 2.54mm 调试串口, 3V电平, 波特率为1500000;
按键: 电源按键, 复位按键, Maskrom按键(BOOT), 系统还原按键;
LED: 1 x power LED and 1 x GPIO Controled LED;
红外接收器: 板载红外接收器, 接受的载波频率为38KHz;
RTC电池座子: 2 Pin 1.27/1.25mm RTC备份电池接口;
散热片和风扇: 2个2.5mm焊接螺柱, 专门用于固定散热片; 3 Pin 12V 支持PWM调节的风扇接口;
供电电源: DC 12V/2A;
PCB: Ten Layer, 100 mm x 64 mm;
环境工作温度: -20℃ to 70℃;
1.2 接口布局和尺寸
下面是我购买的NanoPC-T4开发板的正反面外形,从PCB上我们可以看到这个板子上的电气元件的密度是非常大的:
下面我们来介绍各个模块的引脚,关于各个引脚的型号作用,我们在学习到各个模块的时候再进行深入研究。
1.2.1 40 Pin GPIO引脚定义
Pin# | Assignment | Pin# | Assignment |
1 | VCC3V3_SYS | 2 | VCC5V0_SYS |
3 | I2C2_SDA(3V) | 4 | VCC5V0_SYS |
5 | I2C2_SCL(3V) | 6 | GND |
7 | GPIO1_A0(3V) | 8 | GPIO4_C1/I2C3_SCL(3V) |
9 | GND | 10 | GPIO4_C0/I2C3_SDA(3V) |
11 | GPIO1_A1(3V) | 12 | GPIO1_C2(3V) |
13 | GPIO1_A3(3V) | 14 | GND |
15 | GPIO1_A4(3V) | 16 | GPIO1_C6(3V) |
17 | VCC3V3_SYS | 18 | GPIO1_C7(3V) |
19 | SPI1_TXD/UART4_TX(3V) | 20 | GND |
21 | SPI1_RXD/UART4_RX(3V) | 22 | GPIO1_D0(3V) |
23 | SPI1_CLK(3V) | 24 | SPI1_CSn0(3V) |
25 | GND | 26 | GPIO4_C5/SPDIF_TX(3V) |
27 | I2C2_SDA(1.8V) | 28 | I2C2_SCL(1.8V) |
29 | I2S1_LRCK_RX(1.8V) | 30 | GND |
31 | I2S1_LRCK_TX(1.8V) | 32 | I2S_CLK(1.8V) |
33 | I2S1_SCLK(1.8V) | 34 | GND |
35 | I2S1_SDI0(1.8V) | 36 | I2S1_SDO0(1.8V) |
37 | GPIO3_D4(1.8V) | 38 | GPIO3_D5(1.8V) |
39 | GND | 40 | GPIO3_D6(1.8V) |
1.2.2 eDP引脚定义
eDP(Embedded DisplayPort) 它是一种基于DisplayPort架构和协议的一种内部数字接口。可以用较简单的连接器以及较少的引脚来传递高分辨率信号,且能够实现多数据同时传输,故传输速率远高于LVDS。适用于平板电脑、笔记本、一体机、未来新型大屏幕高分 辨率手机。
以分辨率为1920x1200、24bit彩色的液晶显示屏为例,如采用LVDS接口,则数据传输线需20对;若采用EDP接口,则只需要4对线。由此可见,eDP接口的优势相当明显,特别是在高清屏中。近年来,为了提高面板及处理器间的数据传输速度,在工控机及工业平板电脑中已大量采用eDP接口,eDP接口正迅速成为主流接口。
连接器型号: I-PEX-20455-030E:
Pin# | Assignment | Description |
1 | GND | Signal ground |
2 | EDP_TX3N | eDP data lane 3 negative output |
3 | EDP_TX3P | eDP data lane 3 positive output |
4 | GND | Signal ground |
5 | EDP_TX2N | eDP data lane 2 negative output |
6 | EDP_TX2P | eDP data lane 2 positive output |
7 | GND | Signal ground |
8 | EDP_TX1N | eDP data lane 1 negative output |
9 | EDP_TX1P | eDP data lane 1 positive output |
10 | GND | Signal ground |
11 | EDP_TX0N | eDP data lane 0 negative output |
12 | EDP_TX0P | eDP data lane 0 positive output |
13 | GND | Signal ground |
14 | EDPAUXP | eDP CH-AUX positive differential output |
15 | EDPAUXN | eDP CH-AUX negative differential output |
16 | GND | Signal ground |
17 | VCC3V3_SYS | 3.3V Power output for logic |
18 | VCC3V3_SYS | 3.3V Power output for logic |
19 | I2C4_SDA | 3V I2C data signal, Connect to touch panel |
20 | I2C4_SCL | 3V I2C clock signal, Connect to touch panel |
21 | GPIO1_C4_TP_INT | 3V interrupt input, Connect to the interrupt output of touch panel |
22 | GPIO1_B5_TP_RST | 3V output for reseting touch panel, Connect to the reset input of touch panel |
23 | PWM0_BL | 3V PWM output, for LCD backlight dimming. pulled up to VCC3V3_SYS on LCD side. |
24 | GPIO4_D5_LCD_BL_EN | 3V output for turning on/off the LCD backlight |
25 | GND | Backlight ground |
26 | GND | Backlight ground |
27 | GND | Backlight ground |
28 | VCC12V0_SYS | 12V Power output for Backlight Power |
29 | VCC12V0_SYS | 12V Power output for Backlight Power |
30 | VCC12V0_SYS | 12V Power output for Backlight Power |
1.2.3 MIPI-DSI接口引脚定义
MIPI(Mobile Industry Processor Interface)是2003年由ARM, Nokia, ST ,TI等公司成立的一个联盟,目的是把手机内部的接口如摄像头、显示屏接口、射频/基带接口等标准化,从而减少手机设计的复杂程度和增加设计灵活性。MIPI联盟下面有不同的WorkGroup,分别定义了一系列的手机内部接口标准,比如摄像头接口CSI、显示接口DSI、射频接口DigRF、麦克风/喇叭接口SLIMbus等。
MIPI-DSI是一种应用于显示技术的串行接口,兼容DPI(显示像素接口,Display Pixel Interface)、DBI(显示总线接口,Display Bus Interface)和DCS(显示命令集,Display Command Set),以串行的方式发送像素信息或指令给外设,还可以从外设中读取状态信息或像素信息,而且在传输过程中享有自己独立的通信协议,包括数据包格式和纠错检错机制。
0.5mm FPC 连接器:
Pin# | Assignment | Description |
1, 2, 3 | VCC5V0_SYS | 5V power output |
4 | GND | Return current path |
5 | I2C4_SDA | 3V I2C data signal, Connect to touch panel |
6 | I2C4_SCL | 3V I2C clock signal, Connect to touch panel |
7 | GND | Return current path |
8 | GPIO1_C4_TP_INT | 3V interrupt input, Connect to the interrupt output of touch panel |
9 | GND | Return current path |
10 | PWM0_BL | 3V PWM output, for LCD backlight dimming |
11 | GND | Return current path |
12 | GPIO4_D5_LCD_BL_EN | 3V output for turning on/off the LCD backlight |
13 | GPIO4_D6_LCD_RST_H | 3V output for reseting the LCD module |
14 | GPIO1_B5_TP_RST | 3V output for reseting touch panel, Connect to the reset input of touch panel |
15 | GND | Return current path |
16 | MIPI_TX0_D3N | MIPI DSI negative differential data line transceiver output |
17 | MIPI_TX0_D3P | MIPI DSI positive differential data line transceiver output |
18 | GND | Return current path |
19 | MIPI_TX0_D2N | MIPI DSI negative differential data line transceiver output |
20 | MIPI_TX0_D2P | MIPI DSI positive differential data line transceiver output |
21 | GND | Return current path |
22 | MIPI_TX0_D1N | MIPI DSI negative differential data line transceiver output |
23 | MIPI_TX0_D1P | MIPI DSI positive differential data line transceiver output |
24 | GND | Return current path |
25 | MIPI_TX0_D0N | MIPI DSI negative differential data line transceiver output |
26 | MIPI_TX0_D0P | MIPI DSI positive differential data line transceiver output |
27 | GND | Return current path |
28 | MIPI_TX0_CLKN | MIPI DSI negative differential clock line transceiver output |
29 | MIPI_TX0_CLKP | MIPI DSI positive differential clock line transceiver output |
30 | GND | Return current path |
1.2.4 MIPI-CSI接口引脚定义
0.5mm FPC 连接器;
MIPI-CSI2也可作为MIPI-DSI接口连接LCD显示屏:
Pin# | MIPI-CSI1 | MIPI-CSI2 | Description |
1 | VCC5V0_SYS | VCC5V0_SYS | 5V Power ouput |
2 | VCC5V0_SYS | VCC5V0_SYS | 5V Power ouput |
3 | GND | GND | Return current path |
4 | VCC_CSI_AF2.8V | VCC_CSI_AF2.8V | 2.8V Power for VCM |
5 | VCC_CSI_1.2V | VCC_CSI_1.2V | 1.2V Power for image sensor core circuit |
6 | VCC1V8_CAM | VCC1V8_CAM | 1.8V power for I/O circuit |
7 | VCC_CSI_2.8V | VCC_CSI_2.8V | 2.8V power for image sensor analog circuit |
8 | VCC_CSI_1.0V | VCC_CSI_1.0V | 1.0V Power for image sensor core circuit |
9 | I2C1_SCL | I2C2_SCL | 1.8V I2C clock signal |
10 | I2C1_SDA | I2C2_SDA | 1.8V I2C data signal |
11 | MIPI_CSI0_RST | MIPI_CSI1_RST | reset camera module |
12 | MIPI_CSI0_PWN | MIPI_CSI1_PWN | Power down camera module |
13 | GND | GND | Return current path |
14 | GPIO2_B3_CIF_CLKOUTA | GPIO2_B3_CIF_CLKOUTA | MCLK to camera module |
15 | GND | GND | Return current path |
16 | MIPI_RX0_D3P | MIPI_TX1/RX1_D3P | MIPI CSI positive differential data line transceiver output |
17 | MIPI_RX0_D3N | MIPI_TX1/RX1_D3N | MIPI CSI negative differential data line transceiver output |
18 | GND | GND | Return current path |
19 | MIPI_RX0_D2P | MIPI_TX1/RX1_D2P | MIPI CSI positive differential data line transceiver output |
20 | MIPI_RX0_D2N | MIPI_TX1/RX1_D2N | MIPI CSI negative differential data line transceiver output |
21 | GND | GND | Return current path |
22 | MIPI_RX0_D1P | MIPI_TX1/RX1_D1P | MIPI CSI positive differential data line transceiver output |
23 | MIPI_RX0_D1N | MIPI_TX1/RX1_D1N | MIPI CSI negative differential data line transceiver output |
24 | GND | GND | Return current path |
25 | MIPI_RX0_CLKP | MIPI_TX1/RX1_CLKP | MIPI CSI positive differential clock line transceiver output |
26 | MIPI_RX0_CLKN | MIPI_TX1/RX1_CLKN | MIPI CSI negative differential clock line transceiver output |
27 | GND | GND | Return current path |
28 | MIPI_RX0_D0P | MIPI_TX1/RX1_D0P | MIPI CSI positive differential data line transceiver output |
29 | MIPI_RX0_D0N | MIPI_TX1/RX1_D0N | MIPI CSI negative differential data line transceiver output |
30 | GND | GND | Return current path |
1.2.5 M.2 PCIe接口引脚定义
PCIe(PCI Express)是新一代的总线接口,是由20多家业界主导公司共同起草并完成的新技术规范,采用点对点的串行连接,可以将数据传输率提高到一个很高的频率,以此提供更高的带宽。而PCI Express的接口根据总线位宽不同,还可分为X1、X4、X8和X16。
M.2接口有两种形式,一个走SATA通道,IO性能和普通SATA接口相同,主要优点就是体积小。另一种形式就是M.2 NVMe,这种数据走PCIe通道,IO性能和PCIe接口相同。
其实从直观表现上看,PCIe是虚拟的一种协议标准,而M.2接口是真实存在于现实世界中的硬件设备。
PCIe Gen 2.1 X4;
M.2 Key M Connector for Socket 2/Socket 3 PCIe-based Module, such as PCIe SSD;
连接器型号: MDT-420-M-01002;
Pin# | Assignment | Description | Pin# | Assignment | Description |
1 | GND | Return current path | 2 | VCC3V3_SYS | 3.3V Power output |
3 | GND | Return current path | 4 | VCC3V3_SYS | 3.3V Power output |
5 | PCIE_RX3_N | PCIe differential data input signals | 6 | N/C | no connection |
7 | PCIE_RX3_P | PCIe differential data input signals | 8 | N/C | no connection |
9 | GND | Return current path | 10 | N/C | no connection |
11 | PCIE_TX3N | PCIe differential data output signals | 12 | VCC3V3_SYS | 3.3V Power output |
13 | PCIE_TX3P | PCIe differential data output signals | 14 | VCC3V3_SYS | 3.3V Power output |
15 | GND | Return current path | 16 | VCC3V3_SYS | 3.3V Power output |
17 | PCIE_RX2_N | PCIe differential data input signals | 18 | VCC3V3_SYS | 3.3V Power output |
19 | PCIE_RX2_P | PCIe differential data input signals | 20 | N/C | no connection |
21 | GND | Return current path | 22 | N/C | no connection |
23 | PCIE_TX2N | PCIe differential data output signals | 24 | N/C | no connection |
25 | PCIE_TX2P | PCIe differential data output signals | 26 | N/C | no connection |
27 | GND | Return current path | 28 | N/C | no connection |
29 | PCIE_RX1_N | PCIe differential data input signals | 30 | N/C | no connection |
31 | PCIE_RX1_P | PCIe differential data input signals | 32 | N/C | no connection |
33 | GND | Return current path | 34 | N/C | no connection |
35 | PCIE_TX1N | PCIe differential data output signals | 36 | N/C | no connection |
37 | PCIE_TX1P | PCIe differential data output signals | 38 | DEVSLP/NC | internal pull up to VCC3V3_SYS with 10K |
39 | GND | Return current path | 40 | I2C2_SCL | 1.8V I2C clock signal |
41 | PCIE_RX0_N | PCIe differential data input signals | 42 | I2C2_SDA | 1.8V I2C data signal |
43 | PCIE_RX0_P | PCIe differential data input signals | 44 | GPIO2_A2_PCIE_ALERT# | 1.8V GPIO signal |
45 | GND | Return current path | 46 | N/C | no connection |
47 | PCIE_TX0N | PCIe differential data output signals | 48 | N/C | no connection |
49 | PCIE_TX0P | PCIe differential data output signals | 50 | GPIO2_A4_PCIE_RESET# | 1.8V GPIO signal |
51 | GND | Return current path | 52 | CLKREQ#/NC | internal pull down to GND with 0R |
53 | PCIE_REF_CLKN | differential reference clock out for PCIe peripheral | 54 | GPIO2_A3_PCIE_WAKE# | 1.8V GPIO signal |
55 | PCIE_REF_CLKP | differential reference clock out for PCIe peripheral | 56 | N/C | no connection |
57 | GND | Return current path | 58 | N/C | no connection |
59 | Connector Key | Connector Key | 60 | Connector Key | Connector Key |
60 | Connector Key | Connector Key | 61 | Connector Key | Connector Key |
62 | Connector Key | Connector Key | 63 | Connector Key | Connector Key |
64 | Connector Key | Connector Key | 65 | Connector Key | Connector Key |
66 | Connector Key | Connector Key | 67 | N/C | no connection |
68 | RTC_CLKO_SOC | 1.8V 32.768KHz clock output | 69 | N/C | no connection |
70 | VCC3V3_SYS | 3.3V Power output | 71 | GND | Return current path |
72 | VCC3V3_SYS | 3.3V Power output | 73 | GND | Return current path |
74 | VCC3V3_SYS | 3.3V Power output | 75 | GND | Return current path |
1.2.6 ADC接口引脚定义
ADC输入范围 : 0~1.8V:
Pin# | Assignment |
1 | GND |
2 | VCC_1V8 |
3 | ADC_IN0 |
4 | ADC_IN2 |
5 | ADC_IN3 |
1.2.7 散热风扇接口引脚定义
连接器型号: JST GH系列连接器,3Pin,BM03B-GHS-TBT:
Pin# | Assignment | Description |
1 | GND | 0V |
2 | 12V | 12V output ,controlled by GPIO4_C6/PWM1 |
3 | GPIO2_A6_FAN_TACH | connect to tachometer output signal , or float |
1.2.8 串口调试引脚定义
3V电平, 波特率150000bps:
-
Pin# Assignment Description 1 GND 0V 2 VCC5V0_SYS 5V power output 3 UART2DBG_TX output 4 UART2DBG_RX intput
-
1.2.9 电源接口
DC-12V/2A输入, 5.5*2.1mm DC电源接口;
1.2.10 电源按键
板子处于关机状态时,需要按下电源按键(大于0.5秒,PWR灯亮即可松开)才会开机。
当板子已正常启动,则电源按键的功能与系统有关,例如在安卓系统下,短按进入休眠,或唤醒,长按则显示关机/重启界面。
1.2.11 USB接口
USB Type-C 接口具有2A过流保护功能;
USB 3.0 接口具有2A过流保护功能;
两个USB 2.0接口共享2A过流保护, 也就是说2个接口的负载总和不应超过2A, 否则触发保护, 2个接口上的设备都会被切断电源;
1.2.12 BOOT按键
按下BOOT按键可以阻止板子从eMMC启动系统;;当板子无法从eMMC和TF卡启动系统时, 板子就会进入Maskrom模式;Maskrom模式下, 可以通过Type-C接口更新板子的系统。
1.2.13 RTC
实测的RTC备份电流为27uA;连接器型号: Molex 53398-0271;
1.2.14 其它说明
只能从DC电源接口给板子供电, 其他接口的电源引脚均为输出引脚;
原理图: 板子原理图;
二、更新固件
NanoPC-T4支持多种方式烧写系统到eMMC:
- SD卡脱机烧写,用SD卡启动开发板,通过EFlasher工具进行烧写 (推荐使用此方法);
- 通过USB Type-C数据线,在Windows下用Rockchip提供的工具进行烧写;
- 通过USB Type-C数据线,在Linux下用Rockchip提供的工具进行烧写;
2.1 准备工作
访问此处的下载地址下载Windows下使用Type-C数据线烧写所需的文件及工具;
安卓系统 | |
rk3399-typec-android11-YYYYMMDD.img.zip | Android11 系统固件 |
rk3399-typec-android10-YYYYMMDD.img.zip | Android10 系统固件 |
rk3399-typec-android8-YYYYMMDD.img.zip | Android8.1 系统固件 |
rk3399-typec-android7-YYYYMMDD.img.zip | Android7.1.2 系统固件 |
Linux系统 | |
rk3399-typec-buildroot-YYYYMMDD.img.zip | Buildroot 固件,基于Rockchip Linux SDK,带Qt5-wayland图形界面 |
rk3399-typec-friendlydesktop-bionic-4.4-arm64-YYYYMMDD.img.zip | 64位FriendlyDesktop桌面固件(内置Qt 5.10.0, X-Window),基于Ubuntu Desktop 18.04构建 |
rk3399-typec-friendlycore-focal-4.19-arm64-20211029.img.zip | 64位FriendlyCore系统固件 (内置Qt 5.10.0),基于Ubuntu core 20.04构建 |
rk3399-typec-friendlycore-bionic-4.4-arm64-YYYYMMDD.img.zip | 64位FriendlyCore系统固件 (内置Qt 5.10.0),基于Ubuntu core 18.04构建 |
rk3399-typec-lubuntu-desktop-xenial-4.4-armhf-YYYYMMDD.img.zip | Lubuntu桌面版固件(内置Qt 5.10.0, X-Window) |
Linux系统 (精简版) | |
rk3399-typec-friendlycore-lite-focal-5.10-arm64-20211029.img.zip | 精简版64位FriendlyCore系统固件,基于Ubuntu core 20.04构建,内核版本 5.15.y |
rk3399-typec-friendlycore-lite-focal-4.19-arm64-20211029.img.zip | 精简版64位FriendlyCore系统固件,基于Ubuntu core 20.04构建,内核版本 4.19.y |
FriendlyWrt系统 | |
rk3399-typec-friendlywrt-20211029.img.zip | FriendlyWrt系统固件,基于OpenWrt 21.02.1构建,内核版本 5.15.y |
rk3399-typec-friendlywrt-kernel4-20211029.img.zip | FriendlyWrt系统固件,基于OpenWrt 21.02.1构建,内核版本 4.19.y |
Flash Utility: | |
DriverAssitant_v4.5.tgz | Rockchip提供的Windows下的USB驱动,使用AndroidTool烧写系统时需要安装此驱动 |
这里我们以烧写rk3399-usb-friendlydesktop-bionic-4.4-arm64-20220823.zip(64位FriendlyDesktop桌面固件(内置Qt 5.10.0, X-Window),基于Ubuntu Desktop 18.04构建 )为例进行讲解。实际上我们最好去安装精简版的Linux系统,如果缺少Qt或者一些软件我们可以自己去安装。
2.1.1 安装DriverAssitant_v4.5.tgz
我们下载完成后,在05_工具软件文件夹找到DriverAssitant_v4.5.tgz,进行解压,然后运行DriverInstall.exe:
2.1.2 下载RKDevTool.exe
这里我们下载了RKDevTool_Release_v2.84.zip,解压后可以看到RKDevTool.exe 线刷工具和系统分区配置文件(config.cfg);
这里有详细的通过RKDevTool烧写固件的使用说明文档。
注意:不同固件使用的工具版本可能不同,请根据《使用USB线烧写须知(重要)》下载对应的版本。
2.2 工作模式介绍
RK3399有两种工作模式:
工作模式 | Normal 模式 | 升级模式 |
---|---|---|
启动介质 | eMMC 接口/SDMMC 接口 | |
描述 | Normal 模式就是正常的启动过程, 各个组件依次加载,正常进入系统。 |
目前支持3种升级模式,各有优缺点: 1. Maskrom升级模式 2. Loader 升级模式 3. SD 升级模式 |
一般情况下,开机直接进入Normal模式正常启动系统。如需对开发板系统进行升级,则可以根据情况选择合适的升级模式。注意:NanoPC-T4出厂默认安装Andriod操作系统。
其中升级模式中,不同升级模式之间的对比:
升级模式 | Maskrom升级模式 | Loader 升级模式 | SD 升级模式 |
---|---|---|---|
简单描述 | 1. 使用USB线将主板连接到电脑上; 2. 硬件操作使板子进入升级模式; 3. 在PC上使用USB升级单板固件。 |
1. 使用USB线将主板连接到电脑上; 2. 软件或按键操作使板子进入升级模式; 3. 在PC上使用USB升级单板固件。 |
1.通过升级卡制作工具,将MicroSD卡制作为升级卡; 2. 将升级卡插入主板,上电开机,机器自动执行升级。 |
连接方式 | USB | USB | TF卡(少数为SD卡槽) |
升级工具 Windows PC Linux PC |
Windows 上升级固件 Linux 上升级固件 |
Windows 上升级固件 Linux 上升级固件 |
Windows 上制作升级卡 不支持 |
进入方法 | 需要硬件操作 | 按键或软件进入 | 上电直接进入 |
使用条件 | 硬件操作进入 | 能正常使用uboot | 无 |
使用场景推荐 | 1. 当板子无法正常启动时候; 2. 在切换烧写Linux和Android固件的情况下。 |
1. 有完整uboot或能正常进入系统; 2. 需要单独烧写分区(uboot或boot分区等)。 |
1. 工人操作方便,适合产品批量生产时候; 2. 产品定型后升级,方便最终客户操作。 |
优点 | 1. 最基本的烧写方式; 2. 非固件和硬件问题,一般都能成功烧写; 3. 不需要uboot支持,拯救变砖的单板; 4. 支持跨系统升级(Linux和安卓等)。 |
1. 烧写效果Maskrom升级模式差不多; 2. 能单独烧写分区; 3. 进入Loader模式方便。 |
1. 操作方便,只需插卡启动; 2.集合了Maskrom升级模式的优点。 |
缺点 | 1. 进入方式麻烦,不适难拆除外壳的产品; 2. 烧写分区表麻烦,较难单独烧写分区; 3. 需要完全擦除设备再烧写。 |
1. 需要完整的Loader(通常指uboot); 2. 跨系统升级需要完全擦除设备再烧写。 |
1. 需要合成完整固件。 |
2.2.1 Maskrom升级模式
Maskrom升级模式是最基本的升级方式,也是设备变砖的最后一道防线。Maskrom升级模式涉及硬件操作,因此在设备可以进入Loader升级模式的情况下,优先使用Loader升级模式。
Maskrom升级原理:
人为的把Flash(Nor Flash、Nand Flash和eMMC等存储设备)的CLK时钟引脚与地线短接。使得CPU读取Flash失败,CPU转而初始化USB端口,进入Maskrom升级模式。
NanoPC-T4开发板如需进入Maskrom升级模式,需要进入如下操作:
(1) 以管理员身份运行RKDevTool.exe ;
(2) 将开发板连接上电源,并且通过HDMI接口连接到显示设备,连接Type-C数据线到PC;
(3) 按住BOOT键再长按Power键开机(保持按下BOOT键5秒以上),将强制进入Maskrom模式,RKDevTool会显示“发现一个Maskrom设备”;
注意:如果显示“没有发现设备”,请先检查是否已成功安装驱动,检查Type-C数据线然后按上述方法重新开机,或按住Recovery键再按Reset键;
(4) 主机应该会提示发现新硬件并配置驱动。打开设备管理器,会见到新设备 Rockusb Device 出现,如下图。如果没有,则需要返回上一步重新安装驱动:
2.2.2 Loader升级模式
在Loader模式下,bootloader会进入升级状态,等待主机命令,用于固件升级等。要进入Loader模式,必须让bootloader在启动时检测到Recovery键按下,且Type-C处于连接状态。
NanoPC-T4开发板如需进入Loader升级模式,需要进入如下操作:
(1) 以管理员身份运行RKDevTool.exe ;
(2) 将开发板连接上电源,并且通过HDMI接口连接到显示设备,连接Type-C数据线到PC;
(3) 按住Recovery键再长按(1.5秒以上)Power键开机,RKDevTool会显示“发现一个Loader设备”;
2.2.3 SD升级模式
使用MicroSD更新固件,需要在电脑上,通过SD卡烧录工具,将统一固件写入MicroSD卡,目前此操作只支持在Windows操作系统上完成。
2.3 固件文件
固件文件一般有两种:
- 单个统一固件:统一固件是由分区表、bootloader、uboot、kernel、system等所有文件打包合并成的单个文件。升级统一固件将会更新主板上所有分区的数据和分区表,并且擦除主板上所有数据。
- 多个分区镜像:即各个功能独立的文件,如分区表、bootloader、kernel等,在开发阶段生成。独立分区镜像可以只更新指定的分区,而保持其它分区数据不被破坏,在开发过程中会很方便调试。
通过统一固件解包/打包工具,可以把统一固件解包为多个分区镜像,也可以将多个分区镜像合并为一个统一固件。
2.4 Windows主机烧写固件到eMMC
由于开发板出厂烧写的是Android系统,这里我需要更换为linux系统,因此需要按照上面步骤使得开发板进入Maskrom模式。
(1) 将系统文件rk3399-usb-friendlydesktop-bionic-4.4-arm64-20220823.zip解压,在该文件下我们也可以看到烧写固件的工具RKDevTool.exe、以及当前系统文件对应的分区配置文件config.cfg。
(2) 打开当前路径下的 RKDevTool.exe,在RKDevTool界面上,选择 “下载镜像”,一一选择镜像文件:
(2) 点击“执行”按钮,即可下载固件到eMMC,请耐心等待,烧写成功结束后将自动重启:
注意:如果你烧写的固件 Loader版本与原来的机器的不一致,请在"升级固件"页面先执行擦除 Flash操作 :
2.5. SD卡启动
接下来我们介绍如何将固件烧写到SD卡,并通过SD卡启动系统。
(1) 将固件rk3399-sd-friendlycore-bionic-4.4-arm64-20220819.img.gz和烧写工具win32diskimager.rar分别解压,在Windows下插入SD卡(限8G及以上的卡),以管理员身份运行win32diskimager工具;
(2) 在win32diskimager工具的界面上, 选择你的SD卡盘符,选择你要烧写的系统固件,点击Write按钮烧写即可;
(3) 当制作完成SD卡后,拔出SD卡插入开发板卡槽,上电启动即可。
参考文章:
【2】MIPI的DSI接口(协议/时序/时钟计算) DPHY/CPHY
【3】瑞芯微官方手册
【4】Welcome to Firefly Linux 开发指南
【6】https://opensource.rock-chips.com/wiki_Main_Page
【7】https://github.com/rockchip-linux
【10】linux内核学习步骤(外文)
【12】linux驱动学习博客系列
【13】torvalds/linux
【14】内核源代码仓库地址(rockchip)
【15】u-boot源代码仓库地址(rockship)
【16】RK3399 TRM
【17】RK3399 Datasheet