1. 为什么SC132GS在RV1103B上值得单独写一篇避坑指南
SC132GS这颗Sensor在RV1103B平台上属于典型的"看起来简单、配起来要命"的器件。它是一颗132万像素的全局快门CMOS图像传感器,MIPI CSI-2接口输出,常见于智能车视觉、工业扫码、机器视觉这类对运动模糊敏感的场景。RV1103B则是瑞芯微面向低功耗IPC和AI视觉终端推出的SoC,内置NPU、ISP和MIPI CSI接收控制器,主打的就是"小体积+低功耗+能跑轻量AI模型"。
把这两者凑到一起,理论上是很自然的组合:Sensor出图,SoC接收、处理、编码。但实际动手你会发现,设备树(Device Tree)这一关就能卡住不少人。原因不复杂——RV1103B的DTS文件结构、I2C挂载方式、MIPI CSI端口映射、时钟与复位GPIO的写法,跟RK3568、RK3588那套有相似之处但细节差异不小,网上能直接抄的完整示例又少。很多人第一次配的时候,要么I2C探测不到设备,要么Media Controller里看不到entity,要么出图花屏、绿屏、只有一半画面。
这篇内容就是把我自己在RV1103B上给SC132GS加设备树节点的完整过程拆开讲。适合两类人看:一类是刚拿到RV1103B开发板、想把SC132GS点亮的嵌入式新手;另一类是从RK3568/RK3588平台转过来、被"看起来差不多"的DTS坑过的老手。我会把每个节点为什么这么写、参数怎么算、哪些地方最容易翻车都讲清楚,尽量让你少走我走过的弯路。
需要提前说明的是,不同厂家的RV1103B核心板/开发板在GPIO编号、I2C总线号、MIPI CSI lane分配上可能有差异,下面给出的具体数值以我手头这块板子的原理图为准,你移植时一定要对照自己的原理图改。这是嵌入式调试的铁律,没有之一。
2. 动手前必须搞清楚的硬件与软件前提
2.1 硬件连接关系先理一遍
在写任何一行DTS之前,我习惯先把硬件关系画在纸上。SC132GS和RV1103B之间的连接无非这么几组:
- 供电:Sensor通常需要几路电源,SC132GS常见的是AVDD(模拟,约2.8V)、DVDD(数字核心,约1.2V)、DOVDD(IO,1.8V或2.8V)。这些一般由板载LDO或PMIC提供,DTS里通常不需要你直接管,但要知道它们存在,因为供电不对一切免谈。
- I2C:用于读写Sensor寄存器,SC132GS的7位从地址常见为0x30(写0x60/读0x61)。它挂在RV1103B的某一路I2C上,具体哪一路看原理图。
- MIPI CSI-2:图像数据通道,包含1对或2对差分数据lane加1对时钟lane。SC132GS常见配置是2 lane。
- MCLK:主时钟输入,通常由SoC的某个时钟输出引脚提供,频率常见24MHz。
- 复位(RESET)和电源使能(PWDN):两个GPIO,用于上电时序控制。
- 中断(可选):有些设计会接,但SC132GS在很多应用里用轮询或直接流式采集,不一定用中断。
这几组里,I2C、MIPI、MCLK、GPIO是DTS里必须体现的,缺一个都点不亮。
2.2 软件环境与内核版本确认
RV1103B的SDK一般基于Linux 5.10或相近版本的内核,瑞芯微的BSP里已经带了完整的V4L2 + Media Controller框架和Rockchip ISP驱动(rkisp)。你需要确认几件事:
- 内核版本:
uname -r,或者直接看SDK里的Makefile。 - 设备树目录:通常在
arch/arm/boot/dts/(RV1103B是ARM Cortex-A7,32位)或者arch/arm64/boot/dts/rockchip/,具体看SDK组织方式。RV1103B是32位核,所以大概率在arch/arm/boot/dts/下。 - 是否已有类似Sensor的DTS示例:SDK里一般会带
sc3336、gc2053之类的参考,这些是你最好的模板。
我强烈建议先grep一下SDK里现成的Sensor节点,比如:
grep -rn "sc3336" arch/arm/boot/dts/找到参考文件后,整个移植过程就变成了"照着改",而不是"从零编"。这一步能省你至少半天时间。
2.3 确认I2C地址和MIPI lane数
这两个参数如果搞错,后面所有调试都是白费。确认方法:
- I2C地址:查SC132GS数据手册,或者用
i2cdetect在总线上扫。前提是Sensor已经上电且MCLK有输出,否则扫不到。 - MIPI lane数:看原理图,SC132GS的MIPI输出lane数由寄存器配置决定,但硬件上走几对差分线是固定的。DTS里的
>&i2c3 { status = "okay"; clock-frequency = <400000>; sc132gs: sc132gs@30 { compatible = "smartsens,sc132gs"; reg = <0x30>; clocks = <&cru CLK_MIPI_CAMARAOUT_M2>; clock-names = "xvclk"; power-domains = <&power RV1103B_PD_VI>; pinctrl-names = "default"; pinctrl-0 = <&mipim0_camera2_clk>; reset-gpios = <&gpio1 RK_PB0 GPIO_ACTIVE_LOW>; pwdn-gpios = <&gpio1 RK_PB1 GPIO_ACTIVE_HIGH>; rockchip,grf = <&grf>; rockchip,camera-module-index = <0>; rockchip,camera-module-facing = "back"; rockchip,camera-module-name = "SC132GS"; rockchip,camera-module-lens-name = "default"; port { sc132gs_out: endpoint { remote-endpoint = <&mipi_in_sc132gs>; >reset-gpios = <&gpio1 RK_PB0 GPIO_ACTIVE_LOW>; pwdn-gpios = <&gpio1 RK_PB1 GPIO_ACTIVE_HIGH>;这两行的关键是极性。
GPIO_ACTIVE_LOW表示低电平有效,也就是驱动拉低这个GPIO时执行复位。GPIO_ACTIVE_HIGH表示高电平有效。极性搞反,Sensor要么一直复位,要么一直掉电。确认极性的方法:查原理图,看复位引脚是接上拉还是下拉,以及Sensor手册里复位是低有效还是高有效。SC132GS一般是复位低有效、PWDN高有效,但不同模组设计可能不同。
3.6 port/endpoint:MIPI链路描述
port { sc132gs_out: endpoint { remote-endpoint = <&mipi_in_sc132gs>; >&mipi_csi2 { status = "okay"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; #address-cells = <1>; #size-cells = <0>; mipi_in_sc132gs: endpoint@0 { reg = <0>; remote-endpoint = <&sc132gs_out>; >&rkisp { status = "okay"; ports { port@0 { reg = <0>; #address-cells = <1>; #size-cells = <0>; isp_in: endpoint@0 { reg = <0>; remote-endpoint = <&mipi_csi2_out>; }; }; }; };这样整条链路就是:SC132GS -> MIPI CSI2 -> ISP -> 视频节点(/dev/videoX)。任何一环断了,
media-ctl -p都能看出来。4.4 用media-ctl验证链路
DTS编译烧录后,第一件事不是急着出图,而是验证Media Controller链路:
media-ctl -p正常的话,你应该能看到类似这样的拓扑:
- entity 1: sc132gs 0-0030 (1 pad, 1 link) pad0: Source -> "rockchip-mipi-csi2":0 [ENABLED] - entity 2: rockchip-mipi-csi2 (2 pads, 2 links) pad0: Sink <- "sc132gs 0-0030":0 [ENABLED] pad1: Source -> "rkisp-isp-subdev":0 [ENABLED]如果某个link显示
[IMMUTABLE]或者根本没出现,说明DTS里的remote-endpoint没对上。如果entity出现了但link是disabled,可能是status没设成okay。5. 实操全流程:从改DTS到出图
5.1 第一步:找到并修改板级DTS
假设你的板级DTS是
rv1103b-myboard.dts,先确认它include了SoC级的dtsi:#include "rv1103b.dtsi"然后在文件末尾添加或修改I2C、MIPI CSI、ISP相关节点。我习惯把Sensor节点放在I2C节点内部,MIPI和ISP的修改放在文件靠后的位置,保持结构清晰。
5.2 第二步:编译设备树
RV1103B SDK一般用
make加dtb目标:make ARCH=arm rv1103b-myboard.dtb或者直接编译整个内核:
make ARCH=arm -j$(nproc)编译报错最常见的是语法问题,比如少了大括号、
#address-cells写错、引用了不存在的label。DTC的报错信息一般比较明确,照着改就行。5.3 第三步:烧录并检查probe
烧录dtb后重启,看内核日志:
dmesg | grep -iE "sc132gs|mipi|csi|rkisp"正常应该看到:
sc132gs 3-0030: probing... sc132gs 3-0030: Detected SC132GS sensor, id(0x1326) rockchip-mipi-csi2: probe success rkisp: probe success如果看到
probe failed或者根本没有sc132gs的日志,说明compatible没匹配上,或者I2C没通。5.4 第四步:I2C手动验证
在probe之前,可以先手动确认I2C:
i2cdetect -y 3如果0x30位置显示
30,说明I2C通了。显示--说明没通,回去查MCLK、复位、供电。5.5 第五步:配置Media Controller并出图
链路验证通过后,用
v4l2-ctl配置格式并抓帧:media-ctl -d /dev/media0 --set-v4l2 '"sc132gs 3-0030":0[fmt:SBGGR10_1X10/1280x720]' media-ctl -d /dev/media0 --set-v4l2 '"rockchip-mipi-csi2":0[fmt:SBGGR10_1X10/1280x720]' v4l2-ctl -d /dev/video0 --set-fmt-video=width=1280,height=720,pixelformat=BG10 v4l2-ctl -d /dev/video0 --stream-mmap --stream-count=10 --stream-to=frame.raw抓到的raw帧可以用工具转成图片查看。如果图正常,恭喜你,DTS配置成功。
5.6 参数选择记录表
下面是我这次配置的关键参数记录,供对照:
参数 值 说明 I2C总线 i2c3 对照原理图 I2C地址 0x30 7位地址 MCLK源 CLK_MIPI_CAMARAOUT_M2 对应物理引脚 MCLK频率 24MHz Sensor手册要求 复位GPIO gpio1 PB0 低有效 PWDN GPIO gpio1 PB1 高有效 > 版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!网站建设 2026/9/29 15:59:232026辽宁铝木窗选购指南:从保温原理到源头工厂避坑要点
2026年辽宁铝木窗选购,听起来像是个装修小决定,但我在沈阳和大连跑了十几家门窗厂之后,可以负责任地说一句:这件事的坑,远比大多数人想象得多。就拿去年冬天来说,我一位朋友家新装的断桥铝窗,窗…
李华
网站建设 2026/9/29 15:58:53基于STM32的智能鸽舍系统:抗干扰电路与嵌入式驯养实践
1. 项目概述:这不是玩具,是鸽舍里的“智能管家”你见过给鸽子装智能手环的吗?不是那种贴在腿上、三天就掉的装饰品,而是真正嵌入鸽舍结构、能实时感知鸽群状态、自动调节环境、记录个体行为、甚至干预异常活动的一整套硬件系统。这…
李华
网站建设 2026/9/29 15:58:50OpenCV分水岭算法与形态学后处理:粘连目标分割优化实战
简介:这份316页的PDF文档面向具备一定OpenCV基础的图像处理学习者与算法工程师,聚焦分水岭算法与形态学后处理相结合的图像分割优化方案,帮助解决传统分水岭算法过分割严重、区域边界不精确等实际痛点。文档共50个大章节,从图像分…
李华
网站建设 2026/9/29 15:57:07制造业供应链成熟度评估模型与集成计划流程框架落地指南
简介:这份PPT资料面向制造业集团供应链管理者、计划与运营岗位从业者,聚焦供应链管理成熟度评估与集成计划流程框架搭建。内容围绕多种订单组织方式并存、计划模式规则不清、集成计划以职能为中心、采购执行多部门多窗口等痛点,给出顶层设计、…
李华
网站建设 2026/9/29 15:57:06智能零售柜商品检测实战:1000张图、三种标签格式与YOLO11三平台训练脚本
简介:这份资源面向智能零售柜商品检测方向的算法工程师与目标检测学习者,提供真实零售柜监控场景下采集的1000张高质量商品图片,覆盖罐装饮料、袋装零食等常见品类,标注类别达113个,可用于搭建商品识别项目,…
李华
网站建设 2026/9/29 15:56:50PHP+uniapp高校社团管理小程序开发全流程详解
我在接到这个高校社团管理小程序的需求时,第一反应不是列技术清单,而是先想清楚一件事:这个系统到底是给谁用的,大学里一个社团从招新到日常运营,到底有哪些环节是真正需要被“管理”起来的?如果只做一个“社团介绍活…
李华