上手教程
具体信息以官网商城为准。
以上的发货清单为 ROC-RK3308B-CC-PLUS 的标准套装,如果要使用 ROC-RK3308B-CC-PLUS 的语音开发功能以及相关的固件,需要另外购买我们的智能语音开发套件。
ROC-RK3308B-CC-PLUS 的标准套装,包含以下配件:
ROC-RK3308B-CC-PLUS 开发板一块
Type-A 转 Type-C 线一根
WiFi天线一根
具体信息以官网商城为准。
另外,在使用过程中,你可能需要做以下准备:
电源:
ROC-RK3308B-CC-PLUS由 USB Type-C 接口供电,可接电源适配器,也可接到PC主机上供电。要求工作电压 5V ,工作电流 500mA 以上。
网络:
ROC-RK3308B-CC-PLUS支持 双以太网 以及 2.4G WiFi 的使用,使用需准备:
100M 以太网线缆,及有线路由器
WiFi 路由器
升级固件
通过 USB Type-C 连接主机,烧写固件
调试
串口转 USB 适配器,支持波特率:1500000
调试串口默认波特率为1500000,一定要注意自己所使用的 USB转串口工具 是否支持。
如果正在进行 U-Boot 或内核开发,USB 串口适配器( USB 转串口 TTL 适配器的简称)对于检查系统启动日志非常有用,特别是在没有图形桌面显示的情况下。
网店上有许多 USB 转串口的适配器,按芯片来分,有以下几种:
PL2303
CH340
一般来说,采用 CH340 芯片的适配器,性能比较稳定,价格上贵一些。
注意: ROC-RK3308B-CC-PLUS 默认的波特率是 1500000,有些USB转串口芯片波特率无法达到 1500000,同一芯片的不同系列也可能会有差异,所以在选购之前一定要确认是否支持。
串口转 USB 适配器,有四个引脚:
3.3V 电源(NC),不需要连接
GND,串口的地线,接开发板串口的 GND 针
TXD,串口的输出线,接开发板串口的 TX 针
RXD,串口的输入线,接开发板串口的 RX 针
注意: 如使用其它串口适配器遇到 TX 和 RX 不能输入和输出的问题,可以尝试对调 TX 和 RX 的连接。
ROC-RK3308B-CC-PLUS 串口连接图:
ROC-RK3308B-CC-PLUS 使用以下串口参数:
波特率:1500000
数据位:8
停止位:1
奇偶校验:无
流控:无
下载驱动并安装:
如果在 Win8 上不能正常使用 PL2303,参考这篇文章, 采用 3.3.5.122 或更老版本的旧驱动即可。
如果在 Windows 系统上安装官网的 CP210X 驱动,使用 PUTTY 或 SecureCRT 等工具设置串口波特率为 1500000,如果出现设置不了或无效的问题,可以下载旧版本驱动。
插入适配器后,系统会提示发现新硬件,并初始化,之后可以在设备管理器找到对应的 COM 口:
Windows 上一般用 putty 或 SecureCRT。其中我们推荐使用 MobaXterm 免费版本。这是一款功能强大的终端软件,在这里介绍一下,MobaXterm 的使用方法与之类似。
到这里下载 MobaXterm:
选择 session 为 Serial。
将 Serial port 修改为在设备管理器中找到的 COM 端口。
设置 Speed (bsp) 为 1500000。
点击 OK 按钮。
在 Ubuntu 上可以有多种选择:
minicom
picocom
kermit
篇幅关系,以下就介绍 minicom 的使用。
ADB,全称 Android Debug Bridge,是 Android 的命令行调试工具,可以完成多种功能,如跟踪系统日志,上传下载文件,安装应用等。
首先参照安装 RK USB 驱动一节安装好驱动。
然后下载 adb.zip,解压到 C:adb 以方便调用。
打开命令行窗口,输入:
列出所有连接设备及其序列号:
如果 TARGET_BUILD_VARIANT 使用的是 userdebug 模式,要获得 root 权限,需要先运行:
前面是 apk 文件,后面则是对应的包名称。
升级固件
ROC-RK3308B-CC-PLUS出厂默认安装Buildroot操作系统,如果用户要运行其他操作系统,需要使用对应的固件烧写到主板。
ROC-RK3308B-CC-PLUS有灵活的启动方式。一般情况下,除非硬件损坏,ROC-RK3308B-CC-PLUS 开发板是不会变砖的。
如果在升级过程中出现意外,bootloader 损坏,导致无法重新升级,此时仍可以进入 MaskRom 模式来修复。
ROC-RK3308B-CC-PLUS 支持通过以下方式升级固件:
使用USB线缆升级固件
使用USB线将主板连接到电脑上,通过升级工具将固件烧写到主板上。
ROC-RK3308B-CC-PLUS 从以下的存储器中加载系统:
eMMC 接口
ROC-RK3308B-CC-PLUS有三种启动模式:
Normal 模式
Loader 模式
MaskRom 模式
Normal 模式就是正常的启动过程,各个组件依次加载,正常进入系统。
在 Loader 模式下,bootloader 会进入升级状态,等待主机命令,用于固件升级等。要进入 Loader 模式,必须让 bootloader 在启动时检测到 RECOVERY(恢复)键按下,且 USB 处于连接状态。
使设备进入升级模式的方法如下:
一种方式是断开电源适配器
Type-C 数据线连接好设备和主机。
按住设备上的 RECOVERY (恢复)键并保持。
插上电源
大约两秒钟后,松开 RECOVERY 键。
另一种方式是接上电源适配器
Type-C 数据线连接好设备和主机。
按住设备上的 RECOVERY (恢复)键并保持。
短按一下 RESET(复位)键。
大约两秒钟后,松开 RECOVERY 键。
MaskRom 模式用于 bootloader 损坏时的系统修复。
一般情况下是不用进入 MaskRom 模式的,只有在 bootloader 校验失败(读取不了 IDB 块,或 bootloader 损坏) 的情况下,BootRom 代码 就会进入 MaskRom 模式。此时 BootRom 代码等待主机通过 USB 接口传送 bootloader 代码,加载并运行之。
要强行进入 MaskRom 模式,请参阅《MaskRom模式》一章。
本文介绍了如何将主机上的固件,通过Type-C 数据线烧录到 ROC-RK3308B-CC-PLUS 开发板的存储器中。升级时,需要根据主机操作系统和固件类型来选择合适的升级方式。
ROC-RK3308B-CC-PLUS 开发板
主机
良好的Type-C 数据线
固件可以通过编译SDK获得,也可以通过资源下载处下载公版固件(统一固件)。固件文件一般有两种:
单个统一固件
统一固件是由分区表、bootloader、uboot、kernel、system等所有文件打包合并成的单个文件。Firefly正式发布的固件都是采用统一固件格式,升级统一固件将会更新主板上所有分区的数据和分区表,并且擦除主板上所有数据。
多个分区镜像
即各个功能独立的文件,如分区表、bootloader、kernel等,在开发阶段生成。独立分区镜像可以只更新指定的分区,而保持其它分区数据不被破坏,在开发过程中会很方便调试。
通过统一固件解包/打包工具,可以把统一固件解包为多个分区镜像,也可以将多个分区镜像合并为一个统一固件。
安装RK USB驱动
下载 Release_DriverAssistant.zip,解压,然后运行里面的 DriverInstall.exe 。为了所有设备都使用更新的驱动,请先选择驱动卸载,然后再选择驱动安装。
运行AndroidTool的RKDevTool.exe
下载 AndroidTool,解压,运行 RKDevTool_Release_v2.xx 目录里面的 RKDevTool.exe(注意,如果是 Windows 7/8,需要按鼠标右键,选择以管理员身份运行),如下图:
Linux 下无须安装设备驱动
下载 Linux_Upgrade_Tool, 并按以下方法安装到系统中,方便调用:
通常我们升级固件的模式有两种,分别是Loader模式和MaskRom模式。烧写固件前,我们需要连接好设备,并让板子进入到可升级模式。
连接设备并通过RECOVERY按键进入Loader升级模式步骤如下:
先断开电源适配器连接
USB Type-A to Type-C 数据线一端连接主机,一端连接开发板
按住设备上的 RECOVERY (恢复)键并保持
接上电源
大约两秒钟后,松开 RECOVERY 键
Type-C 数据线接好后在串口调试终端或adb shell给板子运行以下命令
如何确定板子是否进入Loader模式,我们可以通过工具去查看
Windows操作系统
通过AndroidTool工具可以看到下方提示Found One LOADER Device
如果有进行”进入Loader模式”的操作,仍旧没有看到烧写工具提示LOADER,此时可以可以看一下Windows主机是否有提示发现新硬件并配置驱动。打开设备管理器,会见到新设备 Rockusb Device 出现,如下图。如果没有,可返回上一步重新安装驱动。
Linux操作系统
运行upgrade_tool后可以看到连接设备中有个Loader的提示
进入MaskRom模式的方法,请参考《MaskRom模式》
烧写统一固件 update.img 的步骤如下:
如果板子进入不了 Loader 模式,此时可以尝试强行进入 MaskRom 模式。操作方法见《MaskRom模式》。
如果烧写过程中出现Download Boot Fail, 或者烧写过程中出错,如下图所示,通常是由于使用的USB线连接不良、劣质线材,或者电脑USB口驱动能力不足导致的,请更换USB线或者电脑USB端口排查。
有关启动模式的介绍,请参阅《升级固件介绍》一章
MaskRom 模式是设备变砖的最后一条防线。强行进入 MaskRom 涉及硬件操作,有一定风险,因此仅在设备进入不了 Loader 模式的情况下,方可尝试 MaskRom 模式。进入 MaskRom 的原理是人为的把 EMMC 的数据脚与地线短接,系统会认为 EMMC 数据出错,从而清除 EMMC 数据。
请小心阅读,并谨慎操作!
操作步骤如下:
设备断开所有电源。
拔出 SD 卡。
用Type-C 数据线连接好设备和主机。
用金属镊子接通ROC-RK3308B-CC-PLUS上的如下图所示的两个测试点并保持(如下图所示)。
设备插入电源。
稍候片刻,之后松开镊子。
此时设备就会进入 MaskRom 模式。
Linux开发
本章介绍 Linux SDK的编译流程
注意:(1)推荐在 Ubuntu 18.04 系统环境下进行开发,若使用其它系统版本,可能需要对编译环境做相应调整。
(2)使用普通用户进行编译,不要使用 root 用户权限进行编译。
方法一(推荐)
由于 Firefly_Linux_SDK 源码包比较大,部分用户电脑不支持4G以上文件或单个文件网络传输较慢, 所以我们采用分卷压缩的方法来打包 SDK。用户可以通过如下方式获取 Firefly_Linux_SDK 源码包:Firefly_Linux_SDK源码包
下载完成后先验证一下 MD5 码:
方法二
通过 repo 拉取代码,此方法对网络要求较高,有条件可以使用
可选择获取完整 SDK 或者 BSP:
执行如下命令同步代码:
本章介绍 Ubuntu 固件的编译流程,推荐在 Ubuntu 18.04 系统环境下进行开发,若使用其它系统版本,可能需要对编译环境做相应调整。
下载根文件系统:Ubuntu 根文件系统(64位),放到 SDK 路径下
将根文件系统放到SDK的 ubuntu_rootfs/ 目录下
全自动编译会执行所有编译、打包操作,直接生成 RK 固件。
FIRMWARE_VER:8.1
MACHINE_MODEL:RK3308
MACHINE_ID:007
MANUFACTURER: RK3308
MAGIC: 0x5041524B
ATAG: 0x00200800
MACHINE: 3308
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
TYPE: GPT
CMDLINE: mtdparts=rk29xxnand:0x00001000@0x00002000(uboot),0x00001000@0x00003000(trust),0x00000800@0x00004000(misc),0x0000A000@0x00004800(recovery),0x0000A000@0x0000E800(boot),0x00100000@0x00018800(rootfs),-@0x118800(userdata:grow)
uuid:rootfs=614e0000-0000-4b53-8000-1d28000054a9
CMDLINE 属性是我们关注的地方,以 uboot 为例, 0x00001000@0x00002000(uboot) 中 0x00001000 为uboot 分区的起始位置,0x00002000 为分区的大小,以此类推。
package-file 文件用于打包固件时确定需要的分区镜像和镜像路径,同时它需要与 parameter.txt 文件保持一致。
本章介绍 Buildroot 固件的编译流程,推荐在 Ubuntu 18.04 系统环境下进行开发,若使用其它系统版本,可能需要对编译环境做相应调整。
buildroot的配置文件介绍:
roc-rk3308b-cc-plus-buildroot.mk
屏幕模组:不支持
UI界面:无
roc-rk3308b-cc-plus-rgb-4.0inch-qt.mk
屏幕模组: 4.0寸RGB液晶屏模组
UI界面:Qt demo
roc-rk3308b-cc-plus-rgb-7.0inch-qt.mk
屏幕模组: 7.0寸RGB液晶屏模组
UI界面:Qt demo
全自动编译会执行所有编译、打包操作,生成完整固件。
FIRMWARE_VER:8.1
MACHINE_MODEL:RK3308
MACHINE_ID:007
MANUFACTURER: RK3308
MAGIC: 0x5041524B
ATAG: 0x00200800
MACHINE: 3308
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
TYPE: GPT
CMDLINE: mtdparts=rk29xxnand:0x00001000@0x00002000(uboot),0x00001000@0x00003000(trust),0x00000800@0x00004000(misc),0x0000A000@0x00004800(recovery),0x0000A000@0x0000E800(boot),0x00080000@0x00018800(rootfs),0x00020000@0x00098800(oem),-@0x00B8800(userdata:grow)
uuid:rootfs=614e0000-0000-4b53-8000-1d28000054a9
CMDLINE 属性是我们关注的地方,以 uboot 为例, 0x00001000@0x00004000(uboot) 中 0x00001000 为uboot 分区的起始位置,0x00002000 为分区的大小,以此类推。
package-file 文件用于打包固件时确定需要的分区镜像和镜像路径,同时它需要与 parameter.txt 文件保持一致。
Firefly Linux 开发指南
配件
型号:HC480480TFT40-499-CT
尺寸:4.0寸
分辨率:480x480
显示接口:RGB
面板材料:IPS面板
触摸屏:多点电容触摸
用官网SDK编译支持的4.0寸屏的固件时,注意如下:
ROC-RK3308B-CC-PLUS的板级配置文件:rk3308b-roc-cc-plus-amic-rgb_4.0inch_emmc.dts
屏幕模组的配置文件:rk3308b-rgb_4.0inch_ST7701S.dtsi
注意:屏板的引脚丝印要与开发板的引脚丝印要一一对应
型号:CZNB070762T
尺寸:7.0寸
分辨率:1024x600
显示接口:RGB
面板材料:IPS面板
触摸屏:多点电容触摸
用官网SDK编译支持的7.0寸屏的固件时,注意如下:
ROC-RK3308B-CC-PLUS的板级配置文件:rk3308b-roc-cc-plus-amic-rgb_7.0inch_emmc.dts
屏幕模组的配置文件:rk3308b-rgb_7.0inch_CZNB070762T.dtsi
注意:屏板的引脚丝印要与开发板的引脚丝印要一一对应
型号
EC20-C R2.0 Mini PCIe-C
电源电压
3.3V~ 3.6V, 典型值: 3.3V
工作频段
TDD-LTE: B38/B39/B40/B41
FDD-LTE: B1/B3/B8
WCDMA: B1/B8
TD-SCDMA: B34/B39
GSM: 900/1800 MHz
数据传输
TDD-LTE: Max 130Mbps (DL) Max 35Mbps (UL)
FDD-LTE: Max 150Mbps (DL) Max 50Mbps (UL)
DC-HSPA : Max 42Mbps (DL) Max 5.76Mbps (UL)
UMTS: Max 384Kbps (DL) Max 384Kbps (UL)
TD-SCDMA: Max 4.2Mbps (DL) Max 2.2Mbps (UL)
CDMA: Max 3.1Mbps (DL) Max 1.8Mbps (UL)
EDGE: Max 236.8Kbps (DL) Max 236.8Kbps (UL)
GPRS: Max 85.6Kbps (DL) Max 85.6Kbps (UL)
接口连接器
USB:USB 2.0 高速接口, 480Mbps
数字语音:1个数字语音接口 (可选)
USIM:1.8V/3V
网络指示:×2, NET_STATUS 和 NET_MODE
UART:×1 UART
复位:低电平
PWRKEY:低电平
天线接口:×3 (主天线, 分集天线和GNSS天线接口)
ADC:×2
结构尺寸
51.0mm × 30.0mm × 4.9mm
重量
约 10.5g
认证
CCC/ NAL*/ TA
USB 接口连接
SIM 卡连接
公版固件默认支持 EC20 4G 模组、EC200T 4G模组
技术案例
使用 Alexa Voice Service,首先你需要注册一个Amazon账号,向 Amazon 注册你的产品,并对你的 alexa client 进行授权。
第一步,按照官方指导,仔细的按照步骤,注册你的产品,并创建安全配置文件。
第二步,得到你的 Client ID 和 Product ID
获取 Product ID:
获取 Client ID:
注意:Alexa Voice Service 不支持中文。
Alexa 源码目录:
常见问题解答
可能是电源电流不够,板子的工作电压为 5V,工作电流为 500mA 以上,视具体挂载外设而定。
查看codec当前左右声道输出增益:
查看codec当前左右声道输出增益:
card 0: rk3308b 内置声卡
card 1: usb 声卡
card 7: aloop 生成的虚拟声卡
Group n
Group 0: mic1和mic2
Group 1: mic3和mic4
Group 2: mic5和mic6
Group 3: mic7和mic8
“ADC MIC”前缀:表示调节前级MIC PGA线性放大增益
“ADC ALC”前缀:表示调节后级ALC线性放大增益
使用有源MIC
使用无源MIC
检查是否有接偏置电压?(偏置电压可使用MICBIAS1或者MICBIAS2)
参考电路
提取双声道音频文件中单个声道的数据并作为单声道音频输出
关于ROC-RK3308B-CC-PLUS(或者ROC-RK3308B-CC)开源主板支持的语音套件,客户如需更深入的业务定制合作,需要与我司或者对应的语音公司进行商务沟通。
支持RGB接口
RGB888
RGB666
RGB565
支持 MCU i80接口
最大分辨率是720p
AndroidTool在加载parameter.txt时,会自动根据parameter分配分区地址,所以每次单独烧写分区镜像时,顺便加载parameter.txt,就不需要手动修改分区地址了。
例如:0x00004800@0x0000A800(boot),@符号之前的数值是分区的大小,@符号之后的数值是分区的起始位置,括号里面的字符是分区的名字。所有数值的单位是sector,1个sector为512Bytes。
为了性能,每个分区起始位置需要32KB(64 sectors)对齐,大小也需要32KB的整数倍。
内核dts有没有使能i2c3
检查i2c3所使用的pin脚有没有被复用成其他功能
检查i2c3有没有接上拉电压,可参考原理图i2c1
检测i2c3所挂载的设备有没有正常供电
其他i2c同理。
具体程序(可以参考互联网上的文章)需要自己编写并编译。
板子启动后,运行demo文件,会启动看门狗并进行喂狗。
把该进程结束掉,就不进行喂狗了,超时后机器就会重启。
注意:如果开发板进行了eMMC擦除操作,之前写入的数据也会被清除。
安装RKDevInfoWriteTool
RKDevInfoWriteTool的设置里选中”RPMB”
根据需要在RKDevInfoWriteTool的设置里配置”SN”,”WIFI MAC”,”LAN MAC”,”BT MAC”等
开发板进入loader模式
RKDevInfoWriteTool进行写入或者读取操作
具体操作可以参考RKDevInfoWriteTool安装目录下的《RKDevInfoWriteTool使用指南》PDF文档。
开发板自身写号方式
确定rootfs是否为可读写
参考Rootfs 切换为 ext2章节。
.usb_config配置
应用层修改的方式在系统重启后需要重新设置,而修改驱动的方式则会将所有串口的默认波特率改成115200
资源下载