===== NK-RK3399-V0A =====
====资源特性====
* CPU:Rockchip RK3399 6 核处理器,2*A73 ( up to 1.8GHz ) + 4*A53 ( up to 1.4GHz )
* GPU:Mail-T860 GPU MP4 四核心 GPU ,支持 OpenGL ES1.1/2.0/3.0/3.1,OpenVG1.1,OpenCL,DX11
* 内存:板载 DDR4 2GB (可选 4G)
* 存储 :板载 eMMC 16G
* TF :1*TF 卡接口,最大支持 32GB
* 网络: 2 * 10/100/1000Mbps 速率自侦测以太网口
* WIFI: 1* 板载 AW-NM372 芯片
* 4G/5G:1*MiniPCIE 支持
* 串口: 4xCOM
* COM1 默认 RS485 , 可设置 RS232 ( DB9 )
* COM2 默认 RS232 , 可设置 RS485 ( DB9 )
* COM3 默认 RS232
* COM4 默认 RS232 , 其中 COM4 可设置 TTL
* HDMI:1 * HDMI 接口 ,最大支持 1920x1080 输出
* LVDS:1* 24bit LVDS 接口,1920*1080P 输出
* EDP:1*eDP , 最大支持 1920*1080P 输出
* Audio:1 * 功放(各 6W 8 欧,左右声道,PH2.0-4P), MIC IN*1 ( PH2.0-2P)
* USB:6*USB 接口(4 在海岸线,其中 1 为 USB3.0 ,2 个为内部 PH2.0-4P )
* KEY:1*Return,U-boot 复用
* OTG:1*OTG (A 型 USB,USB3.0 复用 )
* Debug:1* debug 接口
* LED:1*系统指示灯(蓝色) 1*电源指示灯( 绿色 )
* IO:4*GPI、4*GPO ( 2*PH2.0-5P ) , 1*TP 接口(PH2.0 6P , 含 i2c 定义)
----
====接口布局和尺寸====
----
===接口概览===
{{:arm:rk3399-3.jpg?600|}}\\
{{:rk3399-4.jpg?600|}}
===接口引脚定义===
*[[串口(COM1-2 J_COM1-2)]]
*[[USB接口 (USB1 USB2 JC2 JC3 JC7 JC8)]]
*[[LAN接口 (LAN1 LAN2)]]
*[[音频接口(JC4 JC5)]]
*[[显示接口(HDMI1 LVDS1 EDP1)]]
*[[电源、复位按键(CNI SW2)]]
*[[电源指示灯(LED2)]]
*[[GPIO接口(J_GPIO1)]]
*[[MINI PCIE接口]]
*[[SIM&TF卡槽]]
===主板内置插针式引脚排序方式===
===机械尺寸===
{{:rk3399-5.jpg?600|}}\\
{{:rk3399-6.jpg?600|}}\\
{{:rk3399-7.jpg?600|}}
====Linux系统的使用====
===系统下载===
==Linux系统==
Ubuntu 18.04:
[[ftp://szrd@ma.nodka.com/%E6%B7%B1%E5%9C%B3%E7%A0%94%E5%8F%91%E9%83%A8/NK_RK3399/Image/NK_L6_CB03_I1_LU1804_V1.2_20220325.img|系统下载链接]]
===工具链下载===
==工具==
[[ftp://szrd@ma.nodka.com/%E6%B7%B1%E5%9C%B3%E7%A0%94%E5%8F%91%E9%83%A8/NK_RK3399/Tools/|工具链接]]
===烧录工具下载===
==烧录工具==
[[ftp://szrd@ma.nodka.com/%E6%B7%B1%E5%9C%B3%E7%A0%94%E5%8F%91%E9%83%A8/NK_RK3399/Tools/%E7%83%A7%E5%BD%95%E5%B7%A5%E5%85%B7/RKDevTool_Release/|烧录链接]]
===系统烧录===
1、将烧录线连接主板OTG接口,接上后接通电源
{{:arm:rk3399:3399.png?1003x388|}}
USB3.0口为OTG系统烧录口,红色箭头标记区域,如上图所示。
电源:12v-24V电源输入。
2、下载烧录工具:
* 请务必先安装驱动,烧录工具链接含有驱动DriverAssitant压缩包,解压后点击DriverInstall.exe安装驱动
{{:arm:rk3399:3399-shaolu.png?494×265|}}
3、开始烧录:
* 将数据线一端与主板OTG连接,另一端连接电脑。注意烧录前,需要按住SW2 recovery按键再接通电源
{{:arm:rk3399:shaolugujian.png?1000×456|}}
* 打开压缩包中开发工具 >> 升级固件 >> 点击固件并选择好固件 >> 点升级开始烧录
{{:arm:rk3399:faxian.png?800×456|}}
* 烧录过程中的状态,会有进度显示
{{:arm:rk3399:shaoluzhong.png?800×456|}}
* 更换系统平台(例如安卓切换到Linux)时,可能出现无法烧录的情况,此时打开开发工具 >> 高级功能 >> 点击进入Maskrom切换烧录模式后烧录系统
{{:arm:rk3399:moshi.png?800×456|}}
4、完成烧录:
* 烧录过程不需要任何操作,烧录成功后右框会显示设备自动重启,烧录完成。
{{:arm:rk3399:shaoluwancheng.png?|600×456}}
===串口调试===
* Windows 上一般用 putty 或 SecureCRT。以 putty 为例介绍如何使用串口调试功能
* putty下载链接:[[https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html|下载链接]],选择putty.exe
* 串口通讯参数配置:
波特率:115200
数据位:8
停止位:1
奇偶校验:无
流控:无
* putty设置界面如下:
{{:arm:rk3399:putty-setting.png?600×492|}}
1.Connection type设置为Serial
2.Serial line设置为pc端连接的串口(此项填写pc端实际的串口号)
3.Speed设置为150000
4.点击Open按钮打开终端
* 查看PC端的串口号:
{{:arm:rk3399:putty-com.png?600×492|}}
*右键点击我的电脑->管理->设备管理器->端口(COM和LPT)找到本机对应的串口
*如无设备请先确定pc端是否自带串口及驱动是否安装
* 进入串口调试终端:
{{:arm:rk3399:putty-com1.png?600×363|}}
*如图进入交互界面,敲击回车或者输入命令会有反馈
===以太网使用方法===
* 在设置中找到Ethernet,Ethernet IP mode可更改三种模式模式。
{{:arm:rk3399:yitaiw.png?600×800|}}
{{:arm:rk3399:yitaiw1.png?600×800|}}
* 静态IP设置方式
{{:arm:rk3399:yitaiw2.png?600×800|}}
===WIFI使用方法===
* 设置中开启WLAN,可连接能扫描到的WIFI。
{{:arm:rk3399:wifi.png?600×800|}}
{{:arm:rk3399:wifi1.png?600×800|}}
===BT使用方法===
* 打开设置,无线和网络菜单
{{:arm:rk3399:bt.png?600×800|}}
* 蓝牙,开启蓝牙,即可搜索附近的蓝牙设备
{{:arm:rk3399:bt-1.png?600×800|}}
* 点击想要连接的蓝牙设备可进行配对
===声卡使用方法===
* 设备
* 查看所有设备列表
cat /proc/asound/cards
{{:arm:rk3399:sound1.png?|478×113}}
* 查看所有播放设备
aplay -l
{{:arm:rk3399:sound2.png?|720×165}}
* 查看所有录制设备
arecord -l
{{:arm:rk3399:sound3.png?|740×120}}
* 使用
* 录制音频
arecord -D sysdefault:CARD=rockchipes8316c -f cd -d 10 -t wav test.wav
{{:arm:rk3399:sound4.png?|593×82}}
* 播放音乐
aplay -D sysdefault:CARD=rockchipes8316c test.wav
{{:arm:rk3399:sound5.png?|571×81}}
===串口使用方法===
- 将COM设备与板卡连接,确认连接无误后开机(连接方法参照上文[接口引脚定义]并注意232/485模式的选择)
- 确认所连接的节点
- 瑞芯微(RK)一般有/dev/ttyS0-4,其中/dev/ttyS2一定为COM_DB,其余按顺序依次对应
- 开始通信
===GPIO使用方法===
xxx
===4G模块使用方法===
* 连接4G模块(如EC20全网通模块)到主板的4G卡槽,插入micro SIM卡到主板的SIM卡槽内,如下指引图
{{:arm:rk3399:4g-2.png?558×311|}}
* 上电启动,4G模块识别到后,4G信号如下图
{{:arm:rk3399:4g1.png?194×229|}}
* 4G连通后,打开终端ping网络测试,或者打开浏览器浏览网页
{{:arm:rk3399:4g-1.png?500×133|}}
===usb使用方法===
* 连接USB存储设备或者USB键鼠,到主板3个USB2.0口,USB3.0口仅作为OTG使用。
===TF使用方法===
* 插入TF扩展卡到卡槽内,可读取TF数据和写入数据到TF外部存储卡。
{{:arm:rk3399:tf.png?486×302|}}
===RTC使用方法===
- 在终端输入“date”可查看当前RTC时间,
- 输入“ date -s +时间设置格式”,可设置当前时间,
- 输入“hwclock -w”,保存时间,重启主板。即可保存。
===ubuntu 18.04 使用方法===
==Qt交叉编译环境支持==
- 安装:
进入 Qt 官方下载页面,选择一个版本下载 qt-creator-opensource-linux-x86_64-x.x.x.run,下载完成之后,在终端执行./xxxx.run运行安装,注意文件需要有执行权限。
- 配置:
安装完成后,启动 Qt Creator,打开菜单 Tools -> Options,找到 Kits。
* 配置 Qt Versions
点击右侧 add 按钮添加,选择 Qt 环境安装位置中的 qmake 即可
qmake:/opt/firefly-qt-5.12.2-aarch64/host/bin/qmake
{{:arm:rk3399:1.png?1161×741|}}
* 配置 Compilers
点击右侧 add 按钮添加 gcc 和 g++ 交叉编译器的位置
如果主机安装了 crossbuild-essential-arm64,则编译器就在 /usr/bin/ 下
如果使用了第三方的交叉编译器,找到安装位置并添加即可
如果目标平台是 Buildroot,则需要使用 Buildroot Qt 环境包中的编译器
g++:/opt/firefly-qt-5.12.2-aarch64/host/bin/aarch64-buildroot-linux-gnu-g++
gcc:/opt/firefly-qt-5.12.2-aarch64/host/bin/aarch64-buildroot-linux-gnu-gcc
{{:arm:rk3399:2.png?1161×741|}}
{{:arm:rk3399:3.png?1162×746|}}
为方便调试,配置 Debuggers 和 Devices 用于在线调试:
* 配置 Debuggers
点击右侧 add 按钮添加 gdb
选择和上一步使用的编译器处于相同位置的 gdb
gdb:/opt/firefly-qt-5.12.2-aarch64/host/bin/aarch64-buildroot-linux-gnu-gdb
{{:arm:rk3399:4.png?1163×745|}}
* 配置 Devices
设置好设备的 IP、用户名 (root) 和密码 (firefly) 。为了方便调试,可以在设备上设置静态 IP。
{{:arm:rk3399:5.png?1161×744|}}
* 配置 Kits
将前面设置的配置项添加到 Kits。
如果目标平台是 Ubuntu 系统,这一步也需要添加 sysroot 的路径
{{:arm:rk3399:6.png?1160×744|}}
- 编译运行:
打开 demo 程序,Welcome -> Open Project,选择要使用的 Kits:
{{:arm:rk3399:7.png?904×457|}}
之后打开 Projects -> Run,配置命令行参数,这里设置为 -platform wayland:
目标平台是 Ubuntu 则使用 -platform xcb (Ubuntu 桌面环境),或者根据需要选择 linuxfb、eglfs
{{:arm:rk3399:8.png?1247×263|}}
配置环境变量,即 export XDG_RUNTIME_DIR=/tmp/.xdg:
RK356X Buildroot 则需要使用 /var/run 而不是 /tmp/.xdg
目标平台是 Ubuntu 则需要根据之前设置的 platform 添加不同的环境变量,详情在 Qt 环境包中的说明文件中
{{:arm:rk3399:9.png?850×344|}}
编译运行:
点击 Build 交叉编译 Qt 程序;点击 Run 或 Debug 在设备上运行或调试程序。要重新运行程序时,记得手动点击 Stop 关闭已经运行的程序
{{:arm:rk3399:10.png?957×386|}}
编译生成目录和 demo 目录在同一位置。
==视频硬件编解码支持==
RK3399集成的VPU具有优秀的视频编解码能力,Mpp是Rockchip为VPU提供的一套视频编解码的api, 并且基于mpp。Rockchip提供了一套gstreamer的编解码插件。用户可以根据自己的需求,基于gstreamer来做视频编解码的应用,或者直接调用mpp,来实现硬件的编解码加速。
系统提供了一个测试视频文件,位于/usr/local/test.mp4 ,测试文件为1080P, 24Fps, H264编码, Mp4格式。
可以通过一下几种方式,验证和开发视频编解码相关应用
- Gstreamer
* Ubuntu 16.04 下,gstreamer 1.12 已经安装在/opt/目录下。
* Ubuntu 18.04下, gstreamer 1.12 已经安装到系统中。
/usr/local/bin/h264dec.sh 测试硬件H264解码。
/usr/local/bin/h264enc.sh 测试硬件H264编码。
用户可以参照这两个脚本,配置自己的gstreamer应用。
- MPV
系统提供的Mpv播放器,可以直接调用rkmpp解码插件
- FFmpeg
FFmpeg 对于 Rockchip 暂时只支持通过 Mpp 实现硬件解码,暂时没有硬件编码的支持。
Firefly Ubuntu 已经安装了 FFmpeg,用户可以直接使用。
* 确认rkmpp解码器
$ ffmpeg -decoders | grep "rkmpp"
V..... h264_rkmpp h264 (rkmpp) (codec h264)
V..... hevc_rkmpp hevc (rkmpp) (codec hevc)
V..... vp8_rkmpp vp8 (rkmpp) (codec vp8)
V..... vp9_rkmpp vp9 (rkmpp) (codec vp9)
* 测试命令
$ ffmpeg -y -c:v h264_rkmpp -i test.mp4 -an output.yuv
特别注意: FFmpeg h264_rkmpp 解码获得的是 AV_PIX_FMT_DRM_PRIME,也就是 DRM 帧数据,如果是基于drm显示,可以直接输出帧,否则,需要用 hwdownload 进行转换。
更多内容可以参考[[http://ffmpeg.org/about.html|FFmpeg 官网]]
- MMP
* Ubunut 系统下, mpp 相关dev包都已经安装到系统中。
更多相关资料,可参考linux-sdk/docs/Linux/Multimedia下的相关文档
===QTCreator 使用方法===
====通用方法====
----
===查看CPU温度===
root@nodka:/ # cat /sys/class/hwmon/hwmon0/device/temp1_input
45
===查看CPU序列号===
root@nodka:/ # cat /proc/cpuinfo | grep Serial
Serial : c7a2958e9e958b2d
===查看CPU频率===
root@nodka:/ # cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
1800000
root@nodka:/ # cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq
126000
root@nodka:/ # cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
126000
root@nodka:/ # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
126000
===查看内存容量===
root@demo:~# busybox free -m
total used free shared buffers cached
Mem: 3839 232 3607 24 13 121
-/+ buffers/cache: 97 3742
Swap: 0 0 0
===查看存储容量===
root@demo:~# busybox df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 14.2G 3.5G 10.1G 26% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 18.4M 1.9G 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
tmpfs 384.0M 0 384.0M 0% /run/user/0
====Android系统的使用====
===系统下载===
==Android系统==
Android 7.1.2:
[[ftp://szrd@ma.nodka.com/%E6%B7%B1%E5%9C%B3%E7%A0%94%E5%8F%91%E9%83%A8/NK_RK3399/安卓/Nodka-7.1.2-V5.001.03R-20220802/Nodka-7.1.2-V5.001.03R-20220802.img|系统下载链接]]
===工具链下载===
==工具==
[[ftp://szrd@ma.nodka.com/%E6%B7%B1%E5%9C%B3%E7%A0%94%E5%8F%91%E9%83%A8/NK_RK3399/Tools/|工具链接]]
===烧录工具下载===
==烧录工具==
[[ftp://szrd@ma.nodka.com/%E6%B7%B1%E5%9C%B3%E7%A0%94%E5%8F%91%E9%83%A8/NK_RK3399/Tools/%E7%83%A7%E5%BD%95%E5%B7%A5%E5%85%B7/RKDevTool_Release/|烧录链接]]
===系统烧录===
1、将烧录线连接主板OTG接口,接上后接通电源
{{:arm:rk3399:3399.png?1003x388|}}
USB3.0口为OTG系统烧录口,红色箭头标记区域,如上图所示。
电源:12v-24V电源输入。
2、下载烧录工具:
* 请务必先安装驱动,烧录工具链接含有驱动DriverAssitant压缩包,解压后点击DriverInstall.exe安装驱动
{{:arm:rk3399:3399-shaolu.png?494×265|}}
3、开始烧录:
* 将数据线一端与主板OTG连接,另一端连接电脑。注意烧录前,需要按住SW2 recovery按键再接通电源
{{:arm:rk3399:shaolugujian.png?1000×456|}}
* 打开压缩包中开发工具 >> 升级固件 >> 点击固件并选择好固件 >> 点升级开始烧录
{{:arm:rk3399:faxian.png?800×456|}}
* 烧录过程中的状态,会有进度显示
{{:arm:rk3399:shaoluzhong.png?800×456|}}
* 更换系统平台(例如安卓切换到Linux)时,可能出现无法烧录的情况,此时打开开发工具 >> 高级功能 >> 点击进入Maskrom切换烧录模式后烧录系统
{{:arm:rk3399:moshi.png?800×456|}}
4、完成烧录:
* 烧录过程不需要任何操作,烧录成功后右框会显示设备自动重启,烧录完成。
{{:arm:rk3399:shaoluwancheng.png?|600×456}}
====有线adb连接====
1、板子与电脑连接
* 用数据线一端连接电脑,一端连接板子的USB3.0口,如图:
{{:arm:rk3399:lianjie.png?800|}}
2、勾选上连接的设置
* 在设置->USB->Connect to Pc 中把选择框勾选上,如图:
{{:arm:rk3399:gouxuan.png?800|}}
3、工具下载
[[ftp://szrd@ma.nodka.com/%E6%B7%B1%E5%9C%B3%E7%A0%94%E5%8F%91%E9%83%A8/NK_RK3399/Tools/platform-tools.rar|工具链接]]
* 工具下载后放到C盘下的用户目录中并解压,如下图
{{:arm:rk3399:lujing.png?600|}}
* 按住Windows键+R键打开输入框,输入cmd然后回车进入命令窗口
{{:arm:rk3399:chuangkou.png?800|}}
* 输入cd platform-tools进入工具的路径下
{{:arm:rk3399:jinru.png?800|}}
* 输入adb shell 就成功用adb进入板子系统
{{:arm:rk3399:houtai.png?800|}}
====网络adb连接====
* 在同一个局域网内,可以利用wifi、以太网用adb进入板子系统。
* 下面以wifi为例子,通过网络adb连接到板子
1、到设置->WLAN->连接一个wifi,保持电脑也在这个局域网内。
{{:arm:rk3399:android:wifi-1.png?800|}}
2、查看此wifi的ip地址
{{:arm:rk3399:android:wifi-2.png?800|}}
{{:arm:rk3399:android:wifi-3.png?800|}}
3、电脑打开命令窗口,ping板子的ip。
*如果ping不同,检查一下ip地址是否正确,是否在同一个网内
{{:arm:rk3399:android:wifi-4.png?800|}}
4、输入cd platform-tools进入工具的路径
{{:arm:rk3399:android:wifi-5.png?800|}}
5、输入adb connect ip 连接到板子
{{:arm:rk3399:android:wifi-6.png?800|}}
6、adb shell 进入系统
{{:arm:rk3399:android:wifi-7.png?800|}}
====串口进后台====
1、通过串口进入系统后台,需要利用板子的Debug接口,接口位置和定义如图:
{{:arm:rk3399:android:ser-1.png?800|}}
* 接口只需要用到3个引脚,TX、RX、GND
2、需要用到串口小板工具
* A部分需要接入TX、RX、GND
* B部分连接电脑USB口
{{:arm:rk3399:android:ser-3.png?800|}}
3、硬件部分连接效果图
{{:arm:rk3399:android:ser-tu.png?800|}}
4、在电脑的设备管理器->端口 中看有没有串口信息
{{:arm:rk3399:android:ser-4.png?800|}}
5、打开Xshell新建一个会话,在连接下选择协议为SERIAL,操作如图:
{{:arm:rk3399:android:ser-5.png?800|}}
6、点击串口,端口号为设备管理器看到的串口号,波特率为:1500000
{{:arm:rk3399:android:ser-6.png?800|}}
7、最后点击连接,串口进入后台
{{:arm:rk3399:android:ser-7.png?800|}}