2.3. X5 MD 开发板使用指南

2.3.1. 功能概述

2.3.1.1. 产品介绍

X5 MD采用核心板与IO载板分离的模块化设计方式,便于功能扩展与定制开发。

RDK X5 Module作为核心板,集成了D-Robotics Sunrise®5智能计算芯片及其关键电路设计,融合了PMIC电源管理模块、DDR、eMMC、QSPI NAND、Wi-Fi/蓝牙等核心功能单元。核心板提供300针高速扩展接口,可灵活连接多种外设,满足各类应用场景的快速部署需求。

image-20250704171124

RDK X5 Module Carrier Board是RDK X5 Module的配套IO载板,提供了丰富的外设接口。 直出接口包括:

  • 两路22Pin摄像头接口(集成MIPI CSI、LPWM&MCLK、I²C、GPIO)

  • 一路HDMI接口

  • 一路RJ45以太网接口

  • 一路LCD接口(集成MIPI DSI和I²C)

  • 40Pin扩展接口(包含GPIO、I²C、SPI、I²S、PWM)

  • 多路功能控制接口等

经过IO载板外围器件处理后输出的接口包括:

  • CAN总线接口(采用TCAN4550芯片,SPI转CAN)

  • 耳机音频接口(基于ES8326B,支持I²S转音频DAC&ADC)

  • 四路USB 3.0接口(通过GL3510 USB Hub扩展)

image-20250704112054

用户可参考IO载板的电路设计,自主开发满足自身应用需求的定制化底板。

2.3.1.2. 规格参数

X5 MD基础规格如下:

模块 参数
处理器 Sunrise 5 ( X5 ) 芯片
CPU 8 核 ARM ® Cortex ® A55@1.5GHz
BPU Bayers-architecture BPU@1.0GHz, 10 TOPS
存储 2GB/4GB/8GB LPDDR4 , 0/8GB/16GB/32GB/64GB eMMC
摄像头 2 路 4-lane MIPI CSI 接口
显示 1 路 HDMI 1080P@60fps , 1 路 MIPI DSI 2K@30fps
USB 1 路 USB Type-A 3.0 接口 , 1 路 Micro USB 2.0 接口
有线网络 1 路千兆以太网接口
无线网络 2.4G / 5G Wi-Fi x1 ,支持 802.11 b/g/n、 Bluetooth 5.1
其他接口 TF 卡接口 x1 , 40 PIN 接口 x1 , I2S x2
供电 USB Type C 5V/5A 供电

2.3.1.3. X5 MD 配件说明

用户使用 X5 MD 开发板前,需要提前准备的配件如下:

必选配件

  • USB Type C 接口 5V/5A 的电源适配器

  • 千兆网线 x1 ,用于网络通讯

  • Micro USB 2.0 数据线 x1,用于串口通信

  • USB TYPE-C 数据线 x1,用于USB 2.0 数据传输

  • Camera 模组,用于视频、图像功能评测

可选配件

  • 显示器与 HDMI Type-A 接口线缆,用于视频画面预览

  • MIPI LCD 显示屏与 22PIN FPC,用于显示功能测试

  • Audio 子板,用于语音功能测试

2.3.2. IO载板功能模块布局

image-202507041116

接口 功能 接口 功能
1 USB Type C 5V/5A供电接口 13 RTC电池接口
2 USB2.0配置header 14 CAN终端电阻接入开关
3 USB2.0接口 15 CAN总线接口
4 USB3.0 HOST接口x2 16 功能控制IO header
5 USB3.0 HOST接口x2 17 Audio接口
6 千兆以太网口 18 IO电平选择header
7 风扇接口 19 MIPI DSI接口
8 POE 接口 20 Micro SD卡接口(背面)
9 CAM2接口,4lane 21 HDMI接口
10 CAM1接口,4lane 22 Debug口,USB转串口(背面)
11 40pin header 23 Sleep按键
12 核心模组接口 24 电源开关

2.3.2.1. 尺寸图

image-20250704141256

image-20250704141132

2.3.3. 接口使用说明

2.3.3.1. 启动开发板

接入 5V/5A 电源适配器(接口 1 ),将电源开关(接口 24 )打开,CB PWR和MD PWR 亮起,说明开发板供电正常。

image-20250704140657

2.3.3.2. eMMC 启动

X5 MD最开始为RDK生态客户设计,运行RDK系统,默认从spi nand启动,如果要烧录使用SDK系统,需要改为从eMMC启动。

首先,通过核心板和IO载板的丝印,确认板卡硬件版本。

V0.X版本:需要更改核心板,请咨询FAE获取eMMC启动修改方法;

V1.X版本:需要更改IO载板:图中位置焊接4.7K欧姆电阻。

image-20250704170727

2.3.3.3. 调试串口

开发板提供一路调试串口(背面接口22),以实现串口登录、调试功能。电脑串口工具的参数配置如下:

  • 波特率(Baud rate):921600

  • 数据位(Data bits):8

  • 奇偶校验(Parity):None

  • 停止位(Stop bits):1

  • 流控(Flow Control):无

串口连接时,需要将通过 Micro-USB 线,连接开发板接口22 与 PC。

image-20250704141632

2.3.3.4. 以太网

开发板提供 1 路 RJ45 网络接口,对应接口 4 ,支持 1000BASE-T、 100BASE-T 和 10BASE-T 标准,开发板默认 ip 地址为 192.168.1.10。 如需查询 IP 地址,可通过串口登录设备,执行 ifconfig 命令查看 eth0 节点对应的信息。

root@buildroot:~$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.10  netmask 255.255.255.0  broadcast 0.0.0.0
        ether 9a:77:34:d1:fc:ed  txqueuelen 1000  (Ethernet)
        RX packets 1813  bytes 134485 (131.3 KiB)
        RX errors 0  dropped 1  overruns 0  frame 0
        TX packets 4563  bytes 282810 (276.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 38

此外,该接口支持 PoE(Power over Ethernet,以太网供电)功能,无需额外的电源线即可通过网线同时传输数据和电力,使设备的安装更加简便灵活。

2.3.3.5. USB 3.0 接口

开发板提供 1 路 USB 3.0,IO载板通过USB HUB扩展为4路 USB 3.0 Type A接口 对应接口4和接口5 ,默认工作在 Host 模式。

如果用户设计的底板没有usb hub,可以通过软件方式切换成 Device 模式。

使能 USB 3.0 Device 模式

通过执行系统配置命令,强制切换 USB 3.0 的主从模式。

设置 USB 3.0 为 Device 模式下的命令:

echo device > /sys/class/usb_role/35100000.usb-role-switch/role

设置 USB 3.0 为 Host 模式下的命令:

echo host > /sys/class/usb_role/35100000.usb-role-switch/role

2.3.3.6. USB 2.0 接口

开发板提供 1 路 Micro USB 2.0 接口,对接口 3 ,可以短接接口 2,将USB 2.0切换到HOST模式。

image-20250704141855

该接口的主要功能应用如下:

  • 功能调试,默认 adb 模式,可通过命令切换 rndis、 uvc 等功能

  • 镜像烧录,支持 dfu、 fastboot 等模式的烧录功能

  • 外设接入,配合 接口 3,灵活切换host和device模式

2.3.3.7. IO电平选择

开发板提供一路 IO 电平选择接口(对应接口 18),可切换 IO 电平为 1.8V 或 3.3V。该设置会同时影响 40Pin 接口和 CAM 接口的 IO 电平。

image-20250704144333

2.3.3.8. 摄像头 (MIPI CSI) 接口

开发板提供 2 路 22pin MIPI CSI 接口,CAM1(接口 10) CAM2(接口 9) 。

两路接口的能力以及配置情况如下表:

接口 MIPI CSI Host 最大支持 lane 数 I2C Bus 复位 GPIO LPWM & MCLK
10 MIPI_CSI0&1 4 lane I2C6 LSIO_GPIO1_06 - 353 LSIO_LPWM1_0 & LSIO_SENSOR0_MCLK
9 MIPI_CSI2&3 4 lane I2C4 LSIO_GPIO1_04 - 351 LSIO_LPWM1_1 & LSIO_SENSOR1_MCLK

22pin接口可以对接树莓派风格的摄像头模组,IO电平(接口 18)要选择3.3V,支持的模组有IMX219IMX477OV5647,MCLK由模组提供。

官方提供了22pin到24pin的转接板,转接板上集成了一颗24M有源晶体负责给Sensor提供MCLK,IO电平(接口 18)要选择1.8V。

image-202507041445

X5 MD 与转接板通过 22Pin 0.5mm 间距同向 FPC 连接,转接板与摄像头模组之间使用与 EVB 板相同类型的排线。

通过转接板可以对接EVB板卡支持的一系列摄像头模组,例如SC230AISC132gsIMX415,方便用户对不同图像场景的测试需求。完整 Camera Sensor 支持列表,请查阅 Camera Sensor Support List

安装完成后,可以通过命令确认模组 I2C 地址能否正常检测到。如检测不到,则需要检查 FPC 排线连接是否正常,避免接触不到位、方向接反等问题。

查询靠CAM1(接口10) 接口 上 Camera Sensor 的 I2C 设备地址:

echo 353 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio353/direction
echo 0 > /sys/class/gpio/gpio353/value
sleep 0.1
echo 1 > /sys/class/gpio/gpio353/value

i2cdetect -y -r 6

查询CAM2(接口9) 接口 上 Camera Sensor 的 I2C 设备地址:

echo 351 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio351/direction
echo 0 > /sys/class/gpio/gpio351/value
sleep 0.1
echo 1 > /sys/class/gpio/gpio351/value

i2cdetect -y -r 4

成功探测到 Camera Sensor 的 I2C 设别地址时,可以看到如下所示的打印(以在接口 10 上探测 SC230AI 为例,可以发现 30 地址被打印出来了):

root@buildroot:~$ i2cdetect -y -r 6
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: 30 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

更多有关 Camera Sensor 相关的使用,请查阅 示例代码介绍

2.3.3.9. HDMI 接口

开发板支持 1 路 HDMI Type-A 接口,对应接口 21 ,支持的Pixel Clock 范围为 25 MHz –165 MHz。

由于系统不支持图形界面,因此开发板 HDMI 接口主要用于实时预览摄像头、网络流画面等功能,具体方法请查阅 示例代码介绍 中显示相关示例。

2.3.3.10. LCD ( MIPI DSI)和 TP 接口

开发板支持 MIPI DSI 和触摸屏接口,对应接口 14 ,接口为22pin,可使用DSI-Cable-12cm接入微雪4.3寸电容触控屏 800×480,如下图所示:

image-20250704155010

成功进入 Linux 系统之后,执行以下命令加载驱动:

modprobe sii902x
modprobe panel-wh-cm480
modprobe ft5406
modprobe hb_bl
modprobe vio_n2d
modprobe vs-x5-syscon-bridge
modprobe vs_drm

串口将会打印:

[ 3343.383052] vs-disp-sif 3e080000.vs-sif: Adding to iommu group 3
[ 3343.384118] vs-dc 3e000000.dc8000Nano: Adding to iommu group 4
[ 3343.385252] vs-bt1120 3e010000.bt1120: Adding to iommu group 5
[ 3343.387555] horizon-lsio-pinctrl 34180000.lsio_iomuxc: set pin = 14 direction to input
[ 3343.387567] horizon-lsio-pinctrl 34180000.lsio_iomuxc: map pin14 to gpio[0] - 14
[ 3343.387635] panel-jc-050hd134 3e060000.mipi_dsi0.0: supply power not found, using dummy regulator
[ 3343.391241] vs-drm 3e000000.disp_apb:display-subsystem: bound 3e080000.vs-sif (ops sif_component_ops [vs_drm])
[ 3343.391529] vs-drm 3e000000.disp_apb:display-subsystem: bound 3e000000.dc8000Nano (ops dc_component_ops [vs_drm])
[ 3343.391692] vs-drm 3e000000.disp_apb:display-subsystem: bound 3e010000.bt1120 (ops bt1120_component_ops [vs_drm])
[ 3343.391730] vs-drm 3e000000.disp_apb:display-subsystem: bound 3e000000.disp_apb:bt1120_bridge (ops bt1120_bridge_component_ops [vs_drm])
[ 3343.391764] vs-drm 3e000000.disp_apb:display-subsystem: bound 3e000000.disp_apb:bt1120_bridge_wb (ops bt1120_bridge_component_ops [vs_drm])
[ 3343.391816] vs-drm 3e000000.disp_apb:display-subsystem: bound 3e060000.mipi_dsi0 (ops dsi_component_ops [vs_drm])
[ 3343.391917] vs-drm 3e000000.disp_apb:display-subsystem: bound 3e000000.disp_apb:dsi-encoder (ops encoder_component_ops [vs_drm])
[ 3343.391976] vs-drm 3e000000.disp_apb:display-subsystem: bound 3e000000.disp_apb:hdmi-encoder (ops encoder_component_ops [vs_drm])
[ 3343.392815] [drm] Initialized vs-drm 1.0.0 20191101 for 3e000000.disp_apb:display-subsystem on minor 0
play-subsystem on minor 0

当出现 [drm] Initialized vs-drm 1.0.0 20191101 for 3e000000.disp_apb:display-subsystem on minor 0 表示显示驱动加载成功。

使用 modetest -M vs-drm -a -s 73@31:800x480 -P 33@31:800x480@NV12 命令进行测试。

连接的屏幕将会亮起,显示如下图的 pattern :

image-20250704155508

加载驱动的命令中, ft5406是触摸屏驱动, hb_bl是背光驱动,具体的驱动开发工作请查阅触摸屏的用户手册和 驱动开发指南

驱动加载成功后,会生成 /dev/input/event1 设备节点给用户态程序使用。

测试使用:

使用 tc_test 程序测试触摸屏功能,当用对触摸屏做点击操作时,可以获取事件、类型、状态码和对应的坐标。

# ./tc_test /dev/input/event1
Monitoring input events on /dev/input/event1
[/dev/input/event1] event(0): type:3; code: 47; value:  0; realx:  0; realy:  0
[/dev/input/event1] event(1): type:3; code: 57; value: 16; realx:  0; realy:  0
[/dev/input/event1] event(2): type:3; code: 53; value:248; realx:248; realy:  0
[/dev/input/event1] event(3): type:3; code: 54; value:1007; realx:248; realy:1007
[/dev/input/event1] event(4): type:3; code: 48; value: 13; realx:248; realy:1007
[/dev/input/event1] event(5): type:3; code: 58; value: 13; realx:248; realy:1007

测试代码:

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <linux/input.h>

static int handle_event(int fd, const char *device_name)
{
	struct input_event ev[64];
	int button = 0, realx = 0, realy = 0, i, rd;

	rd = read(fd, ev, sizeof(struct input_event) * 64);
	if (rd < (int)sizeof(struct input_event)) return 0;

	for (i = 0; i < rd / (int)sizeof(struct input_event); i++)
	{
		if (EV_ABS == ev[i].type)
		{
			if (ev[i].code == 53) {
				realx = ev[i].value;
			} else if (ev[i].code == 54) {
				realy = ev[i].value;
			}
		}
		printf("[%s] event(%d): type:%d; code:%3d; value:%3d; realx:%3d; realy:%3d\n",
			   device_name, i, ev[i].type, ev[i].code, ev[i].value, realx, realy);
	}
	return 1;
}

int main(int argc, char *argv[])
{
	if (argc < 2) {
		printf("Usage: %s <event device path>\n", argv[0]);
		return -1;
	}

	const char *device_path = argv[1];
	int fd = open(device_path, O_RDONLY);
	if (fd < 0) {
		printf("Failed to open input device: %s\n", device_path);
		return -1;
	}

	printf("Monitoring input events on %s\n", device_path);
	while (handle_event(fd, device_path));

	close(fd);
	return 0;
}

2.3.3.11. Wi-Fi / Bluetooth

  • 使用 Wi-Fi

开发板集成了 FCS960K 2.4G/5.0G 双模 Wi-Fi / Bluetooth 模组,支持 IEEE802.11a/b/g/n/ac/axWLAN、 Bluetooth 5.1 功能,系统启动时自动加载 Wi-Fi 驱动。

root@buildroot:~$ ifconfig wlan0
wlan0: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 40:9c:a7:70:98:cc  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

用户需要通过修改配置文件的方式,手动配置热点名和获取 ip 地址,方法如下:

# 进入 userdata 目录,避免在系统目录下遇到无法写文件的错误
cd /userdata/
# 根据 Wi-Fi 热点情况修改命令中的热点名( SSID)和密码(“ WIFI_SSID”,“ WIFI_PASSWD”)
wpa_passphrase "WIFI_SSID" "WIFI_PASSWD"  >> ./wpa_supplicant.conf

sleep 1
wpa_supplicant -D nl80211 -i wlan0 -c ./wpa_supplicant.conf -B
sleep 1
udhcpc -i wlan0 &

配置完成后,执行 ping 8.8.8.8 命令确认网络是否正常,正常情况下的日志如下:

root@buildroot:~$ cd /userdata/
root@buildroot:/userdata$ wpa_passphrase WiFi-Test 12345678 >> ./wpa_supplicant.conf
root@buildroot:/userdata$ wpa_supplicant -D nl80211 -i wlan0 -c ./wpa_supplicant.conf -B
Successfully initialized wpa_supplicant
[10093.447698] [BB][halbb_la_bb_set_smp_rate] smp_rate_tmp=7, la_smp_rate_log=160 M
root@buildroot:/userdata$ udhcpc -i wlan0 &
[1] 1309
udhcpc: started, v1.35.0
root@buildroot:/userdata$ udhcpc: broadcasting discover
udhcpc: broadcasting select for 192.168.137.252, server 192.168.137.1
udhcpc: lease of 192.168.137.252 obtained from 192.168.137.1, lease time 604800
deleting routers
adding dns 192.168.137.1

[1]+  Done                    udhcpc -i wlan0
root@buildroot:/userdata$ ifconfig wlan0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.137.252  netmask 255.255.255.0  broadcast 192.168.137.255
        ether 40:9c:a7:70:98:cc  txqueuelen 1000  (Ethernet)
        RX packets 117  bytes 15326 (14.9 KiB)
        RX errors 0  dropped 1  overruns 0  frame 0
        TX packets 63  bytes 5056 (4.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

root@buildroot:/userdata$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=52 time=82.124 ms
64 bytes from 8.8.8.8: seq=1 ttl=52 time=106.029 ms
64 bytes from 8.8.8.8: seq=2 ttl=52 time=129.993 ms
^ C
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 82.124/106.048/129.993 ms
root@buildroot:/userdata$

Wi-Fi 的 STA 和 AP 模式切换 执行 /etc/init.d/wifi_init.sh ap 可以切换到 AP 模式,执行 /etc/init.d/wifi_init.sh sta 可以切换到 STA 模式

root@buildroot:~# /etc/init.d/wifi_init.sh ap
Initialize wlan0 to ap mode
wlan0: interface state UNINITIALIZED->ENABLED
wlan0: AP-ENABLED
Finish initialize wlan0 to ap mode
dnsmasq: started, version 2.86 cachesize 150
root@buildroot:~# dnsmasq: compile time options: IPv6 GNU-getopt DBus no-UBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-cryptohash no-DNSSEC loop-detect inotify dumpfile
dnsmasq: warning: no upstream servers configured
dnsmasq-dhcp: DHCP, IP range 192.168.5.2 -- 192.168.5.254, lease time 12h
dnsmasq: read /etc/hosts - 2 addresses

root@buildroot:~# /etc/init.d/wifi_init.sh sta
Initialize wlan0 to station mode
Finish initialize wlan0 to station mode
  • 使用 Bluetooth

执行 /etc/init.d/bt_init.sh 完成蓝牙初始化

执行 bluetoothctl 进入交互模式下的蓝牙配置界面,出现了类似下图的设备信息表示蓝牙被识别到了,然后用 show 来查看蓝牙信息,留意蓝牙的 powereddiscoverable 状态。

image-20240520-134333.png

执行 power on 使能蓝牙,如下图所示:

image-20240520-134343.png

为了能够使蓝牙被附近的设备发现,需要执行 discoverable on 打开蓝牙可发现属性,如下图所示:

image-20240520-134348.png

此时使用手机或者电脑扫描蓝牙就可以发现 BlueZ 5.64 这个名称的蓝牙设备(这个名称的版本号会因为 BlueZ 版本号不同而有差异,例如还可能会是 BlueZ 5.79):

image-20240520-135529.png

接下来测试蓝牙的主动扫描功能,在 bluetoothctl 的交互界面输入 scan on 即可打开主动扫描,它会周期性地打印附近的设备,可以看到已经发现了我的手机设备, scan off 关闭扫描功能并汇总打印扫描到的蓝牙设备:

image-20240520-134399.png

image-20240520-134358.png

然后就是和其他蓝牙的配对:

配对命令:pair [targetMAC] ,输入该命令后,根据提示输入 yes,对端蓝牙设备选择 配对 选项完成配对。

image-20240520-134403.png

配对成功后可以使用 trust [targetMAC] 来让下次自动连接

image-20240520-134408.png

使用 l2ping 测试网络连接

image-20240520-134412.png

2.3.3.12. TF 卡

开发板支持 1 路 TF 接口(接口22 ),最大支持 SDR104 模式。支持 FAT32 ( VFAT)、 EXFAT、 ext2 、 ext3 、 ext4 文件系统格式。

插上 TF 卡后,内核有如下日志,说明正确识别:

[ 9809.931894] mmc1: new HSSDHC card at address 1234
[ 9809.933740] mmcblk1: mmc1:1234 SA16G 14.5 GiB
[ 9809.940060]  mmcblk1: p1

注意:根据 TF 卡的具体型号及 TF 卡的具体分区,实际打印可能有细微差别。

  • TF 卡上的分区文件系统格式不是 FAT32 ( VFAT)、 ext2 、 ext3 、 ext4 ,请使用以下命令对 TF 卡分区进行格式化

# 格式为 FAT32(VFAT)
mkfs.vfat /dev/mmcblk2p1
# 格式为 ext4
mkfs.ext4 /dev/mmcblk2p1
# 格式为 ext3
mkfs.ext3 /dev/mmcblk2p1
# 格式为 ext2
mkfs.ext2 /dev/mmcblk2p1

2.3.3.13. CANFD 接口

开发板提供 CANFD 接口(接口15)和 CAN终端电阻接入开关(接口14,高速通信需要两端使能终端电阻,防止信号反射,提升抗干扰能力),可用于CAN及CAN FD通信

CANFD 接口的三个信号脚分别为 GND L H。

image-20250704161207

2.3.3.14. 40PIN 接口

开发板提供 1 路 40PIN 接口,方便用户扩展外围接口,对应接口 11 ,定义以及支持的复用功能如下:

image-20250331-120318

40PIN 上的所有 IO 管脚支持通过电平选择接口(接口 18)来切换 3.3V 和 1.8V 电压域。

连接举例:

这里展示一款 Auido Driver HAT 的硬件参考连接图:

image-20250704163146

2.3.3.15. RTC

开发板使能了pmic 芯片 hpu3501 的 RTC 功能,RTC 电池接口为接口 13:

image-20250704161122

连接器从左到右为 电池负极,电池正极,对电池的电压和放电电流要求为:2~3.3V ,>2.5uA

hpu3501-rtc 被注册为 rtc0 ,可以使用下面命令进行外部 RTC 测试:

# 确认是否存在 /dev/rtc0 设备
ls /dev/rtc*

# 建立 /dev/rtc0 到 /dev/rtc 的软连接
rm /dev/rtc
ln -s /dev/rtc0 /dev/rtc

# 将时间写入外部 rtc
date -s "2024/01/01 17:08:00"    # 设置系统时间
hwclock -w                       # 将系统时间写入 RTC
hwclock -r                       # 读取 RTC 时间,确认时间是否写入成功

# 重启单板后从外部 RTC 读取时间到系统
# 确认是否存在 /dev/rtc0 设备
ls /dev/rtc*
# 建立 /dev/rtc0 到 /dev/rtc 的软连接
rm /dev/rtc
ln -s /dev/rtc1 /dev/rtc
hwclock -s                               # 如果 rtc 电池存在,断电后,再上电,可以将 RTC 时间更新到系统时间
date                                     # 读取系统时间,此时应该是先前配置的时间 "2024/01/01 17:08:00"

2.3.3.16. 其他接口

  • 电源开关

控制单板的重新上电和断电,对应接口为 24

  • 复位开关

整版下电,对应接口为 22 左1;X5MD核心板下电 22 左2。

  • 唤醒开关

用于在 Sleep 模式下通过外部唤醒源唤醒系统,对应接口为 23