# 开发板概况 TB-RK3588SD开发板是针对瑞芯微RK3588S芯片开发的集参考设计、芯片调试和测试、芯片验证一体的硬件开发板。用于展示瑞芯微RK3588S芯片强大的多媒体接口和丰富的外围接口,同时为开发者提供基于瑞芯微RK3588S芯片的硬件参考设计,使开发者不需修改或者只需要简单修改参考设计的模块电路,就可以完成产品的硬件开发。 ![Debug_Port](./Images/RK3588S-framework.png) TB-RK3588SD布局紧凑,接口丰富,支持千兆网口,HDMI,MIPI-DSI,板载WIFI,USB3.0等接口,配备4GB/8GB LPDDR4X内存。主板尺寸仅89mm×57mm,40Pin GPIO完美兼容树莓派。可广泛应用于人工智能、云计算、边缘计算、虚拟/增强现实、游戏互动、网络直播,会议投屏等智能化升级的相关行业应用。 ![Debug_Port](./Images/TB-RK3588SD-top-interface.png) ![Debug_Port](./Images/TB-RK3588SD-bottom-interface.png) ## TB-RK3588SD默认套装 TB-RK3588SD默认套装包含了以下物品 - TB-RK3588SD开发板 x 1 另外,在使用过程中,你可能需要以下配件: - 显示设备 - 带 HDMI 接口的显示器或电视,及 HDMI 连接线 - 网络 - 100M/1000M 以太网线缆,及有线路由器 - WiFi 路由器 - 输入设备 - USB 无线/有线的鼠标/键盘 - 串口调试 - 杜邦线,作为串口调试连接线 - USB转串口小板 # 串口调试 ## 串口连接 使用杜邦线及USB转串口小板(需自备)连接TB-RK3588SD如下图位置,串口小板使用USB线接至电脑端。 ![Debug_Port](./Images/TB-RK3588SD-debug-port-connection.jpg) 说明:如果开发板配合电源板使用,使用micro USB线连接电源小板的的debug口(通常开发板上的调试口边上有标有类似`DEBUG` 或 `UART TO USB`的丝印) ## Windows上串口调试 ### 安装驱动 TB-RK3588SD上需接电源板,usb转串口芯片为CH340,如果操作系统提示安装驱动,请下载驱动程序或通过驱动精灵进行安装。 ### 获取端口号 打开电脑设备管理器获取调试串口的端口号,如图1-1所示: ![Debug_Port](./Images/GetUartPort.png)
图1-1:获取调试端口号
### 配置调试串口信息 打开串口工具`SecureCRT`(请自行网上搜索下载), 点击"快速连接"按钮,打开调试串口配置界面如图1-2和图1-3所示: 1. Port: 选择设备管理器显示的端口号 2. 波特率: 1500000 3. 禁止流控:不勾选RTS/CTS ![Debug_SecureCRT](./Images/Debug_SecureCRT.png)
图1-2:SecureCRT
![](./Images/Debug_config2.png)
图1-3:配置调试串口信息
## Linux主机调试 ### 安装minicom ```shell sudo apt -y install minicom ``` ### 配置调试窗口信息 按如下步骤,配置保存串口信息: ```eval_rst .. hint:: 以下步骤执行一次即可! ``` 1. 在插入串口调试线后先获取设备节点,如果不是`ttyUSB0`请对应修改`minicom`的配置值。 ```shell $ls /dev/ttyUSB* /dev/ttyUSB0 ``` 1. 执行如下命令打开`minicom` ```shell sudo minicom -s ``` 2. 进入串口设置界面:输入CTRL-A Z ```shell +-------------------------------+ | Filenames and paths | | File transfer protocols | | Serial port setup | | Modem and dialing | | Screen and keyboard | | Save setup as dfl | | Save setup as | | Exit | +-------------------------------+ ``` 3. 端口设置:选择`Serial port setup` 4. 设置串口设备: 输入"A",填入`/dev/ttyUSB0`, 然后按回车确定 5. 禁止流控:输入“F”,按回车确定 6. 设置波特率:输入“E”,再输入“A”直到显示`Current 1500000 8N1`, 然后按回车确认 8. 配置完成后,界面显示 ```shell +--------------------------------------------------------+ | A - Serial Device : /dev/ttyUSB0 | | B - Lockfile Location : /var/lock | | C - Callin Program : | | D - Callout Porgram : | | E - Bps/Par/Bits : 1500000 8N1 | | F - Hardware Flow Control : No | | G - Software Flow Control : No | +--------------------------------------------------------+ ``` 8. 退出端口设置:按回车 9. 保存配置: 选择`Save setup as dfl` 10. 退出设置:选择`Exit` ### 运行minicom ```shell sudo minicom ``` # 分区配置 - TB-RK3588SD0正常启动Debian系统, **需要分别在SpiFlash及TF卡上烧写镜像**。 - SpiFlash分区信息,包括分区名,起始地址和分区大小(起始地址和分区大小的单位为block,每个block的大小为512字节)。TB-RK3588SD0加载part-fit分区表, 分区表信息如下: | 配置项 | 描述 | 起始地址 | 分区大小 | 备注 | | ------ | --------- | ---------- | ---------- | ------------------ | | vnvm | vnvm分区 | 0x00000500 | 0x00000500 | 必选 | | uboot | uboot分区 | 0x00000a00 | 0x00000800 | 必选 | | boot | boot分区 | 0x00001200 | - | 所有剩余空间,必选 | - TF卡仅需格式化成一个ext4分区, 用于存放Rootfs文件系统。 ```eval_rst .. hint:: 预装Rootfs文件系统的TF卡不支持热插拔,请下电后插TF卡上电进系统! ``` # 烧写固件 TB-RK3588SD 出厂默认只烧写SpiFlash镜像,如果需求运行Debian系统,请将已烧写rootfs的TF插入开发版上电启动。 如果在升级过程中出现意外,无法进入loader烧写模式,仍可以进入 `MaskRom` 模式来烧写固件。 ## 固件获取 **TB-RK3588SD** (TB-RK3588SD-IMAGES.tar.gz)下载地址: ​ [点击下载](https://console.box.lenovo.com/l/ZH1MBm) ## 进入烧写模式 ## 准备程序 - TB-RK3588SD 开发板 - 电脑主机 - Type-C 数据线 ### 安装Windows RK USB驱动程序 下载 [Flashtool压缩包](https://console.box.lenovo.com/l/d5GXjR),解压目录FlashTool_CN.zip\FlashTool_CN\Windows\DriverAssitant。运行里面的 `DriverInstall.exe` 。先选择`驱动卸载`,然后再选择`驱动安装`。 ![瑞芯微驱动助手](./Images/rk_devicetool.png) ### 进入loader烧写模式 1. Type-C数据线一端接在开发板上一端接到电脑PC端的USB接口上。 2. 按住主板的"REC_KEY"按键不放,Type-C数据线另一端连接标有“TYPE_C/DP”的丝印的Type-C口。 3. 当开发板进入loader模式后,松开按键。 ### 进入maskrom烧写模式 1. Type-C数据线一端接在开发板上一端接到电脑PC端的USB接口上。 2. 用镊子短接“CLK” "G"两个触点, Type-C数据线另一端连接标有“TYPE_C/DP”的丝印的Type-C口。 3. 当开发板进入maskrom模式后, 松开镊子。 ![瑞芯微驱动助手](./Images/TB-RK3588SD_maskrom.png) ## 查询烧写状态 ### Linux主机查询 先下载得到edge工具(请先下载Linux工程源代码)至电脑上,执行如下命令查询烧写状态: ```shell ./edge flash -q ``` 1. none:表示开发板未进入烧写模式。 2. loader:表示开发板进入loader烧写模式。 3. maskrom:表示开发板进入maskrom烧写模式。 ### Windows主机查询 下载**[RKDevTool_Release_v2.95](https://console.box.lenovo.com/l/d5GXjR)**工具至电脑上。 双击打开RKDevTool_Release_v2.95目录下的RKDevTool.exe - 没有发现设备(如果图1-4所示):表示开发板未进入烧写模式。 - 发现一个LOADER设备(如图1-5所示):表示开发板进入loader烧写模式。 - 发现一个MASKROM设备(如图1-6所示):表示开发板进入maskrom烧写模式。 ![none](./Images/Flash_none_sd0.png)
图1-4:没有发现设备
![loader](./Images/Flash_loader_sd0.png)
图1-5:发现一个LOADER设备
![maskrom](./Images/Flash_maskrom_sd0.png)
图1-6:发现一个MASKROM设备
## Linux主机烧写镜像 ### 烧写所有镜像 烧写所有镜像包括:`MiniLoaderAll.bin`, `uboot.img`, `boot.img`和`parameter.txt` ```shell ./edge flash -a ``` ### 烧写uboot镜像 烧写镜像:MiniLoaderAll.bin,uboot.img和parameter.txt ```shell ./edge flash -u ``` ### 烧写kernel镜像 烧写镜像:boot.img和resource.img ```shell ./edge flash -k ``` ### 查看烧写帮助 ``` 查看支持的烧写参数: ./edge flash -h ``` ### TF卡烧写Rootfs镜像 - 将TF卡格式化成一个分区 - 在Linux主机上将TF卡格式化ext4文件系统(确保只有TF卡读卡器这个USB存储设备插入, 假设TF卡读卡器识别为/dev/sdb1) ``` sudo mkfs.ext4 /dev/sdb1 ``` - 将OUT_DIR目录下的Rootfs.img镜像烧写到TF卡里 ``` sudo dd if=OUT_DIR/rootfs.img of=/dev/sdb1 ``` ## Windows主机烧写镜像 - 双击打开RKDevTool_Release_v2.95目录下的RKDevTool.exe。 - 确认开发板已经进入`loader`或者`maskrom`烧写模式。 - 打勾选择需要烧写的镜像。 ```eval_rst .. note:: Loader和Parmeter选项建议打勾选择,其他选项根据需要打勾选择。 ``` - 点击“执行”按钮,开始烧写固件(如图1-7所示)。 ![flash](./Images/Flash_fit_sd0.png)
图1-7:烧写固件
- Rootfs烧写请参照[TF卡烧写Rootfs镜像]( #rootfs_tfcard)章节 # 运行模式 ## 全速模式 - 接上电源板,用12V电源上电会进入全速模式. - 运行全速模式在uboot阶段串口Log如下: ![](./Images/UbootFullMode.png) - kernel阶段串口log中command line显示performance_mode属性为full: ![](./Images/Full_freq2.png) ## 高速模式 - 当支持PD2.0/3.0协议的适配器用type-c线接入标有“POWER_IN”丝印的Type-C口上电会进入高速模式. - 运行高速模式在uboot阶段串口Log如下: ![](./Images/UbootHighMode.png) - kernel阶段串口log中command line显示performance_mode属性为low: ![](./Images/High_freq2.png) ## 低速模式 - 除以上两种上电方式,以外均进入低速模式. - 运行低速模式在uboot阶段串口Log如下: ![](./Images/UbootLowMode.png) - kernel阶段串口log中command line显示performance_mode属性为low: ![](./Images/Low_freq2.png) # 启动系统 - 插入TF卡, 接入HDMI显示器,启动Debian11系统,进入系统会显示类似以下界面: ![](./Images/DebianMain.png) - 不插TF卡, 启动boot分区引导系统,串口界面提示类似如下,请按提示插入预装rootfs.img的TF卡,选择Continue按钮按回车重启系统 建议: **尽量不要热插拔TF卡, 请下电后插入TF卡!** ![](./Images/SDCardInsert.png)