上手教程
具体信息以官网商城为准。
以上的发货清单为 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转串口工具 是否支持。
ADB,全称 Android Debug Bridge,是 Android 的命令行调试工具,可以完成多种功能,如跟踪系统日志,上传下载文件,安装应用等。
首先参照安装 RK USB 驱动一节安装好驱动。
然后下载 adb.zip,解压到 C:adb 以方便调用。
打开命令行窗口,输入:
列出所有连接设备及其序列号:
升级固件
Core-3308Y出厂默认安装Buildroot操作系统,如果用户要运行其他操作系统,需要使用对应的固件烧写到主板。
Core-3308Y有灵活的启动方式。一般情况下,除非硬件损坏,Core-3308Y 开发板是不会变砖的。
如果在升级过程中出现意外,bootloader 损坏,导致无法重新升级,此时仍可以进入 MaskRom 模式来修复。
Core-3308Y 支持通过以下方式升级固件:
使用USB线缆升级固件
使用USB线将主板连接到电脑上,通过升级工具将固件烧写到主板上。
Core-3308Y 从以下的存储器中加载系统:
eMMC 接口
Core-3308Y有三种启动模式:
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 数据线烧录到 Core-3308Y 开发板的存储器中。升级时,需要根据主机操作系统和固件类型来选择合适的升级方式。
Core-3308Y 开发板
主机
良好的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模式”的操作,仍旧没有看到烧写工具提示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 数据线连接好设备和主机。
用金属镊子接通Core-3308Y上的如下图所示的两个测试点并保持(如下图所示)。
设备插入电源。
稍候片刻,之后松开镊子。
此时设备就会进入 MaskRom 模式。
Linux开发
本章介绍 Linux SDK的编译流程
注意:(1)推荐在 Ubuntu 18.04 系统环境下进行开发,若使用其它系统版本,可能需要对编译环境做相应调整。
(2)使用普通用户进行编译,不要使用 root 用户权限进行编译。
方法一(推荐)
由于 Firefly_Linux_SDK 源码包比较大,部分用户电脑不支持4G以上文件或单个文件网络传输较慢, 所以我们采用分卷压缩的方法来打包 SDK。用户可以通过如下方式获取 Firefly_Linux_SDK 源码包:Firefly_Linux_SDK源码包
下载完成后先验证一下 MD5 码:
确认无误后,就可以解压:
注意:不要在共享文件夹、挂载文件夹以及非英文目录解压SDK,避免产生不必要的错误
方法二
通过 repo 拉取代码,此方法对网络要求较高,有条件可以使用
可选择获取完整 SDK 或者 BSP:
mkdir ~/proj/rk3308_linux_release_v1.5.0a_20221212/
cd ~/proj/rk3308_linux_release_v1.5.0a_20221212/
## 完整 SDK
repo init --no-clone-bundle --repo-url https://gitlab.com/firefly-linux/git-repo.git -u https://gitlab.com/firefly-linux/manifests.git -b master -m rk3308_linux_release.xml
## BSP ( 只包含基础仓库和编译工具 )
## BSP 包括 device/rockchip 、docs 、 kernel 、 u-boot 、 rkbin 、 tools 和交叉编译链
repo init --no-clone-bundle --repo-url https://gitlab.com/firefly-linux/git-repo.git -u https://gitlab.com/firefly-linux/manifests.git -b master -m rk3308_linux_bsp_release.xml
执行如下命令同步代码:
本章介绍 Ubuntu 固件的编译流程,推荐在 Ubuntu 18.04 系统环境下进行开发,若使用其它系统版本,可能需要对编译环境做相应调整。
下载根文件系统:Ubuntu 根文件系统(64位),放到 SDK 路径下
将根文件系统放到SDK的 ubuntu_rootfs/ 目录下
parameter.txt 文件中包含了固件的分区信息,以 parameter-ubuntu-fit.txt 为例:
路径:device/rockchip/rk3308/parameter-64bit-ubuntu.txt
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 系统环境下进行开发,若使用其它系统版本,可能需要对编译环境做相应调整。
全自动编译会执行所有编译、打包操作,生成完整固件。
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模组
常见问题解答
可能是电源电流不够,板子的工作电压为 5V,工作电流为 500mA 以上,视具体挂载外设而定。
查看codec当前左右声道输出增益:
查看codec当前左右声道输出增益:
使用有源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文件,会启动看门狗并进行喂狗。
把该进程结束掉,就不进行喂狗了,超时后机器就会重启。
参考Rootfs 切换为 ext2章节。
kernel使能config如下:
注意:如果开发板进行了eMMC擦除操作,之前写入的数据也会被清除。
安装RKDevInfoWriteTool
RKDevInfoWriteTool的设置里选中”RPMB”
根据需要在RKDevInfoWriteTool的设置里配置”SN”,”WIFI MAC”,”LAN MAC”,”BT MAC”等
开发板进入loader模式
RKDevInfoWriteTool进行写入或者读取操作
具体操作可以参考RKDevInfoWriteTool安装目录下的《RKDevInfoWriteTool使用指南》PDF文档。
开发板自身写号方式
VENDOR_WIFI_MAC_ID的值是给了p2p0的MAC地址,而wlan0的MAC地址是VENDOR_WIFI_MAC_ID的值的第一个字节&= ~0x2所得。
需要做如下修改:
参考Rootfs 切换为 ext2章节。
应用层修改的方式在系统重启后需要重新设置,而修改驱动的方式则会将所有串口的默认波特率改成115200
资源下载