嵌入式分享#31:比I2C快10倍!RK3576的I3C你用了吗?
I3C 全称为 Improved Inter-Integrated Circuit,即改进型的 I2C。它是由 MIPI(Mobile Industry Processor Interface)移动产业处理器接口联盟推出的,旨在改进传统 I2C 总线的局限性(将 I2C 和 SPI 的优势性能都整合到一起了),以满足现代物联网设备和嵌入式系统对更高性能、更灵活设备管理及更高效功耗管理的需求。
最近发现 RK3576 居然有 I3C 接口,I2C 还没搞明白,现在 I3C 都出来了,赶紧看看 I3C 是个什么东西。
目录:
1. 什么是 I3C;
2. I3C 关键特性;
3. RK3576 上的 I3C;
4. I3C 能完全取代 I2C 吗?
1. 什么是 i3c?
I3C 全称为 Improved Inter-Integrated Circuit,即改进型的 I2C。它是由 MIPI(Mobile Industry Processor Interface)移动产业处理器接口联盟推出的,旨在改进传统 I2C 总线的局限性(将 I2C 和 SPI 的优势性能都整合到一起了),以满足现代物联网设备和嵌入式系统对更高性能、更灵活设备管理及更高效功耗管理的需求。
2. I3C 关键特性
下面是官方文档给出的 I3C 关键亮点:

翻译过来就是:
-
集 I2C 与 SPI 美貌于一身;
-
减少信号引脚:带内中断,从设备无需额外中断引脚;
-
高性能:最高传输速率可达 12.5Mbps,远高于 I2C 的 400kbps 或 3.4Mbps(高速模式);
-
低功耗:具有先进的低功耗模式,设备在睡眠模式下电流仅为 μA 级;
-
低电磁干扰:差分传输、推挽输出、低工作电压都是体现该特性的关键;
-
向下兼容 I2C:但不兼容 10bit 的 I2C 扩展地址。
当前 MIPI I3C 最新使用版本为v1.2。

3. RK3576 的 I3C
RK3576 芯片拥有 2 个 I3C 控制器,支持以下功能:
-
支持 I3C 总线主模式,纯 I3C 设备传输速率高达 12.5Mbit/s;
-
兼容 I2C 总线主模式,纯 I2C 设备传输速率高达 400K bit/s;
-
支持 7 位和 10 位寻址模式。
硬件电路设计:
工作于 I3C 兼容 I2C 模式时,需要用到 3 个 Pin,分别是 I3C_SCL、 I3C_SDA、 I3C_SDA_PU,其中I3C_SDA 通过上拉电阻接到 I3C_SDA_PU, I3C_SCL 通过上拉电阻接到上拉电源, 上拉电源必须和 GPIO电源域电源保持一致。
当只需要工作于 I2C 模式时, 则只需要用到 2 个 Pin,分别是 I3C_SCL、 I3C_SDA,硬件接线方法和I2C 一样。

dts 配置
&pinctrl {
i3c0 {
/omit-if-no-ref/
i3c0m0_xfer: i3c0m0-xfer {
rockchip,pins =
/* i3c0_scl_m0 */
<0 RK_PC1 11 &pcfg_pull_none_smt>,
/* i3c0_sda_m0 */
<0 RK_PC2 11 &pcfg_pull_none_smt>;
};
/omit-if-no-ref/
i3c0m1_xfer: i3c0m1-xfer {
rockchip,pins =
/* i3c0_scl_m1 */
<1 RK_PD2 10 &pcfg_pull_none_smt>,
/* i3c0_sda_m1 */
<1 RK_PD3 10 &pcfg_pull_none_smt>;
};
};
};
&pinctrl {
i3c0 {
/omit-if-no-ref/
i3c0m0_xfer: i3c0m0-xfer {
rockchip,pins =
/* i3c0_scl_m0 */
<0 RK_PC1 11 &pcfg_pull_none_smt>,
/* i3c0_sda_m0 */
<0 RK_PC2 11 &pcfg_pull_none_smt>;
};
/omit-if-no-ref/
i3c0m1_xfer: i3c0m1-xfer {
rockchip,pins =
/* i3c0_scl_m1 */
<1 RK_PD2 10 &pcfg_pull_none_smt>,
/* i3c0_sda_m1 */
<1 RK_PD3 10 &pcfg_pull_none_smt>;
};
};
};
4. I3C能完全取代I2C吗?
最后有个问题,I3C 能完全取代吗?不能,至少短期内不能。原因如下:
(1)成本。 I2C设备的极致低成本难以被超越,且电路设计非常简单;
(2)生态。I2C 拥有超过40年的历史,积累了海量的、成熟可靠的、成本极低的 I2C 外设芯片(传感器、EEPROM、IO扩展器、ADC/DAC、RTC等)。几乎所有的微控制器(MCU)都内置了 I2C 控制器。它是最基础、最通用的低速外设接口之一。
(3)兼容性。I3C 的一个关键设计目标就是向后兼容标准模式的 I2C 从设备(Legacy I3C Slave)。这意味着一个 I3C 总线上可以同时挂载 I2C 设备和老的 I2C 设备。这是 I3C 取代 I2C 的一个重要策略和优势。正是由于这种向后兼容性,在实际系统中,混合使用 I3C 和 I2C 设备是常态,而不是例外。系统设计者无需将所有 I2C 设备立即替换成 I3C 版本,可以逐步过渡。完全替换掉所有现存 I2C 设备既不经济也不现实。
结论:未来趋势是互补共存,而非完全替代。
(完)
欢迎关注“嵌入式分享”,公众号持续更新!☞
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐


所有评论(0)