
简介Rockchip RV1108 Datasheet V1.5-20191107.pdf 是瑞芯微官方针对 RV1108 芯片的完整技术手册面向嵌入式软硬件开发工程师用于芯片选型、原理图设计、驱动调试与系统评估。压缩包仅含1个PDF文件约2.99MB文件虽少但内容集中覆盖从芯片概述、功能框图到封装与电气规格的全面资料。文档基于2019年11月7日发布的V1.5版本从Revision History看该系列从2017年1.0起历经五次迭代新增了RV1108K1型号并更新IO信息、球状图与顶部标记适合需要精确引脚和封装数据的硬件工程师。目前已有836人浏览学习可作为高频参考手册。内容上第一章详细列出Features与Block Diagram第二章包含Ordering Information、Top Marking、Dimension、Ball Map及Pin List第三章给出绝对最大额定值和推荐工作条件预览目录还显示文末提供IO Pin Name Description、IO Type及Power/ground Pin Descriptions等实用附录整体将芯片功能、封装尺寸和电气参数整合在一起帮助开发者快速定位设计所需的电性能参数降低踩坑概率。1. 四路摄像头进、一块屏出RV1108 的异构视频单芯片一块板子上要同时接四路摄像头、做 1440p H.264 编码、再从 HDMI 或 MIPI DSI 输出到同一块屏幕常见的做法是把两颗芯片焊在一起一颗做采集拼接一颗做编码显示中间还要走一路高速传输。RV1108 把这条路走成了单芯片用一颗 ARM Cortex-A7 跑系统和应用一颗专用 DSP 做数字信号处理摄像头采集、视频编码、显示输出全部收进 BGA359 封装里。汽车 DVR、运动 DV、安防相机、无人机相机都是它的目标场景MIPI-CSI、CVBS、12-bit 并行 RAW 覆盖了主流 sensor 接口。这份 V1.5 datasheet 发布于 2019 年 11 月相比 1.0 补齐了 IO 信息、ball map并新增 RV1108K 型号硬件功能已进入稳定期。2. Cortex-A7 与 DSP 的异构架构RV1108 内部模块与视频通路读惯了 Allwinner H6 这类多核 A53 通用 SoC 的 datasheet再翻 RV1108 会察觉到设计取向的明显差异它的处理器部分不算豪华但视频管线是完整的整个芯片围绕“采集-编码-显示”这条流水线组织而不是围绕通用计算组织。这一点决定了后续所有软硬件设计的基本思路。2.1 处理器子系统的分工与内存层次RV1108 的处理器由两个异构单元构成。Cortex-A7 单核实现 ARMv7-A 指令集集成 NEON 和独立 FPUL1 数据/指令 Cache 各 32KB共享 128KB L2并支持 TrustZone。它承担的是系统调度、网络协议栈、文件系统这类非实时任务。视频/图像 DSP 则不同32KB I-TCM、32KB I-Cache外加 128KB D-TCM。TCM 是紧耦合内存访问延迟确定适合放对时序敏感的视频行列处理代码I-Cache 负责流式指令D-TCM 放大块数据缓冲。这意味着视频处理的中间结果应尽量留在 DSP 内部不要频繁搬去 DDR这是 RV1108 上做算法移植时最重要的一个约束。我见过有人在 RV1108 上跑自定义 ISP 算法第一版中间缓冲全放 DDR帧率卡在 20fps把行缓冲拆小、按行流水搬进 D-TCM 之后才跑满 30fps。内存层次上datasheet 把存储分成片上与片外两类关键参数如下表存储单元容量/规格说明BootROM10KB支持从 8bit 异步 NAND、SPI、eMMC、SDMMC 启动内部 SRAM12KB启动早期代码运行空间DDR3/DDR3L16bit、1 rank、最大 512MB兼容 JEDEC DDR3-1600 / DDR3L-1600异步 NAND8bit、硬件 ECC 16bitDMA 方式搬运数据eMMC8bit、MMC4.51支持从 eMMC boot 分区启动SD/MMC4bit、SD3.0 / MMC4.51块大小 1~65535 字节这里值得注意NAND 只支持 8bit 异步接口不支持 ONFI toggle 同步模式硬件 ECC 做 16bit 校验。选 NAND 颗粒时别拿同步时序型号去接datasheet 虽然允许配置接口时序但上限是按异步 8bit 设计的这一点在量产选型时经常被忽略。2.2 四路摄像头与 1440p 编码的带宽账RV1108 支持 H.264 编码/解码到 1440p最多 4 路摄像头同时输入可以把不同摄像头源拼接后显示在一块屏上。输入侧提供 MIPI-CSI、CVBS in、12-bit 并行 RAW输出侧提供 MIPI-DSI、HDMI 1.4、CVBS out、串行/并行 RGB。选型阶段最容易纠结的就是到底用几路 MIPI、每路几个 lane。先用一段 Python 快速估算四路 1080p30 RAW 的带宽需求# 四路 1080p30 RAW12 视频输入带宽估算 w, h, fps 1920, 1080, 30 bpp 12 # 常见 sensor 输出 RAW12 per_cam_mbps w * h * fps * bpp / 1e6 total_mbps per_cam_mbps * 4 ddr_bw_mbps 1600 * 16 # DDR3-1600 数据率 1600MT/s位宽 16bit print(f单路 RAW 带宽: {per_cam_mbps:.0f} Mb/s) print(f四路合计: {total_mbps:.0f} Mb/s) print(fDDR3-1600/16bit 理论带宽: {ddr_bw_mbps / 1000:.1f} Gb/s)参数说明bpp 是每像素比特数ISP 做去马赛克之前一般按 12bit 算w、h、fps 是分辨率与帧率。DDR3-1600 位宽 16bit理论带宽 25.6Gb/s四路 RAW 输入合计约 3Gb/s加上 H.264 编码的参考帧读写内存带宽仍然充裕。真正的瓶颈在 MIPI-CSI 的 lane 数和时钟具体上限要查 datasheet 3.12 和 3.13 的 MIPI 电气特性表那两张表给出的是每 lane 数据率约束比 SoC 宣传规格更值得信。2.3 启动路径与系统形态的选择BootROM 只有 10KB能做的事有限从 8bit 异步 NAND、SPI、eMMC、SDMMC 加载下一级代码或者通过 USB OTG 下载。这引出两个实践问题。第一开发早期用 SPI NOR 或 eMMCNAND 虽然有 16bit 硬件 ECC但坏块管理和随机读写性能都弱于 eMMC成本敏感才值得上SPI NOR Flash 的 datasheet 里有一组编程/擦除时间参数启动阶段要等 Flash 就绪优化启动时间时这些时序参数比 SoC 时钟配置更值得抠。第二RV1108 不是为 Ubuntu 桌面准备的Rockchip 在 Ubuntu 社区活跃的是 RK3588 这类旗舰核心板RV1108 更常见的形态是 RTOS 做视频管线、Linux 精简系统做网络和管理的组合。A7 单核加 128KB L2 跑完整桌面系统没有意义但跑裁剪后的 Linux 内核做网络摄像头推流是够的。实际项目中视频通路sensor 采集、ISP、编码跑在 DSP 和硬件模块上Linux 只负责网络与管理面两者通过共享内存交换帧数据这套模型在安防摄像头方案里已经很成熟。评估代码量时要注意SDK 里视频链路的配置参数分散在多个初始化结构体里改动一个分辨率往往要联动调三四处的配置调试时建议按 datasheet 的时钟树逐级核对。3. BGA359 封装与电源/地引脚核对从 Ball Map 到原理图检查3.1 型号差异与顶标识别datasheet 2.1 订购信息和 2.2 顶标把型号分成 RV1108A、RV1108G、RV1108K 三档。其中 G 版本在封装内部直接集成 16bit DDR3 颗粒datasheet 原话是“with 16bit DDR3 chip to meet a high-performance up to 800MHz and make cost lower”省掉了 PCB 上外挂 DDR3 颗粒的面积也把信号完整性风险收进了封装内部。A 版本需要外接 DDR3/DDR3L。K 版本是 1.4 修订时新增的。型号封装内存方案适用场景RV1108ABGA359外挂 DDR3/DDR3L需要自定义内存容量或更换颗粒RV1108GBGA359内置 16bit DDR3低成本、省 PCB 面积RV1108KBGA3591.4 版本新增具体配置以订购信息为准这个差异直接决定 PCB 层数和布线策略选 G 版本主控到 DDR 的走线完全消失四层板就够选 A 版本外挂 DDR3至少要考虑六层板以及等长、参考平面连续这些约束。顶标丝印上 A/G/K 一眼可分采购入库和贴片回板时第一件事就是核对丝印别把外挂 DDR 版本的物料贴到省成本设计的板上。另外1.5 版修订的就是标记信息说明生产端调整过丝印格式产线如果有视觉检测设备丝印模板要更新到 V1.5 的格式否则老模板可能误判新批次物料。3.2 Ball Map 与 Pin List 的配合使用BGA359 的 ball map 在 2.4 节pin list 在 2.5 节。画原理图时以 2.7 Pin Description 为准ball map 只用来确认球位坐标和扇出方向。为什么强调这个1.3 版本的修订内容就是“update ball map information”说明 ball map 存在修订历史旧图纸如果直接从 1.0 版本抄新批次芯片可能对不上球位。引脚功能则以 2.8 IO Pin Name Description 和 2.9 IO Type 为准IO Type 决定引脚是输入、输出、开漏还是带上下拉原理图符号错一个layout 阶段很难发现。拿到 PDF 后我一般先写一个小脚本把 2.5 节的 pin list 提取出来按电源、地、功能分组import pdfplumber from pathlib import Path pdf_path Path(Rockchip_RV1108_Datasheet_V1.5-20191107.pdf) with pdfplumber.open(pdf_path) as pdf: for page in pdf.pages: # Pin List 跨多页按页码区间过滤请按实际 PDF 分页调整 if not (31 page.page_number 37): continue for table in page.extract_tables(): for row in table: if not row or len(row) 3: continue name row[1] or if any(k in name for k in (VCC, VDD, GND)): print(fp{page.page_number:02d} | {row[0]:6s} | {name:12s} | {row[2] or })参数说明extract_tables() 把页面里表格按行切出row[0] 是 ball 编号row[1] 是引脚名row[2] 是类型或功能描述页码区间要根据手上 PDF 的实际分页调整不同阅读器渲染的页码会有偏移。跑完把输出的电源地引脚逐项和原理图 netlist 对照能提前抓出漏接的电源引脚——BGA 封装的电源地引脚数量多且分散这是原理图评审里最容易犯的低级错误。命令行环境下也可以用 pdftotext 快速过一遍电源引脚分布pdftotext -layout Rockchip_RV1108_Datasheet_V1.5-20191107.pdf rv1108.txt grep -E VCC|VDD|AVDD|DVDD rv1108.txt | sort | uniq -c-layout 参数保留原始版面布局grep 把电源相关引脚统计出来几秒钟就能对电源域的数量有个整体概念。接下来要看 ball map 的另一个用途PCB fanout。BGA359 有三百多个球内排球要打过孔逃逸到内层如果布局阶段没把 DDR、MIPI 这些高速接口的 ball 区域对应到合适方向后期扇出会非常痛苦。我一般先把 ball map 转成坐标文件导入 Allegro 或 KiCad把高速接口分组标色再决定主控摆放角度。3.3 电源滤波与去耦的实操顺序电源引脚分组确认后下一步是滤波。RV1108 的电源引脚在 2.6 节有专门表格模拟电源、DDR 电源、IO 电源分得很清楚。我的顺序是先把每种电源域的引脚全部提取出来按 PCB 布局分区再去确定去耦电容的容量组合高频小容量电容贴近引脚放置较大容值储能电容放在电源入口。这里有一个 datasheet 不一定会写但实际一定会遇到的问题MLCC 的谐振频率点 datasheet 一般不直接提供只能靠厂家阻抗曲线或仿真工具确认选去耦电容时要注意避开工作频点附近的阻抗尖峰。同容量 0402 和 0603 封装的谐振点相差很大不能只看容值就下单。注意去耦电容的谐振频点与容值、封装、介质相关电源滤波网络设计完成后建议用阻抗曲线仿真的方式验证一下目标阻抗是否满足。4. 电气特性与热设计把 Datasheet 表格变成设计约束4.1 从绝对最大额定值到降额设计Table 3-1 的绝对最大额定值和 Table 3-2 的推荐工作条件是所有分析的基准。绝对最大额定值给出的是不可长期工作的应力极限超过它芯片可能永久损坏推荐工作条件才是设计输入。工程上常见的错误是拿绝对最大额定值当“偶尔超一下没事”的容忍度电源纹波、负载瞬态、热插拔冲击都要在这个边界内考虑。RV1108 的数字通用 IO 电气特性在 3.4 节电平、上下拉、驱动能力都在这一节定义。不同电源域的 IO 电压可能不同设计时要先确认每个 GPIO 属于哪个电源域再决定电平转换方案。驱动强度也不是越大越好过强的驱动会带来振铃和 EMI一般根据负载电容选择最小能满足上升沿要求的档位。另外 3.11 的 TSADC、3.14 的 SARADC 这类转换器相关电气特性决定了传感器分压网络的取值。比如用 SARADC 做电池电压检测分压电阻精度直接决定检测误差SARADC 的输入阻抗和采样电容参数会影响分压网络设计——采样瞬间的电荷注入会让电压跌落常见做法是加大外部电容或者在软件里做多次采样取平均。4.2 DDR3/DDR3L 接口的特性与布线约束DDR3/DDR3L 部分有独立电气特性表3.7 节涵盖输出阻抗、ODT、时序参数。RV1108 支持可编程输出阻抗和 ODT 阻抗并带动态 PVT 补偿温度和电压变化时自动修正。这个特性对量产很重要温度变化导致信号完整性漂移时ODT 自动调整省去逐板手动调参。DDR3 设计参数RV1108 规格设计含义数据宽度16bit1 rank一组 DQ 总线一组片选最大容量512MB超出需换主控速率DDR3-1600 / DDR3L-1600时钟 800MHz数据率 1600MT/sODT/驱动可编程PVT 补偿启动阶段配置量产免调布线时地址/控制线和数据线要分组等长数据线按 byte lane 分组组内等长误差控制在 ±20mil 以内是常见做法DDR 供电用独立电源层VREF 走线远离开关节点。DDR3L 比 DDR3 电压低 0.15V功耗更小RV1108 同时兼容两者。选型注意DDR3L 在 1.5V 下也能工作但反过来不行。产品有低功耗要求时供电轨直接按 1.35V 设计颗粒选 DDR3L省掉后续改板。4.3 结温估算与散热方案datasheet 第 4 章给出了封装热特性参数。拿到 θJA 之后结温估算就是一个简单的计算。下面这段用示例参数演示计算方法真实 θJA 以你手上 V1.5 文档 4.2 节表格为准# 结温估算θJA 取值以 datasheet 4.2 节 Thermal Resistance 表为准 power 2.8 # W整机功耗实测值或按模块累加 theta_ja 24.0 # °C/WBGA359 的典型 θJA具体按封装报告 t_amb 60 # °C产品内部环境温度不是室温 t_junction t_amb power * theta_ja print(f估算结温: {t_junction:.1f} °C) if t_junction 105: print(需要加强散热增加散热焊盘过孔或加散热片) else: print(结温在预留余量的范围内)参数说明power 是 RV1108 整颗芯片的功耗视频编码跑满时的功耗比待机高很多要用编码场景的实测值不要用规格书里的典型待机功耗。θJA 受 PCB 铜皮面积、过孔数量、是否有散热片影响datasheet 给的是参考条件如果板子散热条件差实测结温可能比计算值高。BGA359 的散热路径主要靠底部焊盘和地过孔阵列导到内层地平面layout 阶段就要把过孔阵列留够散热焊盘的过孔数量直接决定热阻上限这一步没做好的话后续只能加散热片补救。5. 版本核对、Flash 启动配置与 DDR 初始化验证5.1 修订历史哪一版能信RV1108 的 datasheet 从 1.0 到 1.5 改了六版修订历史本身就是设计依据版本日期更新内容对设计的影响1.02017-01-10初始发布早期设计基线1.12017-03-20更新功能性修正1.22017-04-01更新 IO 信息引脚功能可能变化需重新核对1.32017-08-14更新 ball map球位信息修正PCB 封装库要对照1.42018-06-11新增 RV1108K新增型号物料替代需确认1.52019-11-07更新标记信息顶标识别以此版为准1.2 和 1.3 改的是 IO 和 ball map这意味着原理图如果是 2017 年初的版本直接拿新批次芯片存在引脚定义或球位对不上的风险。硬件改版时先拿 1.5 的 pin list 和旧 netlist 做一次 diff再投板。V1.5 之后功能冻结这份文档可以作为稳定的设计基线。5.2 用串口日志验证 DDR 初始化DDR 初始化是上电后最先跑通的环节之一。常见做法是在开发板上用 USB 转串口工具连接调试串口上电瞬间抓取 boot ROM 打印Rockchip 方案的 miniloader 或 U-Boot 阶段会输出 DDR 相关日志。DDR 初始化失败通常有两种现象日志在 DDR 训练处中断或者芯片反复复位。先确认 DDR 供电轨电压落在推荐范围内再检查 ODT/驱动强度配置与实际颗粒型号是否匹配。抓日志我一般用 Python 的 pyserial比 minicom 更方便做时间戳和自动保存import serial, time ser serial.Serial(/dev/ttyUSB0, 115200, timeout0.1) with open(boot_ddr_check.log, wb) as out: deadline time.time() 60 while time.time() deadline: chunk ser.read(4096) if chunk: out.write(chunk) print(chunk.decode(ascii, errorsignore), end) if bDDR in chunk and bOK in chunk: break参数说明timeout 设为 0.1 秒避免阻塞抓 60 秒内的日志出现包含 DDR 和 OK 的关键行提前结束。如果 60 秒内没有任何输出先检查串口电平是否匹配再检查 boot 引脚配置是否正确选择了 eMMC 或 SPI 启动。日志里除了 DDR 初始化结果还会打印启动设备、时钟频率等信息这些内容可以和 datasheet 的推荐工作条件互相验证。拿到稳定日志后建议把它和 V1.5 文档里对应的电气参数放一起归档作为这批物料的验证基线。本文还有配套的精品资源点击获取