Rockchip RK3399 - NanoPC-T4开发板介绍

882 阅读22分钟

最近从网上买了一块NanoPC-T4开发板,主控芯片是Rockchip RK3399,这块板子也是友善之家的,并且官方有很详细的文档,NanoPC-T4/zh

这篇博客主要是对这块板子进行一个介绍,大部分内容也都来自官方手册,由于官方手册是实时更新的,因此,更详细的内容介绍请移步官网。

一、介绍

  • NanoPC-TC号称是世界上最小的全功能接口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

image.png

主控芯片: 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-T864 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-TC开发板的正反面外形,从PCB上我们可以看到这个板子上的电气元件的密度是非常大的:

image.png

下面我们来介绍各个模块的引脚,关于各个引脚的型号作用,我们在学习到各个模块的时候再进行深入研究。

1.2.1 40 Pin GPIO引脚定义
Pin#AssignmentPin#Assignment
1VCC3V3_SYS2VCC5V0_SYS
3I2C2_SDA(3V)4VCC5V0_SYS
5I2C2_SCL(3V)6GND
7GPIO1_A0(3V)8GPIO4_C1/I2C3_SCL(3V)
9GND10GPIO4_C0/I2C3_SDA(3V)
11GPIO1_A1(3V)12GPIO1_C2(3V)
13GPIO1_A3(3V)14GND
15GPIO1_A4(3V)16GPIO1_C6(3V)
17VCC3V3_SYS18GPIO1_C7(3V)
19SPI1_TXD/UART4_TX(3V)20GND
21SPI1_RXD/UART4_RX(3V)22GPIO1_D0(3V)
23SPI1_CLK(3V)24SPI1_CSn0(3V)
25GND26GPIO4_C5/SPDIF_TX(3V)
27I2C2_SDA(1.8V)28I2C2_SCL(1.8V)
29I2S1_LRCK_RX(1.8V)30GND
31I2S1_LRCK_TX(1.8V)32I2S_CLK(1.8V)
33I2S1_SCLK(1.8V)34GND
35I2S1_SDI0(1.8V)36I2S1_SDO0(1.8V)
37GPIO3_D4(1.8V)38GPIO3_D5(1.8V)
39GND40GPIO3_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#AssignmentDescription
1GNDSignal ground
2EDP_TX3NeDP data lane 3 negative output
3EDP_TX3PeDP data lane 3 positive output
4GNDSignal ground
5EDP_TX2NeDP data lane 2 negative output
6EDP_TX2PeDP data lane 2 positive output
7GNDSignal ground
8EDP_TX1NeDP data lane 1 negative output
9EDP_TX1PeDP data lane 1 positive output
10GNDSignal ground
11EDP_TX0NeDP data lane 0 negative output
12EDP_TX0PeDP data lane 0 positive output
13GNDSignal ground
14EDPAUXPeDP CH-AUX positive differential output
15EDPAUXNeDP CH-AUX negative differential output
16GNDSignal ground
17VCC3V3_SYS3.3V Power output for logic
18VCC3V3_SYS3.3V Power output for logic
19I2C4_SDA3V I2C data signal, Connect to touch panel
20I2C4_SCL3V I2C clock signal, Connect to touch panel
21GPIO1_C4_TP_INT3V interrupt input, Connect to the interrupt output of touch panel
22GPIO1_B5_TP_RST3V output for reseting touch panel, Connect to the reset input of touch panel
23PWM0_BL3V PWM output, for LCD backlight dimming. pulled up to VCC3V3_SYS on LCD side.
24GPIO4_D5_LCD_BL_EN3V output for turning on/off the LCD backlight
25GNDBacklight ground
26GNDBacklight ground
27GNDBacklight ground
28VCC12V0_SYS12V Power output for Backlight Power
29VCC12V0_SYS12V Power output for Backlight Power
30VCC12V0_SYS12V 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#AssignmentDescription
1, 2, 3VCC5V0_SYS5V power output
4GNDReturn current path
5I2C4_SDA3V I2C data signal, Connect to touch panel
6I2C4_SCL3V I2C clock signal, Connect to touch panel
7GNDReturn current path
8GPIO1_C4_TP_INT3V interrupt input, Connect to the interrupt output of touch panel
9GNDReturn current path
10PWM0_BL3V PWM output, for LCD backlight dimming
11GNDReturn current path
12GPIO4_D5_LCD_BL_EN3V output for turning on/off the LCD backlight
13GPIO4_D6_LCD_RST_H3V output for reseting the LCD module
14GPIO1_B5_TP_RST3V output for reseting touch panel, Connect to the reset input of touch panel
15GNDReturn current path
16MIPI_TX0_D3NMIPI DSI negative differential data line transceiver output
17MIPI_TX0_D3PMIPI DSI positive differential data line transceiver output
18GNDReturn current path
19MIPI_TX0_D2NMIPI DSI negative differential data line transceiver output
20MIPI_TX0_D2PMIPI DSI positive differential data line transceiver output
21GNDReturn current path
22MIPI_TX0_D1NMIPI DSI negative differential data line transceiver output
23MIPI_TX0_D1PMIPI DSI positive differential data line transceiver output
24GNDReturn current path
25MIPI_TX0_D0NMIPI DSI negative differential data line transceiver output
26MIPI_TX0_D0PMIPI DSI positive differential data line transceiver output
27GNDReturn current path
28MIPI_TX0_CLKNMIPI DSI negative differential clock line transceiver output
29MIPI_TX0_CLKPMIPI DSI positive differential clock line transceiver output
30GNDReturn current path
1.2.4 MIPI-CSI接口引脚定义

0.5mm FPC 连接器;

MIPI-CSI2也可作为MIPI-DSI接口连接LCD显示屏:

Pin#MIPI-CSI1MIPI-CSI2Description
1VCC5V0_SYSVCC5V0_SYS5V Power ouput
2VCC5V0_SYSVCC5V0_SYS5V Power ouput
3GNDGNDReturn current path
4VCC_CSI_AF2.8VVCC_CSI_AF2.8V2.8V Power for VCM
5VCC_CSI_1.2VVCC_CSI_1.2V1.2V Power for image sensor core circuit
6VCC1V8_CAMVCC1V8_CAM1.8V power for I/O circuit
7VCC_CSI_2.8VVCC_CSI_2.8V2.8V power for image sensor analog circuit
8VCC_CSI_1.0VVCC_CSI_1.0V1.0V Power for image sensor core circuit
9I2C1_SCLI2C2_SCL1.8V I2C clock signal
10I2C1_SDAI2C2_SDA1.8V I2C data signal
11MIPI_CSI0_RSTMIPI_CSI1_RSTreset camera module
12MIPI_CSI0_PWNMIPI_CSI1_PWNPower down camera module
13GNDGNDReturn current path
14GPIO2_B3_CIF_CLKOUTAGPIO2_B3_CIF_CLKOUTAMCLK to camera module
15GNDGNDReturn current path
16MIPI_RX0_D3PMIPI_TX1/RX1_D3PMIPI CSI positive differential data line transceiver output
17MIPI_RX0_D3NMIPI_TX1/RX1_D3NMIPI CSI negative differential data line transceiver output
18GNDGNDReturn current path
19MIPI_RX0_D2PMIPI_TX1/RX1_D2PMIPI CSI positive differential data line transceiver output
20MIPI_RX0_D2NMIPI_TX1/RX1_D2NMIPI CSI negative differential data line transceiver output
21GNDGNDReturn current path
22MIPI_RX0_D1PMIPI_TX1/RX1_D1PMIPI CSI positive differential data line transceiver output
23MIPI_RX0_D1NMIPI_TX1/RX1_D1NMIPI CSI negative differential data line transceiver output
24GNDGNDReturn current path
25MIPI_RX0_CLKPMIPI_TX1/RX1_CLKPMIPI CSI positive differential clock line transceiver output
26MIPI_RX0_CLKNMIPI_TX1/RX1_CLKNMIPI CSI negative differential clock line transceiver output
27GNDGNDReturn current path
28MIPI_RX0_D0PMIPI_TX1/RX1_D0PMIPI CSI positive differential data line transceiver output
29MIPI_RX0_D0NMIPI_TX1/RX1_D0NMIPI CSI negative differential data line transceiver output
30GNDGNDReturn 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接口相同。

image.png

其实从直观表现上看,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#AssignmentDescriptionPin#AssignmentDescription
1GNDReturn current path2VCC3V3_SYS3.3V Power output
3GNDReturn current path4VCC3V3_SYS3.3V Power output
5PCIE_RX3_NPCIe differential data input signals6N/Cno connection
7PCIE_RX3_PPCIe differential data input signals8N/Cno connection
9GNDReturn current path10N/Cno connection
11PCIE_TX3NPCIe differential data output signals12VCC3V3_SYS3.3V Power output
13PCIE_TX3PPCIe differential data output signals14VCC3V3_SYS3.3V Power output
15GNDReturn current path16VCC3V3_SYS3.3V Power output
17PCIE_RX2_NPCIe differential data input signals18VCC3V3_SYS3.3V Power output
19PCIE_RX2_PPCIe differential data input signals20N/Cno connection
21GNDReturn current path22N/Cno connection
23PCIE_TX2NPCIe differential data output signals24N/Cno connection
25PCIE_TX2PPCIe differential data output signals26N/Cno connection
27GNDReturn current path28N/Cno connection
29PCIE_RX1_NPCIe differential data input signals30N/Cno connection
31PCIE_RX1_PPCIe differential data input signals32N/Cno connection
33GNDReturn current path34N/Cno connection
35PCIE_TX1NPCIe differential data output signals36N/Cno connection
37PCIE_TX1PPCIe differential data output signals38DEVSLP/NCinternal pull up to VCC3V3_SYS with 10K
39GNDReturn current path40I2C2_SCL1.8V I2C clock signal
41PCIE_RX0_NPCIe differential data input signals42I2C2_SDA1.8V I2C data signal
43PCIE_RX0_PPCIe differential data input signals44GPIO2_A2_PCIE_ALERT#1.8V GPIO signal
45GNDReturn current path46N/Cno connection
47PCIE_TX0NPCIe differential data output signals48N/Cno connection
49PCIE_TX0PPCIe differential data output signals50GPIO2_A4_PCIE_RESET#1.8V GPIO signal
51GNDReturn current path52CLKREQ#/NCinternal pull down to GND with 0R
53PCIE_REF_CLKNdifferential reference clock out for PCIe peripheral54GPIO2_A3_PCIE_WAKE#1.8V GPIO signal
55PCIE_REF_CLKPdifferential reference clock out for PCIe peripheral56N/Cno connection
57GNDReturn current path58N/Cno connection
59Connector KeyConnector Key60Connector KeyConnector Key
60Connector KeyConnector Key61Connector KeyConnector Key
62Connector KeyConnector Key63Connector KeyConnector Key
64Connector KeyConnector Key65Connector KeyConnector Key
66Connector KeyConnector Key67N/Cno connection
68RTC_CLKO_SOC1.8V 32.768KHz clock output69N/Cno connection
70VCC3V3_SYS3.3V Power output71GNDReturn current path
72VCC3V3_SYS3.3V Power output73GNDReturn current path
74VCC3V3_SYS3.3V Power output75GNDReturn current path
1.2.6 ADC接口引脚定义

ADC输入范围 : 0~1.8V:

Pin#Assignment
1GND
2VCC_1V8
3ADC_IN0
4ADC_IN2
5ADC_IN3
1.2.7 散热风扇接口引脚定义

连接器型号: JST GH系列连接器,3Pin,BM03B-GHS-TBT:

Pin#AssignmentDescription
1GND0V
212V12V output ,controlled by GPIO4_C6/PWM1
3GPIO2_A6_FAN_TACHconnect to tachometer output signal , or float
1.2.8 串口调试引脚定义

3V电平, 波特率150000bps:

Pin#AssignmentDescription
1GND0V
2VCC5V0_SYS5V power output
3UART2DBG_TXoutput
4UART2DBG_RXintput
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.zipAndroid11 系统固件
rk3399-typec-android10-YYYYMMDD.img.zipAndroid10 系统固件
rk3399-typec-android8-YYYYMMDD.img.zipAndroid8.1 系统固件
rk3399-typec-android7-YYYYMMDD.img.zipAndroid7.1.2 系统固件
Linux系统
rk3399-typec-buildroot-YYYYMMDD.img.zipBuildroot 固件,基于Rockchip Linux SDK,带Qt5-wayland图形界面
rk3399-typec-friendlydesktop-bionic-4.4-arm64-YYYYMMDD.img.zip64位FriendlyDesktop桌面固件(内置Qt 5.10.0, X-Window),基于Ubuntu Desktop 18.04构建
rk3399-typec-friendlycore-focal-4.19-arm64-20211029.img.zip64位FriendlyCore系统固件 (内置Qt 5.10.0),基于Ubuntu core 20.04构建
rk3399-typec-friendlycore-bionic-4.4-arm64-YYYYMMDD.img.zip64位FriendlyCore系统固件 (内置Qt 5.10.0),基于Ubuntu core 18.04构建
rk3399-typec-lubuntu-desktop-xenial-4.4-armhf-YYYYMMDD.img.zipLubuntu桌面版固件(内置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.zipFriendlyWrt系统固件,基于OpenWrt 21.02.1构建,内核版本 5.15.y
rk3399-typec-friendlywrt-kernel4-20211029.img.zipFriendlyWrt系统固件,基于OpenWrt 21.02.1构建,内核版本 4.19.y
Flash Utility:
DriverAssitant_v4.5.tgzRockchip提供的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:

image.png

2.1.2 下载RKDevTool.exe

这里我们下载了RKDevTool_Release_v2.84.zip,解压后可以看到RKDevTool.exe 线刷工具和系统分区配置文件(config.cfg);

image.png 这里有详细的通过RKDevTool烧写固件的使用说明文档。

注意: 不同固件使用的工具版本可能不同,请根据《使用USB线烧写须知(重要)》下载对应的版本。

2.2 工作模式介绍

RK3399有两种工作模式:

工作模式Normal 模式升级模式
启动介质eMMC 接口/SDMMC 接口
描述Normal 模式就是正常的启动过程,各个组件依次加载,正常进入系统。目前支持3种升级模式,各有优缺点:
1. MASKROM升级模式
2. LOADER 升级模式
3. SD 升级模式

一般情况下,开机直接进入Normal模式正常启动系统。如需对开发板系统进行升级,则可以根据情况选择合适的升级模式。注意:NanoPC-T4出厂默认安装Andriod操作系统。

image.png 其中升级模式中,不同升级模式之间的对比:

升级模式MASKROM升级模式LOADER 升级模式SD 升级模式
简单描述1. 使用USB线将主板连接到电脑上; 2. 硬件操作使板子进入升级模式; 3. 在PC上使用USB升级单板固件。1. 使用USB线将主板连接到电脑上; 2. 软件或按键操作使板子进入升级模式; 3. 在PC上使用USB升级单板固件。1.通过升级卡制作工具,将MicroSD卡制作为升级卡; 2. 将升级卡插入主板,上电开机,机器自动执行升级。
连接方式USBUSBTF卡(少数为SD卡槽)
升级工具 Windows PC Linux PCWindows 上升级固件
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.3 MASKROM升级模式

MASKROM升级模式是最基本的升级方式,也是设备变砖的最后一道防线。MASKROM升级模式涉及硬件操作,因此在设备可以进入LOADER升级模式的情况下,优先使用LOADER升级模式。

MASKROM升级原理:人为的把Flash(Nor Flash、Nand Flash和eMMC等存储设备)的CLK时钟引脚与地线短接。使得CPU读取Flash失败,CPU转而初始化USB端口,进入MASKROM升级模式。

2.3.1 进入MASKROM升级模式

NanoPC-T4开发板如需进入MASKROM升级模式,需要进入如下操作:

以管理员身份运行RKDevTool.exe ;

image.png

将开发板连接上电源,并且通过HDMI接口连接到显示设备,连接Type-C数据线到PC;

按住BOOT键再长按Power键开机(保持按下BOOT键5秒以上),将强制进入MASKROM模式,RKDevTool会显示“发现一个MASKROM设备”;

image.png

注意:如果显示“没有发现设备”,请先检查是否已成功安装驱动,检查Type-C数据线然后按上述方法重新开机,或按住Recovery键再按Reset键;

主机应该会提示发现新硬件并配置驱动。打开设备管理器,会见到新设备 Rockusb Device 出现,如下图。如果没有,则需要返回上一步重新安装驱动:

image.png

2.4 LOADER升级模式

在 LOADER模式下,bootLOADER 会进入升级状态,等待主机命令,用于固件升级等。要进入 LOADER模式,必须让 bootLOADER 在启动时检测到 Recovery键按下,且 Type-C处于连接状态。

2.4.1 进入LOADER升级模式

NanoPC-T4开发板如需进入LOADER升级模式,需要进入如下操作:

以管理员身份运行RKDevTool.exe ;

image.png 将开发板连接上电源,并且通过HDMI接口连接到显示设备,连接Type-C数据线到PC;

按住Recovery键再长按(1.5秒以上)Power键开机,RKDevTool会显示“发现一个LOADER设备”;

image.png

2.5 SD升级模式

使用MicroSD更新固件,需要在电脑上,通过做卡工具,将统一固件写入MicroSD卡,目前此操作只支持在Windows操作系统上完成。

2.6 固件文件

固件文件一般有两种:

  • 单个统一固件:统一固件是由分区表、bootLOADER、uboot、kernel、system等所有文件打包合并成的单个文件。升级统一固件将会更新主板上所有分区的数据和分区表,并且擦除主板上所有数据。
  • 多个分区镜像:即各个功能独立的文件,如分区表、bootLOADER、kernel等,在开发阶段生成。独立分区镜像可以只更新指定的分区,而保持其它分区数据不被破坏,在开发过程中会很方便调试。

通过统一固件解包/打包工具,可以把统一固件解包为多个分区镜像,也可以将多个分区镜像合并为一个统一固件。

2.7 Windows主机烧写固件

由于开发板出厂烧写的是Android系统,这里我需要更换为linux系统,因此需要按照上面步骤使得开发板进入MASKROM模式。

将系统文件rk3399-usb-friendlydesktop-bionic-4.4-arm64-20220823.zip解压,在该文件下我们也可以看到烧写固件的工具RKDevTool.exe、以及当前系统文件对应的分区配置文件config.cfg。

image.png

打开当前路径下的 ,RKDevTool.exe,在RKDevTool界面上,选择 “下载镜像”,一一选择镜像文件:

image.png 点击“执行”按钮,即可下载固件到eMMC,请耐心等待,烧写成功结束后将自动重启:

image.png

注意:如果你烧写的固件 LOADER版本与原来的机器的不一致,请在"升级固件"页面先执行擦除 Flash操作 :

image.png

三、SD卡启动

将固件rk3399-sd-friendlycore-bionic-4.4-arm64-20220819.img.gz和烧写工具win32diskimager.rar分别解压,在Windows下插入SD卡(限8G及以上的卡),以管理员身份运行win32diskimager工具;

image.png

在win32diskimager工具的界面上, 选择你的SD卡盘符,选择你要烧写的系统固件,点击 Write按钮烧写即可;

image.png

当制作完成SD卡后,拔出SD卡插入开发板卡槽,上电启动即可。

参考文章:

【1】友善之家NanoPC-T4开发手册

【2】MIPI的DSI接口(协议/时序/时钟计算) DPHY/CPHY

【3】瑞芯微官方手册

【4】Welcome to Firefly Linux 开发指南

【5】Firefly-RK3399开发手册

【6】<opensource.rock-chips.com/wiki_Main_P…

【7】github.com/rockchip-li…

【8】Rkdeveloptool

【9】瑞芯微rk2568

【10】linux内核学习步骤(外文)

【11】 RK3399平台入门到精通系列讲解 - 总目录

【12】linux驱动学习博客系列

【13】torvalds/linux

【14】内核源代码仓库地址(rockchip)

【15】u-boot源代码仓库地址(rockship)

【16】RK3399 TRM

【17】RK3399 Datasheet

【18】玩转 Rockchip 的开发板,这些信息你要知道