上手教程
介绍
ADB 使用
升级固件
介绍
使用USB线缆升级固件
MaskRom模式
Linux开发
编译 Linux 固件
Firefly Linux 开发指南
驱动开发
配件
串口模块
屏幕模组
无线模块
常见问题解答
资源下载
Core-3308JY
产品规格书

上手教程

1. 介绍

1.1. 产品规格

_images/roc-rk3308b-cc-plus_pin.jpg

1.2. 发货清单参考

_images/list_roc-rk3308b-cc-plus.jpg

具体信息以官网商城为准。

1.3. 自选配件

以上的发货清单为 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转串口工具 是否支持。

1.4. 其他

  • 调试串口:使用的是UART4

  • 蓝牙:不支持

  • 以太网:存在eth0和eth1网卡

  • 耳机座子:硬件版本V1.0没有接入HP_MIC

开发板在使用过程中遇到的问题,可以到开源社区发贴

2. ADB 使用

2.1. 前言

ADB,全称 Android Debug Bridge,是 Android 的命令行调试工具,可以完成多种功能,如跟踪系统日志,上传下载文件,安装应用等。

2.2. 准备连接

2.4. Windows下的 ADB 安装

首先参照安装 RK USB 驱动一节安装好驱动。

然后下载 adb.zip,解压到 C:adb 以方便调用。

打开命令行窗口,输入:

2.5. Ubuntu 下的 ADB 安装

2.6. 常用 ADB 命令

2.6.1. 连接管理

列出所有连接设备及其序列号:

2.7. 调试

2.7.1. 获取系统日志 adb logcat

2.7.2. 运行命令 adb shell

2.7.2.1. 获取详细运行信息 adb bugreport

2.8. 应用管理

2.8.1. 安装应用 adb install

2.8.2. 卸载应用 adb uninstall

2.8.3. 命令行帮助信息 adb help

升级固件

1. 介绍

1.1. 前言

Core-3308Y出厂默认安装Buildroot操作系统,如果用户要运行其他操作系统,需要使用对应的固件烧写到主板。

Core-3308Y有灵活的启动方式。一般情况下,除非硬件损坏,Core-3308Y 开发板是不会变砖的。

如果在升级过程中出现意外,bootloader 损坏,导致无法重新升级,此时仍可以进入 MaskRom 模式来修复。

1.2. 固件获取

1.3. 升级方式

Core-3308Y 支持通过以下方式升级固件:

  • 使用USB线缆升级固件

    使用USB线将主板连接到电脑上,通过升级工具将固件烧写到主板上。

1.4. 启动存储器

Core-3308Y 从以下的存储器中加载系统:

  • eMMC 接口

1.5. 启动模式

Core-3308Y有三种启动模式:

  • Normal 模式

  • Loader 模式

  • MaskRom 模式

1.5.1. Normal 模式

Normal 模式就是正常的启动过程,各个组件依次加载,正常进入系统。

1.5.2. Loader 模式

在 Loader 模式下,bootloader 会进入升级状态,等待主机命令,用于固件升级等。要进入 Loader 模式,必须让 bootloader 在启动时检测到 RECOVERY(恢复)键按下,且 USB 处于连接状态。

使设备进入升级模式的方法如下:

一种方式是断开电源适配器

  • Type-C 数据线连接好设备和主机。

  • 按住设备上的 RECOVERY (恢复)键并保持。

  • 插上电源

  • 大约两秒钟后,松开 RECOVERY 键。

另一种方式是接上电源适配器

  • Type-C 数据线连接好设备和主机。

  • 按住设备上的 RECOVERY (恢复)键并保持。

  • 短按一下 RESET(复位)键。

  • 大约两秒钟后,松开 RECOVERY 键。

1.5.3. MaskRom 模式

MaskRom 模式用于 bootloader 损坏时的系统修复。

一般情况下是不用进入 MaskRom 模式的,只有在 bootloader 校验失败(读取不了 IDB 块,或 bootloader 损坏) 的情况下,BootRom 代码 就会进入 MaskRom 模式。此时 BootRom 代码等待主机通过 USB 接口传送 bootloader 代码,加载并运行之。

要强行进入 MaskRom 模式,请参阅《MaskRom模式》一章。

2. 使用USB线缆升级固件

2.1. 前言

本文介绍了如何将主机上的固件,通过Type-C 数据线烧录到 Core-3308Y 开发板的存储器中。升级时,需要根据主机操作系统和固件类型来选择合适的升级方式。

2.2. 准备工具

  • Core-3308Y 开发板

  • 主机

  • 良好的Type-C 数据线

2.3. 准备固件

固件可以通过编译SDK获得,也可以通过资源下载处下载公版固件(统一固件)。固件文件一般有两种:

  • 单个统一固件

    统一固件是由分区表、bootloader、uboot、kernel、system等所有文件打包合并成的单个文件。Firefly正式发布的固件都是采用统一固件格式,升级统一固件将会更新主板上所有分区的数据和分区表,并且擦除主板上所有数据。

  • 多个分区镜像

    即各个功能独立的文件,如分区表、bootloader、kernel等,在开发阶段生成。独立分区镜像可以只更新指定的分区,而保持其它分区数据不被破坏,在开发过程中会很方便调试。

通过统一固件解包/打包工具,可以把统一固件解包为多个分区镜像,也可以将多个分区镜像合并为一个统一固件。

2.4. 安装烧写工具

2.4.1. Windows操作系统

  • 安装RK USB驱动

下载 Release_DriverAssistant.zip,解压,然后运行里面的 DriverInstall.exe 。为了所有设备都使用更新的驱动,请先选择驱动卸载,然后再选择驱动安装

_images/upgrade_firmware_install_RK_USB.png

  • 运行AndroidTool的RKDevTool.exe

下载 AndroidTool,解压,运行 RKDevTool_Release_v2.xx 目录里面的 RKDevTool.exe(注意,如果是 Windows 7/8,需要按鼠标右键,选择以管理员身份运行),如下图:

_images/upgrade_firmware_androidtool_zh.png

2.4.2. Linux操作系统

Linux 下无须安装设备驱动

下载 Linux_Upgrade_Tool, 并按以下方法安装到系统中,方便调用:

2.5. 进入升级模式

通常我们升级固件的模式有两种,分别是Loader模式和MaskRom模式。烧写固件前,我们需要连接好设备,并让板子进入到可升级模式。

2.5.1. Loader模式

2.5.1.1. 硬件方式进入Loader模式

连接设备并通过RECOVERY按键进入Loader升级模式步骤如下:

  • 先断开电源适配器连接

  • USB Type-A to Type-C 数据线一端连接主机,一端连接开发板

  • 按住设备上的 RECOVERY (恢复)键并保持

    _images/otg_interface.png

  • 接上电源

  • 大约两秒钟后,松开 RECOVERY 键

2.5.1.2. 软件方式进入Loader模式

Type-C 数据线接好后在串口调试终端或adb shell给板子运行以下命令

如果有进行”进入Loader模式”的操作,仍旧没有看到烧写工具提示LOADER,此时可以可以看一下Windows主机是否有提示发现新硬件并配置驱动。打开设备管理器,会见到新设备 Rockusb Device 出现,如下图。如果没有,可返回上一步重新安装驱动

_images/upgrade_firmware_new_equipment.png

Linux操作系统

运行upgrade_tool后可以看到连接设备中有个Loader的提示

2.5.2. MaskRom模式

进入MaskRom模式的方法,请参考《MaskRom模式》

2.6. 烧写固件

2.6.1. windows操作系统

2.6.1.1. 烧写统一固件 update.img

烧写统一固件 update.img 的步骤如下:

2.6.1.2. 烧写分区映像

烧写分区映像的步骤如下:

2.6.2. Linux操作系统

2.6.2.1. 烧写统一固件 update.img

2.7. 常见问题

2.7.1. 1. 如何强行进入 MaskRom 模式

如果板子进入不了 Loader 模式,此时可以尝试强行进入 MaskRom 模式。操作方法见《MaskRom模式》

2.7.2. 2. 烧写失败分析

如果烧写过程中出现Download Boot Fail, 或者烧写过程中出错,如下图所示,通常是由于使用的USB线连接不良、劣质线材,或者电脑USB口驱动能力不足导致的,请更换USB线或者电脑USB端口排查。 

_images/upgrade_downloadfail.png

3. MaskRom模式

有关启动模式的介绍,请参阅《升级固件介绍》一章

3.1. 简介

MaskRom 模式是设备变砖的最后一条防线。强行进入 MaskRom 涉及硬件操作,有一定风险,因此仅在设备进入不了 Loader 模式的情况下,方可尝试 MaskRom 模式。进入 MaskRom 的原理是人为的把 EMMC 的数据脚与地线短接,系统会认为 EMMC 数据出错,从而清除 EMMC 数据。

请小心阅读,并谨慎操作!

操作步骤如下:

  1. 设备断开所有电源。

  2. 拔出 SD 卡。

  3. 用Type-C 数据线连接好设备和主机。

  4. 用金属镊子接通Core-3308Y上的如下图所示的两个测试点并保持(如下图所示)。

  5. 设备插入电源。

  6. 稍候片刻,之后松开镊子。

_images/maskrom_test_points.png

此时设备就会进入 MaskRom 模式。

_images/maskrom_zh.png

Linux开发

1. 编译 Linux 固件

1.1. 编译环境搭建

本章介绍 Linux SDK的编译流程

注意:(1)推荐在 Ubuntu 18.04 系统环境下进行开发,若使用其它系统版本,可能需要对编译环境做相应调整。

(2)使用普通用户进行编译,不要使用 root 用户权限进行编译。

1.1.1. 安装依赖包

1.1.2. 下载 Firefly_Linux_SDK 分卷压缩包

  • 方法一(推荐)

由于 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

1.1.3. 同步代码

执行如下命令同步代码:

1.2. 编译 Ubuntu 固件

本章介绍 Ubuntu 固件的编译流程,推荐在 Ubuntu 18.04 系统环境下进行开发,若使用其它系统版本,可能需要对编译环境做相应调整。

1.2.1. Ubuntu 固件简单介绍

什么是 Ubuntu Minimal固件?

1.2.2. 编译 SDK

1.2.2.1. 编译前配置

1.2.2.2. 下载 Ubuntu 根文件系统


1.2.2.4. 部分编译

1.2.2.5. 更新链接

1.2.3. 分区说明

1.2.3.1. parameter 分区表

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 为分区的大小,以此类推。

1.2.3.2. package-file

package-file 文件用于打包固件时确定需要的分区镜像和镜像路径,同时它需要与 parameter.txt 文件保持一致。

1.2.4. 更多内容

《Firefly Ubuntu使用手册》

1.3. 编译 Buildroot 固件

本章介绍 Buildroot 固件的编译流程,推荐在 Ubuntu 18.04 系统环境下进行开发,若使用其它系统版本,可能需要对编译环境做相应调整。

1.3.1. 编译 SDK

1.3.1.1. 编译前配置

1.3.1.2. 全自动编译

全自动编译会执行所有编译、打包操作,生成完整固件。

1.3.1.4. 打包固件

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 为分区的大小,以此类推。

1.3.2.2. package-file

package-file 文件用于打包固件时确定需要的分区镜像和镜像路径,同时它需要与 parameter.txt 文件保持一致。

Firefly Linux 开发指南

Firefly Linux 开发指南

驱动开发

1. 驱动开发

ROC-RK3308B-CC-PLUS(或者ROC-RK3308B-CC)的驱动开发可参考 Firefly-RK3399的维基教程

配件

1. 串口模块

1.1. USB转TTL串口模块

1.1.1. 产品参数

  • 品牌:Firefly

  • 尺寸:29mm*19mm

1.1.2. 技术资料

1.1.3. 实物图

_images/module_serial_list.jpg

1.1.4. 连接方法

_images/debug_connection.jpg

2. 屏幕模组

2.1. 4.0寸RGB液晶屏模组

2.1.1. 产品参数

  • 型号:HC480480TFT40-499-CT

  • 尺寸:4.0寸

  • 分辨率:480x480

  • 显示接口:RGB

  • 面板材料:IPS面板

  • 触摸屏:多点电容触摸

2.1.2. 编译

用官网SDK编译支持的4.0寸屏的固件时,注意如下:

  • ROC-RK3308B-CC-PLUS的板级配置文件:rk3308b-roc-cc-plus-amic-rgb_4.0inch_emmc.dts

  • 屏幕模组的配置文件:rk3308b-rgb_4.0inch_ST7701S.dtsi

2.1.3. 实物图

_images/module_display_a1.jpg

2.1.4. 连接方法

注意:屏板的引脚丝印要与开发板的引脚丝印要一一对应

_images/module_display-roc-rk3308b-cc-plus_4.0inch.jpg

2.2. 7.0寸RGB液晶屏模组

2.2.1. 产品参数

  • 型号:CZNB070762T

  • 尺寸:7.0寸

  • 分辨率:1024x600

  • 显示接口:RGB

  • 面板材料:IPS面板

  • 触摸屏:多点电容触摸

2.2.2. 编译

用官网SDK编译支持的7.0寸屏的固件时,注意如下:

  • ROC-RK3308B-CC-PLUS的板级配置文件:rk3308b-roc-cc-plus-amic-rgb_7.0inch_emmc.dts

  • 屏幕模组的配置文件:rk3308b-rgb_7.0inch_CZNB070762T.dtsi

2.2.3. 实物图

_images/module_display_b1.jpg

2.2.4. 连接方法

注意:屏板的引脚丝印要与开发板的引脚丝印要一一对应

_images/module_display-roc-rk3308b-cc-plus_7.0inch.jpg

3. 无线模块

3.1. EC20 4G模组套件

3.1.1. 产品参数

  • 型号

    • 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

3.1.2. 实物图

_images/module_wireless_ec20.png

3.1.3. 连接方法

  • USB 接口连接

_images/module_wireless_ec20_usb.jpg

  • SIM 卡连接

_images/module_wireless_sim_connection.jpg

3.1.4. 参考固件

公版固件默认支持 EC20 4G 模组、EC200T 4G模组

常见问题解答

1. FAQ

1.1. 开机异常卡死或重启

可能是电源电流不够,板子的工作电压为 5V,工作电流为 500mA 以上,视具体挂载外设而定。

1.2. 查看内置Codec增益所有状态

1.3. 音频输出声音太小

1.3.1. 耳机

查看codec当前左右声道输出增益:

1.3.2. 喇叭

查看codec当前左右声道输出增益:

1.4. 录音

1.4.1. 查看声卡

1.4.3. 内置codec的mic录音没声音

  • 使用有源MIC

  • 使用无源MIC

    • 检查是否有接偏置电压?(偏置电压可使用MICBIAS1或者MICBIAS2)

    • 参考电路

      _images/micbias.png

1.5. SoX - Sound eXchange

提取双声道音频文件中单个声道的数据并作为单声道音频输出

1.6. 语音识别开发

关于ROC-RK3308B-CC-PLUS(或者ROC-RK3308B-CC)开源主板支持的语音套件,客户如需更深入的业务定制合作,需要与我司或者对应的语音公司进行商务沟通。

1.7. 显示屏

  • 支持RGB接口

    • RGB888

    • RGB666

    • RGB565

  • 支持 MCU i80接口

  • 最大分辨率是720p

1.8. AndroidTool

1.8.1. 单独烧写分区镜像,分区地址错误

AndroidTool在加载parameter.txt时,会自动根据parameter分配分区地址,所以每次单独烧写分区镜像时,顺便加载parameter.txt,就不需要手动修改分区地址了。

1.9. parameter.txt

1.9.1. 单个分区说明

例如:0x00004800@0x0000A800(boot),@符号之前的数值是分区的大小,@符号之后的数值是分区的起始位置,括号里面的字符是分区的名字。所有数值的单位是sector,1个sector为512Bytes。

为了性能,每个分区起始位置需要32KB(64 sectors)对齐,大小也需要32KB的整数倍。

1.10. I2C

1.10.1. i2cdetect检测不到i2c3所挂载的设备

  • 内核dts有没有使能i2c3

  • 检查i2c3所使用的pin脚有没有被复用成其他功能

  • 检查i2c3有没有接上拉电压,可参考原理图i2c1

  • 检测i2c3所挂载的设备有没有正常供电

其他i2c同理。

1.11. VAD

1.11.1. 使用内置codec的mic

具体程序(可以参考互联网上的文章)需要自己编写并编译。

1.12.2. 测试方法

  • 板子启动后,运行demo文件,会启动看门狗并进行喂狗。

  • 把该进程结束掉,就不进行喂狗了,超时后机器就会重启。

1.13. SSH

1.13.1. 使用方法

参考Rootfs 切换为 ext2章节。

1.14. USB Camera

1.14.1. 使能配置

kernel使能config如下:

1.15. 写号工具

注意:如果开发板进行了eMMC擦除操作,之前写入的数据也会被清除。

1.15.1. Windows方式

  • 安装RKDevInfoWriteTool

  • RKDevInfoWriteTool的设置里选中”RPMB”

  • 根据需要在RKDevInfoWriteTool的设置里配置”SN”,”WIFI MAC”,”LAN MAC”,”BT MAC”等

  • 开发板进入loader模式

  • RKDevInfoWriteTool进行写入或者读取操作

具体操作可以参考RKDevInfoWriteTool安装目录下的《RKDevInfoWriteTool使用指南》PDF文档。

1.15.2. Linux方式

开发板自身写号方式

1.15.3. 说明

1.15.3.1. WIFI MAC

1.15.3.1.1. RTL8188EU

VENDOR_WIFI_MAC_ID的值是给了p2p0的MAC地址,而wlan0的MAC地址是VENDOR_WIFI_MAC_ID的值的第一个字节&= ~0x2所得。

1.15.3.1.2. AP6236

需要做如下修改:


1.16. UAC

1.16.1. 使用方法

参考Rootfs 切换为 ext2章节。

1.17. 改写MAC地址

1.18. 串口波特率9600改为115200

应用层修改的方式在系统重启后需要重新设置,而修改驱动的方式则会将所有串口的默认波特率改成115200

资源下载

资料下载

电话咨询
微信咨询
留言