1. 扩展引脚
开发板板载扩展引脚功能
与其他电路板或模块通信(I2C、SPI、UART等)
具体功能拓展详情查看引脚列表。
引脚列表标注了每个引脚的默认配置(带*号),同时给出该引脚所对应的可选择配置。
K1引脚列表
K1B引脚列表
K3引脚列表
K8引脚列表
2. LED
开发板配备2个LED,绿色LED为电源指示灯,上电默认长亮
蓝色LED为系统工作心跳灯。若心跳灯持续闪烁,则表示内核正常运行。
另外,系统工作心跳灯可参考以下方面控制LED作为其他功能。
用户层控制LED状态
命令行控制LED状态
默认LED触发方式为heartbeat,此方式下LED状态不可人为控制。
若想要实现命令控制LED状态的话,可通过以下命令设置为none,然后再设置LED的brightness
Copy $ echo none > /sys/class/leds/work-led/trigger
$ echo 1 > /sys/class/leds/work-led/brightness
$ echo 0 > /sys/class/leds/work-led/brightness
恢复心跳模式
Copy $ echo heartbeat > /sys/class/leds/work-led/trigger
3. GPIO
开发板的扩展引脚中默认配置多路可控GPIO。
首先,通过扩展引脚 章节,确认GPIO引脚位置、编号,参考以下步骤可对指定GPIO进行状态控制。
用户层控制GPIO电平
默认软件拓展引脚中配置为GPIO一般都注册为此方式控制
此方式可控制引脚输出高电平或低电平
查看GPIO注册列表
Copy $ ls /sys/class/leds/
gpio1b0/ gpio1b2/ gpio1d4/ gpio3b6/
gpio1a4/ gpio1b1/ gpio1d0/ gpio3b5/ gpio4c4/
命令行控制GPIO
Copy $ echo 1 > /sys/class/leds/gpio3b6/brightness
$ echo 0 > /sys/class/leds/gpio3b6/brightness
sys gpio控制
当GPIO没有任何使用时,可以通过 /sys/class/gpio 进行控制
PIN 脚计算
GPIO1-D0 (gpio1-24)为例:
Copy 每组GPIO有32位:0-32
A(0-7)B(8-15)C(16-23)D(24-31)
GPIO1-D0 计算 Pin num = 32 * 1 + 24 = 56
步骤一 确保GPIO没有任何使用
先将对应GPIO引脚注释,/sys/class/gpio/export
只能导入未注册的 gpio,将设备树对应IO取消使能
步骤二 编译镜像,重新烧录
步骤三 确认gpio未被注册
Copy cat /sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/pinmux-pins
未注册如下:pin 56 (gpio1-24): (MUX UNCLAIMED) (GPIO UNCLAIMED)
步骤四 对IO口进行控制
通过 /sys/class/gpio/export 注册 56并进行控制
Copy // 注册
root@kickpi:~# echo 56 > /sys/class/gpio/export
// 查看是否生成
root@kickpi:~# ls /sys/class/gpio/
export gpio56 gpiochip0 gpiochip352 unexport
// 注册后的结点内容
root@kickpi:~# ls /sys/class/gpio/gpio56
active_low device direction edge power subsystem uevent value
root@kickpi:~#
通过结点下的内容控制 gpio , 常用如下
Copy direction
in / out
echo in > /sys/class/gpio/gpio56/direction
echo out > /sys/class/gpio/gpio56/direction
value
0 / 1
cat /sys/class/gpio/gpio56/value // 读取
echo 1 > /sys/class/gpio/gpio56/value // 配置高电平
echo 0 > /sys/class/gpio/gpio56/value // 配置低电平
4. UART
调试串口使用
查看DEBUG引脚
kickpi开发板调试串口一般内嵌到扩展引脚上,可通过扩展引脚 章节查看对应的 DEBUG 引脚位置,一般按顺序排列为 UART_RX_DEBUG
、UART_TX_DEBUG
、GND
。
调试串口线说明
目前提供的调试串口线有四根线,红色的为VCC
,绿色的为TX
,白色的为RX
,黑色的为GND
,一般不需要连接VCC
。
其他调试工具线同理,只需连接 TX RX GND即可
开发板调试串口接线
调试线TX
连接主板上的RX
,RX
连接主板上的TX
,GND
连接主板上的GND
,不需要连接VCC
。
主板上的PIN:RX TX GND
调试线的PIN:TX RX GND
下载串口助手软件
串口助手软件 可自行下载,下面以Mobaxterm为例
Mobaxterm软件地址下载:https://mobaxterm.mobatek.net/
Mobaxterm操作步骤
选择串口COM编号(打开Windows系统 设备管理器 -> 端口界面可查看COM编号)
普通串口使用
例如 uart4 对应 /dev/ttyS4
Android默认安装有microcom
Copy $ microcom -s 115200 /dev/ttyS4
如串口4查找到的节点为 /dev/ttyS4
-s 设置波特率为 115200
Linux建议使用minicom
第一次安装需要配置一下:
minicom -s 将 Serial port setup>> F Hardware Flow Control 关掉
Esc按键或回车返回上一层选择Save setup as dfl保存
使用命令:
Copy $ minicom -b 9600 -D /dev/ttyS3
默认显示:接收的内容会打印出来,发送的内容无打印
crt+A 进入控制 B-Z命令 Z为help
或者使用echo直接发送
Copy $ stty -F /dev/ttyAS3 -a //可以看默认波特率
$ stty -F /dev/ttyAS3 115200 //可以设置
$ echo "123" > /dev/ttyAS3
5. USB
OTG模式切换
Android13.0系统 USB默认支持OTG模式,可自动切换主从功能
Linux系统 USB默认为HOST模式,暂不支持OTG
ADB调试
Android支持adb调试(type-c接口连接主机)
adb devices
说明:查看当前连接的设备, 连接到计算机的设备或者模拟器将会列出显示
adb kill-server
adb shell
说明:这个命令将登录设备的shell, 后面加直接运行设备命令, 相当于执行远程命令
adb push
举例: adb push hello.c /tmp/ 这样就把电脑上的hello.c文件复制到了开发板上的/tmp目录下
adb pull
举例: adb pull /tmp/hello.c ./ 将开发板上/tmp目录下的文件hello.c复制到当前目录
adb version
adb help
说明:adb的帮助,有关更多命令详情,请使用adb help命令查看
6. PWM
RK3568 有4个PWM模块,每个PWM模块有4路PWM,一共有16路PWM
用户层配置PWM输出
Extend 40Pin接口 包含多路PWM,以PWM3通道为例,按照以下命令进入PWM配置
按照示例配置参数设置成功后,可用万用表测量PWM3引脚,正确电压应为1.6V左右
示例:设置PWM3通道,周期10000ns,占空比5000ns,极性为normal
PWM路径为/sys/class/pwm,pwmchip* 则按你使能顺序从0开始排序 设置pwmchip0如下:
Copy $ echo 0 > /sys/class/pwm/pwmchip0/export
$ echo 10000 > /sys/class/pwm/pwmchip0/pwm0/period
$ echo 5000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
$ echo normal > /sys/class/pwm/pwmchip0/pwm0/polarity
$ echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable
Copy $ find /sys/devices/ | grep pwmchip | grep uevent
/sys/devices/platform/fd8b0020.pwm/pwm/pwmchip1/uevent
/sys/devices/platform/fd8b0010.pwm/pwm/pwmchip0/uevent
/sys/devices/platform/fd8b0030.pwm/pwm/pwmchip2/uevent
fd8b0010.pwm 为 dts 对应的节点
7. WIFI
K1开发板 配备RTL8822CS高性能WIFI模块
支持2.4G/5G双频段,WIFI5,2T2R
图形界面配置WIFI
命令连接WIFI
Copy $ sudo nmcli dev wifi connect "you_WIFI_name" password "WiFi_password" ifname wlan0
you_WIFI_name : 你要连接的WiFi名称
WiFi_password :你要连接的WiFi密码
Copy $ ls /etc/NetworkManager/system-connections
wifi_oranth_5G.nmconnection
取消对应WiFi自动连接,例如WiFi:wifi_oranth_5G
Copy $ sudo rm -rf /etc/NetworkManager/system-connections/wifi_oranth_5G.nmconnection
命令行配置WIFI热点(AP)模式
查看是否支持AP模式
Copy $ iw list | grep AP
Device supports AP-side u-APSD.
* AP
* AP/VLAN
HE Iftypes: AP
HE Iftypes: AP
* wake up on EAP identity request
* AP/VLAN
* #{ managed } <= 1, #{ AP, P2P-client, P2P-GO } <= 1, #{ P2P-device } <= 1,
Driver supports full state transitions for AP/GO clients
Driver/device bandwidth changes during BSS lifetime (AP/GO mode)
* AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
* AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
AP/VLAN则可以表示硬件支持
Copy #创建依赖
sudo apt-get install util-linux hostapd dnsmasq iptables iproute2 haveged
# 创建虚拟网卡
sudo iw dev <wirelessname> interface add <virtualwlanname> type __ap
# <wirelessname> 是真实无线网卡名,可通过ifconfig查看,<virtualwlanname>是虚拟的无线网卡名
#例如命令
sudo iw dev wlan0 interface add wlo2 type __ap
#为虚拟网卡添加物理地址
sudo ip link set dev <virtualwlanname> address 22:33:44:55:66:00
# 随意填写,假如冲突则换一个,<virtualwlanname>是虚拟的无线网卡名
#例如命令:
sudo ip link set dev wlo2 address 22:33:44:55:66:00
Copy #查看创建情况
sudo iw dev <virtualwlanname> info
sudo iw dev wlo2 info
# 输出内容类似
Interface wlo2
ifindex 5
wdev 0x5
addr 04:e2:b9:17:18:72
type managed
wiphy 0
txpower 0.00 dBm
multicast TXQ:
qsz-byt qsz-pkt flows drops marks overlmt hashcol tx-bytestx-packets
0 0 0 0 0 0 0 0 0
注意:重启电脑后,这里创建的虚拟网卡就会失效
Copy git clone https://github.com/oblique/create_ap
cd */create_ap
sudo make install
Copy sudo create_ap -c 11 <virtualwlanname> <wirelessname> <SSID> <password>
#<wirelessname> 是你的无线网卡的姓名,<virtualwlanname> 虚拟网卡名,<SSID> <password>分别是创建的热点wifi名和密码
#例如
sudo create_ap -c 11 wlo2 wlan0 m3 88888888
Copy 开启热点时报如下错误:
#RTNETLINK answers: Device or resource busy
#ERROR: Maybe your WiFi adapter does not fully support virtual interfaces.
# Try again with --no-virt.
可以如下操作停止之前创建的热点,然后重启开启热点。
sudo create_ap --stop <virtualwlanname> #<virtualwlanname> 虚拟网卡名
8. 蓝牙
K1 开发板配备了 RTL8822CS 高性能蓝牙模块。
9. SATA硬盘
K1开发板 配备一路SATA3.0 硬盘接口
硬件接线
SATA硬盘接线 分为硬盘供电接口、硬盘数据接口
特别注意:SATA硬盘供电接口是PH2.0端子,需要另外购买PH2.0端子转SATA电源线
电源部分包含5V、12V,必须确认线序正确后方可接入硬盘,否则会烧坏硬盘
保持开发板断电状态,接入硬盘后上电开机,Android/Linux会自动挂载硬盘分区
特别注意:硬盘尽量提前做好分区,并且分区格式
10. M.2 SSD
K1开发板 配备一路PCIE3.0 M.2 SSD硬盘接口
Android系统 仅支持 NTFS
或 Fat32
格式分区
建议提前格式化固态硬盘,并且创建支持格式分区
若SSD分区非系统支持格式的话,也可按照系统提示,进行分区格式化,默认格式化为Fat32
硬件接线
M.2接口支持当下主流2280规格硬盘,并且配备固定螺柱
确保开发板断电状态,接入硬盘后上电开机
性能测试
测试SSD型号:三星PM981 256G
测试结果:
若没特殊需求,建议使用Fat32格式分区
11. RTC
K1开发板配备HYM8563 RTC芯片,可实现掉电保存时间功能
硬件接线
测试RTC功能 必须外接纽扣电池,并且确认电池电量充足
掉电保存时间测试
测试步骤:
12. LCD
K1开发板 配备三路LCD接口,分别是两路LVDS/MIPI接口(可复用)、一路eDP接口
三路LCD接口支持三屏异显/异触
默认出厂固件为多屏幕兼容镜像,已适配好三款屏幕
一个固件可以兼容任意一款LCD + HDMI输出,若需要两路以上LCD显示,则需要重新编译镜像
MIPI屏硬件接线
排线要求
引脚数30Pin、排线方向为同向
建议使用随屏附赠排线,否则有可能会导致屏幕损坏
接线示例图
注意:任何FPC接口外设插拔前,必须保证板卡完全断电
Single LVDS屏硬件接线
排线要求
引脚数30Pin、排线方向为同向
建议使用随屏附赠排线,否则有可能会导致屏幕损坏
接线示例图
注意:任何FPC接口外设插拔前,必须保证板卡完全断电
DUAL LVDS屏硬件接线
KICKPI K3支持一路Dual LVDS屏,采用CS5518芯片实现MIPI 转Dual LVDS功能
PS:Dual LVDS屏 与 MIPI/LVDS屏 互为复用,只能二选一
K3 Dual LVDS接口说明
LVDS供电电压可选3.3V、5V、12V,必须根据规格书选择对应电压,否则会不能点亮或烧屏
eDP屏硬件接线
排线要求
引脚数30Pin、排线方向为同向
建议使用随屏附赠排线,否则有可能会导致屏幕损坏
接线示例图
注意:任何FPC接口外设插拔前,必须保证板卡完全断电
EDP屏 必须在屏端额外接12V电源
13. MIPI CAMERA
K1开发板支持单路MIPI CSI 4Lane 摄像头接口,最多可接两路摄像头
K3开发板支持双路MIPI CSI 4Lane 摄像头接口,最多可接四路摄像头
硬件接线
排线要求
引脚数40Pin、排线方向为反向
建议使用随屏附赠排线,否则有可能会导致屏幕损坏
任何FPC接口外设插拔前,必须保证板卡完全断电
Debian gst-launch-1.0预览图像
Debian文件系统 内置gst-launch-1.0测试脚本
Copy /rockchip-test/camera/camera_rkisp_test.sh
根据连接摄像头数量不同,会导致/dev/video节点编号偏移,使脚本不能打开正确的摄像头
此时可修改脚本指定正确的video编号,device=/dev/video-camera0
14. HDMI in
K8 支持一路HDMI输入,目前驱动代码中EDID支持的分辨率包括:
Copy 3840x2160P60、3840x2160P50、3840x2160P30、3840x2160P25、3840x2160P24、
1920x1080P60、1920x1080P50、1920x1080P30、1920x1080i60、1920x1080i50、
1600x900P60、1440x900P60、1280x800P60、
1280x720P60、1280x720P50、1024x768P60、
720x576P50、720x480P60、720x576i50、720x480i60、
800x600P60、640x480P60
支持输入的格式包括:
Copy RGB888、YUV420、YUV422、YUV444
16. GPU
GPU使⽤率
Copy $ cat /sys/devices/platform/*gpu/utilisation
移动鼠标或窗口或进行GPU测试,可以查看GPU使⽤率来确定硬加速是否有⽤起来
Debian GLmark2性能测试
RK Linux文件系统内置glmark2-es性能测试工具
板卡连接显示设备,打开虚拟终端 或 调试串口终端,执行以下命令开始GPU性能测试
Copy $ source /rockchip-test/gpu/test_fullscreen_glmark2.sh
# 终端打印最终测试成绩分数
=======================================================
glmark2 Score: 471
=======================================================
外接显示屏可查看GPU渲染图形(得分约49),调试串口可查看GPU渲染日志(得分约203)
根据GPU性能差异,大概需要等待10分钟左右可完成性能测试
K8 测试结果
Copy $ source /rockchip-test/gpu/test_fullscreen_glmark2.sh
=======================================================
glmark2 Score: 676
=======================================================
接入HDMI_OUT0,测试结果为 676
17. NPU
RK3568 配备0.8T算力NPU单元
查看NPU使用情况
Copy $ watch cat /sys/kernel/debug/rknpu/load
$ cat /sys/kernel/debug/rknpu/load
Debian 图像分类
打开虚拟终端 或 调试串口终端,执行以下命令开始NPU功能测试
Copy $ source /rockchip-test/npu2/npu_stress_test.sh
rknn_api/rknnrt version: 1.4.0 (a10f100eb@2022-09-09T09:07:14), driver version: 0.8.2
model input num: 1, output num: 1
input tensors:
index=0, name=input, n_dims=4, dims=[1, 224, 224, 3], n_elems=150528, size=150528, fmt=NHWC, type=INT8, qnt_type=AFFINE, zp=0, scale=0.007812
output tensors:
index=0, name=MobilenetV1/Predictions/Reshape_1, n_dims=2, dims=[1, 1001, 0, 0], n_elems=1001, size=1001, fmt=UNDEFINED, type=INT8, qnt_type=AFFINE, zp=-128, scale=0.003906
custom string:
Begin perf ...
0: Elapse Time = 4.95ms, FPS = 201.82
1: Elapse Time = 4.84ms, FPS = 206.61
2: Elapse Time = 4.86ms, FPS = 205.85
3: Elapse Time = 4.79ms, FPS = 208.68
4: Elapse Time = 4.82ms, FPS = 207.47
5: Elapse Time = 4.82ms, FPS = 207.25
6: Elapse Time = 4.81ms, FPS = 207.77
7: Elapse Time = 4.82ms, FPS = 207.25
8: Elapse Time = 4.82ms, FPS = 207.34
9: Elapse Time = 4.82ms, FPS = 207.60
---- Top5 ----
0.984375 - 156
0.007812 - 155
0.003906 - 205
0.000000 - 0
0.000000 - 1
在 Begin perf...
后的内容展示了模型多次运行的性能数据:
每次记录了运行的序号以及对应的耗时(Elapse Time
)和每秒处理帧数(FPS
)。例如,0: Elapse Time = 2.85ms, FPS = 351.12
表示第 1 次运行模型推理时,总共花费了 2.85 毫秒的时间,由此计算出每秒可以处理 351.12 帧的数据(FPS 的计算方式就是 1000 除以每次的耗时,单位换算后得到每秒的帧数)。
---- Top5 ----
部分呈现了模型推理输出结果中概率排名前 5 的类别及其对应的概率值和类别编号:
0.935059 - 156
表示模型认为输入的数据(比如可能是一张图像)最有可能属于编号为 156 的类别,其对应的概率高达 0.935059,这个概率值相对较高,说明模型对该判断有比较高的置信度。
后续的0.057037 - 155
、0.003881 - 205
、0.003119 - 284
、0.000172 - 285
分别列出了概率排名第 2 到第 5 的类别编号及其概率值,这些概率值依次递减,表明模型对它们属于相应类别判断的把握程度也逐渐降低。
K8 NPU 压力测试结果
接入HDMI_OUT0
Copy $ source /rockchip-test/npu2/npu_stress_test.sh
...
Begin perf ...
0: Elapse Time = 2.32ms, FPS = 431.97
1: Elapse Time = 2.29ms, FPS = 437.64
2: Elapse Time = 2.22ms, FPS = 450.05
3: Elapse Time = 2.17ms, FPS = 461.47
4: Elapse Time = 2.10ms, FPS = 475.51
5: Elapse Time = 2.15ms, FPS = 464.25
6: Elapse Time = 2.08ms, FPS = 481.70
7: Elapse Time = 2.09ms, FPS = 478.24
8: Elapse Time = 2.09ms, FPS = 479.62
9: Elapse Time = 2.20ms, FPS = 454.13
---- Top5 ----
0.984375 - 156
0.007812 - 155
...
从打印信息可知平均每秒处理 450 帧的数据
Debian 目标检测
检测数据流 可从摄像头 或 视频文件获取
检测结果直接输出到显示屏上,所以需要连接显示屏才能看到结果
Copy $ source /rockchip-test/npu2/rknn_yolov5_demo_Linux.sh
18. MPP
Rockchip MPP提供mpi_enc_test、mpi_dec_test等测试工具
可直接命令行调用MPI进行硬件编解码测试
硬编码测试
Copy $ mpi_enc_test -w 4096 -h 2160 -t 7 -o ./test.h264 -n 100
Copy $ mpi_enc_test -w 4096 -h 2160 -t 16777220 -o ./test.h265 -n 100
参数解析:
mpi_enc_test MPP编码测试工具
-w 4096 -h 2160 指定编码视频分辨率为4096x2160
-t 16777220 指定编码类型为H.265
-o ./test.h265 指定编码内容输出文件
-n 100 指定编码帧数
硬解码测试
Copy $ mpi_dec_test -t 7 -i test.h264 -n 100
Copy $ mpi_dec_test -t 16777220 -i test.h265 -n 100
K8 编解码测试结果
Copy 编码 H.264 4096x2160 100帧测试 fps 44.65
编码 H.265 4096x2160 100帧测试 fps 45.53
解码 H.264 4096x2160 100帧测试 fps 206.22
解码 H.265 4096x2160 100帧测试 fps 386.86
chromium视频测试
板卡连接显示设备,打开虚拟终端 或 调试串口终端,执行以下命令开始chromium视频测试
Copy $ source /rockchip-test/chromium/test_chromium_with_video.sh
19. ADC
RK3568 配备8路ADC,K1开发板引出ADC3通道到扩展引脚座
读取ADC3值
Copy $ cat /sys/bus/iio/devices/iio\:device0/in_voltage3_raw
20. WatchDog
RK3568配备一路看门狗,上电默认开启开门狗,内核线程自动喂狗
用户层配置手动喂狗
可用以下命令修改为用户层手动喂狗,并且每44秒必须重复执行以下命令喂狗,否则系统重启
Copy $ echo A > /dev/watchdog
21. FAN
风扇供电电压为5V,连接方式如下图所示
22. 4G通讯模块
目前适配支持 Quecte EC20、Quecte EC200M-CN 型号模块
硬件连接方式
Copy /etc/ppp/peers/quectel-pppd.sh /dev/ttyS4
23. 喇叭
Linux 播放测试
alsa工具
Linux 系统一般可以通过alsa工具控制声卡配置以及音频播放,目前Linux系统软件已内置相关工具。
如无相关工具,可执行下列命令进行安装
Copy $ sudo apt install alsa-utils
安装后 aplay 、arecord 、amixer 等命令可使用
工具使用说明
Copy $ amixer -h
Usage: amixer <options> [command]
Available options:
-h,--help this help
...
$ aplay -h
Usage: aplay [OPTION]... [FILE]...
-h, --help help
--version print current version
-l, --list-devices list all soundcards and digital audio devices
...
$ arecord -h
Usage: arecord [OPTION]... [FILE]...
-h, --help help
--version print current version
-l, --list-devices list all soundcards and digital audio devices
-L, --list-pcms list device names
...
使用命令 -h 即可查看对应命令的使用说明
列举查看声卡
Copy $ cat /proc/asound/cards
0 [rockchiphdmiin ]: rockchip_hdmiin - rockchip,hdmiin
rockchip,hdmiin
1 [rockchipes8388 ]: rockchip-es8388 - rockchip-es8388
rockchip-es8388
2 [rockchiphdmi0 ]: rockchip-hdmi0 - rockchip-hdmi0
rockchip-hdmi0
3 [rockchiphdmi1 ]: rockchip-hdmi1 - rockchip-hdmi1
rockchip-hdmi1
喇叭声卡为 es8388,即声卡1
查看声卡控制配置列表
Copy $ amixer -c 1
Simple mixer control 'Headphone',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [off]
Simple mixer control 'Speaker',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [on]
...
$ amixer controls -c 1
numid=36,iface=CARD,name='Headphone Jack'
numid=37,iface=CARD,name='Headset Mic Jack'
numid=38,iface=MIXER,name='Headphone Switch'
numid=31,iface=MIXER,name='PCM Volume'
...
获取声卡指定配置
Copy $ amixer cget -c 1 name='Speaker Switch'
numid=39,iface=MIXER,name='Speaker Switch'
; type=BOOLEAN,access=rw------,values=1
: values=on
设置声卡指定配置
Copy $ amixer sget -c 1 numid=39,iface=MIXER,name='Speaker Switch' 1
喇叭播放测试
Copy $ amixer cset -c 1 name='Speaker Switch' 1
$ amixer cset -c 1 name='Output 2 Playback Volume' 20 20
$ amixer cset -c 1 name='Right Mixer Right Playback Switch' 1
$ amixer cset -c 1 name='Left Mixer Left Playback Switch' 1
$ aplay -D hw:1,0 1.wav
amixer 配置适用于 es8388 声卡
耳机播放测试
Copy $ amixer cset -c 1 name='Headphone Switch' 1
$ amixer cset -c 1 name='Output 1 Playback Volume' 20 20
$ aplay -D hw:1,0 1.wav
amixer 配置适用于 es8388 声卡
24. 麦克风
Linux 录音测试
MIC录音测试
Copy $ amixer cset -c 1 numid=25,iface=MIXER,name='Capture Digital Volume' 192 192
$ amixer cset -c 1 numid=26,iface=MIXER,name='Capture Mute' 0
$ amixer cset -c 1 numid=27,iface=MIXER,name='Left Channel Capture Volume' 3
$ amixer cset -c 1 numid=28,iface=MIXER,name='Right Channel Capture Volume' 3
$ amixer cset -c 1 numid=42,iface=MIXER,name='Left PGA Mux' 2
$ amixer cset -c 1 numid=43,iface=MIXER,name='Right PGA Mux' 2
$ amixer cset -c 1 numid=44,iface=MIXER,name='Differential Mux' 1
$ arecord -D hw:1,0 a.wav -r 48000 -f S16_LE -d 5 -c 2
amixer 配置适用于 es8388 声卡
Headset MIC录音测试
Copy $ amixer cset -c 1 numid=25,iface=MIXER,name='Capture Digital Volume' 192 192
$ amixer cset -c 1 numid=26,iface=MIXER,name='Capture Mute' 0
$ amixer cset -c 1 numid=27,iface=MIXER,name='Left Channel Capture Volume' 3
$ amixer cset -c 1 numid=28,iface=MIXER,name='Right Channel Capture Volume' 3
$ amixer cset -c 1 numid=42,iface=MIXER,name='Left PGA Mux' 2
$ amixer cset -c 1 numid=43,iface=MIXER,name='Right PGA Mux' 2
$ amixer cset -c 1 numid=44,iface=MIXER,name='Differential Mux' 0
$ arecord -D hw:1,0 a.wav -r 48000 -f S16_LE -d 5 -c 2
amixer 配置适用于 es8388 声卡
26. CAN
适用平台:RK3568 / RK3576 / RK3588
RK部分芯片支持原生CAN接口,通常引出到扩展引脚上,具体位置可查看扩展引脚部分
芯片原生CAN接口 不可直接使用,需要增加外部电平转接电路
查询当前⽹络设备
CANFD配置
关闭CAN
Copy $ ip link set can0 down
设置比特率500KHz
Copy $ ip link set can0 type can bitrate 500000
打印can0信息
Copy $ ip -details -statistics link show can0
启动CAN
Copy $ ip link set can0 up
CAN FD发送
发送(标准帧,数据帧,ID:123,date:DEADBEEF):
Copy $ cansend can0 123#DEADBEEF
发送(标准帧,远程帧,ID:123)
CAN接收
开启打印,等待接收
回环模式测试
启动can后,io输⼊命令开启回环⾃测(基地址根据实际dts启动的can配置)
Copy $ io -4 0xfea60000 0x8415
0xfea60000 为 K8 CAN0 的 dts 节点
回环模式下,cansend 后 candump 可以接收。
示例
开启回环模式测试,并监听 can
Copy root@linaro-alip:/# io -4 0xfea60000 0x8415
root@linaro-alip:/# candump can0
can0 123 [4] DE AD BE EF
发送命令
Copy root@linaro-alip:/# cansend can0 123#DEADBEEF
27. SPI
工具位置
Copy $ kernel/tools/spi/spidev_test.c
编译
Copy $ make CROSS_COMPILE=~/path-to-toolchain/gcc-xxxxx-toolchain/bin/xxxx-linux-gnu-
选择 kernel 所⽤ CROSS_COMPILE
回环模式测试
Copy $ spidev_test -D /dev/spidev0.0 -v -l -p "hello"
主控做 Master 端
MISO、MOSI 进行短接
Copy root@linaro-alip:/data# ./spidev_test -D /dev/spidev0.0 -v -l -p "hello"
spi mode: 0x24
bits per word: 8
max speed: 500000 Hz (500 kHz)
TX | 68 65 6C 6C 6F __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ |hello|
RX | 68 65 6C 6C 6F __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ |hello|
28. PCI-E
适用平台:KICKPI-K8 RK3588 Android/Linux
目前仅有RK3588支持一路4Lane PCIE3.0接口,理论传输速率可达3.938GB/s
标准PCI-E扩展口可外接市面上通用的PCIE USB扩展卡、PCIE 以太网扩展卡、PCIE SSD扩展卡
PCIE to USB 3.0测试
PCIE to SSD测试
29、以太网
适用平台:全平台
iperf测试方法
待完善
30、KEY测试
Copy console:/ # getevent
add device 1: /dev/input/event3
name: "sunxi-ir-uinput"
add device 2: /dev/input/event2
name: "gt9xxnew_ts"
add device 3: /dev/input/event0
name: "sunxi-ir"
add device 4: /dev/input/event1
name: "gpio-keys"
/dev/input/event2: 0001 014a 00000001
/dev/input/event2: 0003 0035 00000247
/dev/input/event2: 0003 0036 000001c3
/dev/input/event2: 0003 0030 0000001e
/dev/input/event2: 0003 0032 0000001e
Copy root@ubuntu2004:~# evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0: fe6e0030.pwm
/dev/input/event1: rk805 pwrkey
/dev/input/event2: rockchip-rk809 Headset
/dev/input/event3: hdmi_cec_key
/dev/input/event4: adc-keys
/dev/input/event5: gpio-keys
Select the device event number [0-5]: 5
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100
Input device name: "gpio-keys"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 2 (KEY_1)
Key repeat handling:
Repeat type 20 (EV_REP)
Repeat code 0 (REP_DELAY)
Value 250
Repeat code 1 (REP_PERIOD)
Value 33
Properties:
Testing ... (interrupt to exit)
Event: time 1699275783.300685, type 1 (EV_KEY), code 2 (KEY_1), value 1
Event: time 1699275783.300685, -------------- SYN_REPORT ------------
Event: time 1699275783.573759, type 1 (EV_KEY), code 2 (KEY_1), value 2
Event: time 1699275783.573759, -------------- SYN_REPORT ------------
Event: time 1699275783.610429, type 1 (EV_KEY), code 2 (KEY_1), value 2
Event: time 1699275783.610429, -------------- SYN_REPORT ------------
Event: time 1699275783.647094, type 1 (EV_KEY), code 2 (KEY_1), value 2
Event: time 1699275783.647094, -------------- SYN_REPORT ------------
Event: time 1699275783.647094, type 1 (EV_KEY), code 2 (KEY_1), value 0
Event: time 1699275783.647094, -------------- SYN_REPORT ------------