计算模块(CM)硬件
树莓派 计算模块(CM) 是标准树莓派单板计算机(SBC)的紧凑版本,主要面向嵌入式和工业应用设计。计算模块包含树莓派的核心组件,但省略了HDMI、USB或以太网等标准接口。
树莓派 计算模块I/O扩展板(CMIO) 提供物理接口、外围设备连接及扩展选项,用于访问和扩展计算模块的功能。该扩展板既可作为独立产品使用,支持快速原型开发和嵌入式系统构建,也可作为自定义载板(I/O板)的参考设计方案。无论哪种方式,您均可根据应用需求选择性使用所需接口。
本页面内容:
- 汇总现有树莓派计算模块及I/O板型号,包含兼容性与核心特性信息
- 介绍计算模块5(CM5)及其I/O板(CM5IO)的配套配件
- 说明树莓派计算模块的刷写与启动流程
- 详解计算模块EEPROM引导程序的配置方法
- 指导如何通过设备树与覆盖层连接并启用摄像头、显示屏等外设
- 提供数据手册、原理图及设计资源的链接
计算模块
树莓派计算模块是旗舰级树莓派单板计算机(SBC)的 系统级模块(SoM) 版本。它们专为工业和商业应用设计,例如数字标牌、瘦客户端和流程自动化。许多开发者和系统设计师选择计算模块而非旗舰树莓派型号,正是看中其紧凑设计、灵活性以及对板载eMMC存储的支持。
内存、存储与无线版本
树莓派计算模块提供多种版本,差异体现在内存规格、嵌入式多媒体卡(eMMC)闪存容量(焊接于主板)以及无线连接功能(Wi-Fi和蓝牙)。
- 内存:计算模块1、3 及3+提供固定容量的RAM。计算模块4、4S和5提供不同容量的RAM;具体选项详见本页面各型号专属章节。
- 存储:计算模块3、3+、4、4S和5提供多种存储方案,后期型号较早期型号提供更多选项及更大容量。计算模块1固定配备4GB存储空间。存储采用eMMC闪存,具备低功耗特性,内置增强可靠性的功能。无板载存储的型号后缀为Lite或L,例如
CM5Lite或CM3L。 - 无线:计算模块4和5提供可选Wi-Fi及蓝牙支持。
型号一览
下表按时间倒序汇总了树莓派计算模块,列出其SoC、GPU、CPU及外形规格以便快速参考。有关各型号的详细信息(包括内存和存储选项),请参阅本页后续专属章节。
| 型号 | 基于 | SoC | GPU | CPU | 外形规格 |
|---|---|---|---|---|---|
| CM5 (2024) | 树莓派5 | 博通BCM2712 | VideoCore VII | 4×Cortex-A76(2.4 GHz) | 双100针接口 |
| CM4S (2022) | 树莓派4B(采用CM3外形规格) | 博通BCM2711 | VideoCore VI | 4×Cortex-A72 1.5 GHz | DDR2 SODIMM |
| CM4 (2020) | 树莓派4B | 博通BCM2711 | VideoCore VI | 4×Cortex-A72 1.5 GHz | 双100针接口 |
| CM3+ (2019) | 树莓派3B+ | 博通BCM2837B0 | VideoCore IV | 4 × 1.2 GHz Cortex-A53 | DDR2 SODIMM |
| CM3 (2017; 2025年10月停产) | 树莓派3B | 博通BCM2837 | VideoCore IV | 4 × 1.2 GHz Cortex-A53 | DDR2 SODIMM |
| CM1 (2014) | 树莓派B型 | 博通BCM2835 | VideoCore IV | 1×ARM1176JZF-S 700 MHz | DDR2 SODIMM |
| CM0 (2025) | 树莓派Zero 2W | RP3A0 | VideoCore IV | 4×Cortex-A53 1 GHz | 39x33mm 超小型邮票孔核心板 |
计算模块 5 (CM5)
计算模块5
计算模块5(CM5)融合了树莓派5的核心组件与可选闪存存储。主要特性包括:
- 处理器:博通BCM2712。
- 内存选项:2 GB、4 GB、8 GB 或 16 GB RAM。
- 存储选项:0 GB(CM5Lite)、16 GB、32 GB 或 64 GB eMMC 闪存。
- 外形规格:配备两个 100 针高密度连接器,用于连接配套载板。
CM5采用与CM4相同的规格,提供超越标准树莓派主板的输入/输出(I/O)接口,为更复杂的系统和设计提供扩展选项。
计算模块 4S (CM4S)
计算模块4S
计算模块4S(CM4S)整合了树莓派4的核心组件并支持可选闪存存储。主要特性包括:
- 处理器:博通BCM2711
- 内存选项:1GB、2GB、4GB或8GB RAM
- 存储选项:0 GB(CM4SLite)、8 GB、16 GB 或 32 GB eMMC 闪存。
- 外形规格:标准 DDR2 SODIMM 模块。
与 CM4 不同,CM4S 延续了 CM1、CM3 和 CM3+ 采用的 DDR2 SODIMM 外形规格。
计算模块 4 (CM4)
计算模块4
计算模块4(CM4)融合了树莓派4的核心组件与可选闪存存储。主要特性包括:
- 处理器:博通BCM2711。
- 内存选项:1 GB、2 GB、4 GB 或 8 GB RAM。
- 存储选项:0 GB(CM4Lite)、8 GB、16 GB 或 32 GB eMMC 闪存。
- 外形规格:配备两个100针高密度连接器,用于连接配套载板。
- 温度范围选项:标准型号工作温度为-20°C至+85°C,宽温型号支持-40°C至+85°C。
与早期模块(CM1、CM3、CM3+)不同,CM4摒弃了DDR2 SODIMM外形规格,采用双100针高密度连接器布局,从而缩小了物理占用空间。此项重新设计支持以下新增功能:
- 双HDMI接口
- PCIe支持
- 以太网接口
计算模块 3+ (CM3+)
计算模块3+
计算模块3+(CM3+)融合了树莓派3 Model B+的核心组件与可选闪存存储。主要特性包括:
- 处理器 博通BCM2837B0。
- 内存:1 GB RAM。
- 存储选项:0 GB(CM3+Lite)或8 GB、16 GB、32 GB eMMC闪存。
- 外形规格:标准DDR2 SODIMM模块。
计算模块 3 (CM3)
计算模块3
计算模块3(CM3)整合了树莓派3的核心组件,并可选配4 GB闪存存储。主要特性包括:
- 处理器:博通BCM2837
- 内存:1 GB RAM
- 存储选项:0 GB(CM3Lite)或4 GB eMMC闪存
- 外形规格:标准DDR2 SODIMM模块。
计算模块 1 (CM1)
计算模块1
计算模块1(CM1)集成了树莓派B型主板的核心组件及4 GB闪存存储。主要特性包括:
- 处理器:博通BCM2835
- 内存:512 MB RAM
- 存储:4 GB eMMC闪存
- 外形规格:标准DDR2 SODIMM模块
计算模块 0 (CM0)
计算模块0
计算模块 0(CM0)包含 Raspberry Pi RP3A0 处理器,主要特性包括:
- 处理器:博通BCM2710A1
- 内存:512 MB RAM
- 存储选项:0 GB或8 GB、16 GB eMMC闪存。
- 外形规格:39x33mm 超小型邮票孔核心板
IO 板
树莓派计算模块I/O扩展板是配套的载板,为计算模块提供连接各类输入/输出(I/O)外设所需的接口。该扩展板具备以下功能:
- 为计算模块供电。
- 将通用输入/输出(GPIO)引脚连接至标准针脚排针,便于连接传感器或电子设备。
- 通过扁平柔性电缆(FFC)接口提供摄像头和显示屏连接功能
- 通过HDMI接口输出视频信号
- 通过标准USB接口连接外围设备
- 配备电源及运行状态指示LED灯
- 支持通过USB对eMMC存储器进行编程,实现模块内置存储器的刷写
- 在CM4IO和CM5IO上,通过连接器暴露PCIe接口,以便连接SSD或网卡等存储/外设设备。
树莓派IO板是通用开发板,专为计算模块的开发、测试和原型设计而打造。实际生产中,您可设计更小巧的定制载板,仅保 留符合应用场景所需的连接器。
IO板兼容性
并非所有IO板均兼容所有计算模块型号。下表按时间倒序汇总了树莓派计算模块IO板,列出其兼容的计算模块(含精简版)、电源输入及尺寸。有关各板卡的详细信息(包括可用接口),请参阅本页后续专属章节。
| IO板卡 | 兼容CM型号 | 电源输入 | 尺寸 |
|---|---|---|---|
| CM5IO (2024) | CM5; CM4功能受限 | 5V(通过USB Type-C供电) | 160毫米×90毫米 |
| CM4IO (2020) | CM4; 功能缩减版CM5 | 通过GPIO接口获取5V电源 或 通过DC桶形插座获取12V电源 | 160毫米×90毫米 |
| CMIO3 (2017) | CM1, CM3, CM3+, 及 CM4S | 通过GPIO或微型USB接口供电5V | 85毫米×105毫米 |
| CMIO; CMIO1 (2014) | CM1 | 通过GPIO或微型USB接口供电5V | 85毫米×105毫米 |
计算模块 5 IO 板
计算模块 5 IO板
计算模块5 I/O板(CM5IO)提供以下功能:
- 电源与控制接口
- USB-C供电采用与树莓派5相同标准:5V/5A(25W)或5V/3A(15W),外设电流限制为600mA。
- CM5专用电源按钮。
- 实时时钟(RTC)电池座。
- 视频与显示接口
- 两个HDMI接口。
- 两个MIPI DSI/CSI-2复合显示/摄像头柔性板接口(22针,0.5毫米间距线缆)。
- 网络与连接接口
- 两个USB 3.0(Type-A)接口,用于键盘、存储设备或外设。
- 一个USB 2.0(Type-C)接口,用于CM5刷写或扩展外设。
- 一个支持PoE的千兆以太网RJ45接口。
- 扩展与存储选项
- 兼容2230/2242/2260/2280规格的M.2 M键PCIe插槽。
- microSD卡槽(仅限无eMMC的CM5Lite型号使用,其他型号忽略此插槽)。
- 带40针GPIO接口的HAT扩展板位。
- PoE电源接口。
- 配置选项
- 跳线开关可禁用eMMC启动、EEPROM写入及无线连接等功能。
- 可选1.8V或3.3V GPIO电压。
- 风扇接口 四针JST-SH PWM风扇接口。
计算模块 4 IO 板
计算模块4 IO板
计算模块4 I/O板(CM4IO)提供以下功能:
- 电源与控制接口
- 通过GPIO接头提供5V电源,或通过桶形插座输入12V电源;若PCIe未启用,支持最高26V输入。
- 实时时钟(RTC)电池座。
- 视频与显示接口
- 两个HDMI接口。
- 两个MIPI DSI显示器柔性电缆接口(22针,0.5毫米间距)。
- 两个MIPI CSI-2摄像头柔性电缆接口(22针,0.5毫米间距)。
- 网络与连接接口
- 两个USB 2.0接口。
- 一个micro USB上游端口。
- 支持PoE的千兆以太网RJ45接口。
- 扩展与存储选项
- PCIe Gen 2插槽。
- microSD卡槽(仅适用于无eMMC的CM4Lite型号;其他版本忽略此插槽)。
- 带40针GPIO接口的HAT扩展区。
- PoE接口。
- 配置选项
- 跳线开关可禁用eMMC启动、EEPROM写入及无线连接等功能
- 可选1.8V或3.3V GPIO电压
- 风扇接口 支持标准12V风扇的PWM驱动接口
计算模块 IO 板
计算模块 IO板(版本3)
计算模块I/O板有两种版本:
计算模块I/O板(CMIO和CMIO3)提供以下功能:
- 电源与控制接口 通过GPIO或micro USB接口输入5V电源。
- 视频与显示接口
- 1个标准A型HDMI接口。
- 2个MIPI DSI显示器柔性电缆接口(22针,0.5毫米间距)。
- 2个MIPI CSI-2摄像头柔性电缆接口(22针,0.5毫米间距)。
- 网络与连接接口 1个USB 2.0 Type-A接口。
- 扩展与存储选项
- 46个GPIO引脚。 *(仅CMIO3)microSD卡槽(仅适用于未配备eMMC的CM3Lite、CM3+Lite及CM4SLite型号)。
计算模块 0 IO 板
计算模块0 IO板
计算模块 0 IO 板提供以下接口:
- 带 40 引脚 GPIO 连接器的 HAT 基底面
- HDMI 端口
- 1× Micro USB2.0 端口
- 1× Micro USB2.0 电源端口
- 1× MIPI DSI 显示器 FPC 连接器(22 针 0.5 毫米间距电缆)
- 1× MIPI CSI-2 摄像头 FPC 连接器(22 针 0.5 毫米间距电缆)
CM5 和 CM5IO 配件
树莓派为CM5和CM5IO提供以下配件:
- CM5IO外壳,一款为CM5IO(及连接的CM5)设计的两件式金属外壳。该外壳还可选配天线和散热器。
- 天线(CM4和CM5),支持2.4 GHz和5 GHz频段的天线,通过CM4或CM5实现无线连接。
- CM5散热器,用于散发CM5热量的被动式散热片。
CM5IO 外壳
Compute Module 5 IO 板 外壳
计算模块5 I/O板外壳为CM5IO及其连接的CM5提供物理保护,包含:
- 面向外部的连接器和LED开孔。
- 可拆卸预装可控风扇
- 树莓派天线套件安装点
- CM5散热器安装空间
- 用于连接I/O板配件的空间(如M.2 SSD或PoE+ HAT+)
Compute Module 5 IO 板 外壳接口
CM5IO机箱采用双件式结构,组装后尺寸为170毫米×94毫米×28毫米。机箱由金属板材制成,重量约350克。为实现热管理,机箱内置风扇可将气流导向CM5和CM5IO组件。您可根据散热需求拆卸或更换风扇。您还可选配 CM5散热器 以提升散热性能。
CM5 外壳物理规格
在机箱内安装CM5IO:
- 将CM5连接至CM5IO* 将CM5向右旋转90度,使CM5上的双100针连接器与CM5IO上的连接器对齐,然后轻轻但稳固地按压以连接。安装孔也应保持对齐。
- 打开机箱 使用十字螺丝刀拧下并取下四颗螺丝(机箱左侧两颗,右侧两颗)。随后将机箱顶盖与底座分离,请妥善保管螺丝。
- 将CM5IO组件装入机箱 将CM5IO(含已连接的CM5主板)置于机箱底座,使其与主板四角附近的四个安装孔对齐。确保所有外置接口均与机箱前部的对应开孔对齐。随后使用四颗M2.5螺丝拧入四个安装孔,将CM5IO组件固定在底座上。
- 连接或拆卸风扇
- 若使用预装风扇,请将风扇接口插入CM5IO上标注为**FAN (J14)**的四针风扇插座。
- 若需拆卸风扇,请从机箱顶部底面卸下风扇四角的固定螺丝。
- 可选:安装外部天线 如需安装天线,请参照本页天线安装指南(CM4/CM5适用)操作。
- 可选:安装散热器 如需安装散热器,请参照CM5散热器安装指南操作。若同时安装天线,请先连接天线的U.FL 接口以方便后续操作。
- 可选:安装摄像头或显示屏 若使用摄像头或显示屏,请将扁平电缆穿过机箱背部的插槽,并连接至CM5IO主板上的CAM/DISP接口。
- 可选:安装M.2固态硬盘 若需安装M.2固态硬盘,请将其插入CM5IO右下角的M.2插槽,并用固定螺丝从对侧端面锁紧。
- 可选:安装扩展板 若需安装扩展板,请将其与40针GPIO接口及固定柱对齐,确保扩展板覆盖电池槽位置,随后用力按压到位并用螺丝固定。
- 关闭机箱盖 将机箱顶盖翻折至底座,对齐机箱左右两侧的螺丝孔位及背面的电源按钮。使用十字螺丝刀将四颗螺丝拧回原位,注意避免过度拧紧。
SD卡槽采用推入式设计。插入SD卡时,请将卡面接触点朝下推入卡槽。取出时,先向卡槽内部推压卡体使其解锁,再向外拔出。
天线(CM4和CM5)
Raspberry Pi 天线套件提供经过认证的外部天线,可增强 CM4 或 CM5 的无线接收能力。
CM4 和 CM5 天线
该天线支持双频Wi-Fi,可连接至CM4或CM5主板的U.FL连接器。天线完全展开时高度为108毫米;SMA转U.FL连接线长度为205毫米。
CM4和CM5天线物理规格
您可将天线与 CM5IO外壳 配合使用。若需通过CM5IO外壳将天线连接至计算模块,请先完成 CM5IO外壳中前四步操作,再执行以下步骤:
- 连接U.FL接口 将天线线缆上的U.FL接口连接至计算模块左上角安装孔旁的U.FL兼容接口。若需安装散热器,请在此步骤前完成连接,因散热器可能影响U.FL接口的安装。
- 插入SMA连接器 取下CM5IO外壳内侧天线端口的橡胶塞。随后从外壳内部将SMA连接器(平坦面朝上)推入天线端口,确保其穿透外壳且外部可触及。
- 固定SMA连接器位置 顺时针旋转六角锁紧螺母及垫圈,直至SMA连接器稳固就位。拧紧时避免过度扭转以防损坏。
- 连接天线至SMA接口 将SMA接口插入天线端口(天线朝外),顺时针旋转天线完成固定。
- 调整天线角度 将天线旋转至90度角,调整至最终安装位置。
现在可参照 CM5IO外壳 》完成后续步骤,将CM5IO主板安装至机箱内部 。
CM4 和 CM5 天线装配图
要在计算模块上使用天线,请在 /boot/firmware/config.txt 文件末尾添加以下 dtparam 指令:dtparam=ant2
CM5 散热器
CM5散热器是一款被动式散热器,可帮助散发CM5产生的热量,从而提升CPU性能并延长其使用寿命。
CM5 散热器
CM5散热器的尺寸为41毫米×56毫米×12.7毫米。该散热器采用铝制散热片结构,底部配有导热硅胶垫。新版 CM5IO外壳 支持在机箱内部同时使用散热器和预装风扇。若您使用的是旧版CM5IO外壳,必须拆卸外壳内的风扇以腾出散热器安装空间。
CM5 散热器物理规格
将散热器安装至CM5的方法:
- 撕去散热器底部硅胶垫上的保护纸。
- 将散热器底部的硅胶垫贴合于CM5顶部。放置时需确保散热器开孔位于板载天线(CM5左侧梯形区域)上方,并紧邻其旁的 U.FL连接器(若存在该接口)。
- 可选操作:在每个角部的安装点拧紧螺丝固定散热器。若不使用螺丝,散热器与CM5之间的粘合会随时间和使用逐渐增强。
烧录映像到CM
要将同一映像烧录入多个计算模块,请使用 Raspberry Pi Secure Boot Provisioner。要自定义操作系统映像以烧录到这些设备上,请使用 pi-gen。
Lite 版本的计算模块没有板载 eMMC。相反,请按照 安装操作系统 中为其他 Raspberry Pi 设备烧录存储设备的步骤进行操作。
先决条件
要烧录计算模块 eMMC,您需要以下设备:
- 另一台计算机,在本指南中称为 主机设备。您可以使用 Linux(我们推荐 Raspberry Pi OS 或 Ubuntu)、Windows 11 或 macOS。
- 计算模块 IO 板 与您的计算模块型号相对应。
- 微型 USB 数据线,或用于 CM5IO 之后的计算模块型号的 USB-C 数据线。
在某些情况下,USB 集线器会阻止主机设备识别 Compute 模块。如果主机设备无法识别 Compute 模块,请尝试将 Compute 模块直接连接到主机设备。有关更多诊断技巧,请参阅 usbboot故障排除指南。
安装 IO 板
首先,实际安装 IO 板。这包括将计算模块和主机设备连接到 IO 板。
- Compute Module 5 IO 板
- Compute Module 4 IO 板
- Compute Module IO 板
设置 Compute Module 5 IO 板:
- 将计算模块连接到 IO 板。连接后,计算模块应平放。
- 将
RPI_BOOT安装到 IO 板跳线 J2(禁用 eMMC 启动)上。 - 将电缆从 IO 板上的 USB-C 从端口 J11 连接到主机设备。
设置 Compute Module 4 IO 板:
- 将计算模块连接到 IO 板。连接后,计算模块应平放。
- 将
nRPI_BOOT安装到 IO 板跳线 J2(禁用 eMMC 启动)上。 - 将电缆从 IO 板上的微型 USB 从端口 J11 连接到主机设备。
设置 Compute Module IO 板:
- 将计算模块连接到 IO 板。连接时,计算模块应平行于电路板,啮合夹应卡紧到位。
- 将 J4(
USB SLAVE BOOT ENABLE)设为 1-2 =(USB BOOT ENABLED)。 - 将电缆从 IO 板上的微型 USB 从端口 J15 连接到主机设备。
设置主机设备
接下来,让我们在主机设备上设置软件。
对于主机设备,我们建议使用运行 64 位 Raspberry Pi OS 的 Raspberry Pi 4 或更新版本。
- Linux
- macOS
- Windows
在 Linux 主机设备上设置软件:
- 运行以下命令安装
rpiboot(或者,从源代码构建rpiboot)::
sudo apt install rpiboot
- 连接 IO 板电源。
- 然后运行
rpiboot:
sudo rpiboot
- 几秒钟后,计算模块应作为大容量存储设备出现。检查
/dev/目录,可能是/dev/sda或/dev/sdb。或者,运行lsblk查找存储容量与计算模块容量相匹配的设备。
在 macOS 主机设备上设置软件:
- 首先,从源代码构建
rpiboot。 - 连接 IO 板电源。
- 然后,使用以下命令运行
rpiboot可执行文件:
rpiboot -d mass-storage-gadget64
- 命令运行完成后,你应该会看到一 条信息,提示 "你插入的磁盘本计算机无法读取"。单击 忽略。现在,您的计算模块应显示为大容量存储设备。
在 Windows 11 主机设备上设置软件:
- 下载 Windows 安装程序 或 从源码编译
rpiboot。 - 双击安装程序运行。这将安装驱动程序和启动工具。请勿关闭安装过程中出现的任何驱动程序安装窗口。
- 重新启动
- 连接 IO 板电源。Windows 将发现硬件并配置所需的驱动程序。
- 在 CM4 及更高版本的设备上,从开始菜单中选择 Raspberry Pi - Mass Storage Gadget - 64 bit。几秒钟后,计算模块 eMMC 或 NVMe 将显示为 USB 大容量存储设备。这还提供了一个作为串口小工具的调试控制台。
- 在 CM3 和更旧的设备上,选择 rpiboot。双击
RPiBoot.exe运行它。几秒钟后,计算模块 eMMC 应显示为 USB 大容量存储设备。
或者,您也可以 从源代码构建 rpiboot。
烧录 eMMC
你可以使用 Raspberry Pi Imager 将操作系统映像烧录到计算模块。
或者,使用 dd 将原始操作系统映像(如 Raspberry Pi OS)写入计算模块。运行以下命令,将 /dev/sdX 替换为计算模块的大容量存储设备表示路径,将 raw_os_image.img 替换为原始操作系统映像的路径:
sudo dd if=raw_os_image.img of=/dev/sdX bs=4MiB
写入镜像后,断开并重新连接计算模块。现在你应该能看到两个分区(Raspberry Pi OS):
/dev/sdX <- 设备
/dev/sdX1 <- 第一个分区(FAT)
/dev/sdX2 <- 第二分区(Linux 文件系统)
你可以正常挂载 /dev/sdX1 和 /dev/sdX2 分区。
从 eMMC 启动
- Compute Module 5 IO 板
- Compute Module 4 IO 板
- Compute Module IO 板
断开 IO 板跳线 J2(禁用 eMMC 启动)上的 nRPI_BOOT。
断开 IO 板跳线 J2(禁用 eMMC 启动)上的 nRPI_BOOT。
将 J4(USB SLAVE BOOT ENABLE)设置为 2-3(USB BOOT DISABLED)。
启动
断开 USB 从端口。关闭 IO 板电源,从刚写入 eMMC 的新映像启动计算模块。
已知问题
- 一小部分 CM3 设备可能会出现启动问题。我们已将这些问题追溯到创建 FAT32 分区的方法;我们认为问题是由于 CPU 和 eMMC 之间的时间差造成的。如果在启动 CM3 时遇到问题,请使用以下命令手动创建分区:
$ sudo parted /dev/<device>
(parted) mkpart primary fat32 4MiB 64MiB
(parted) q
$ sudo mkfs.vfat -F32 /dev/<device>
$ sudo cp -r <files>/* <mountpoint>
- CM1 bootloader 会向主机返回一个略微不正确的 USB 数据包。大多数 USB 主机会忽略它,但有些 USB 端口会因为这个错误而无法工作。CM3 修正了这一错误。
计算模块 EEPROM bootloader
从计算模块 4 开始,计算模块使用 EEPROM 引导加载程序。该引导加载程序位于板载存储的一小部分中,而不是引导分区中。因此,更新它需要不同的程序。在生产中使用带有 EEPROM 引导加载程序的计算模块之前,请务必遵循以下最佳实践:
- 选择特定的引导加载程序版本。确认使用的每个计算模块都有该版本。
usbbootrepo 中的版本始终是最近的稳定版本。 - 通过 设置
BOOT_ORDER配置引导设备。 - 在引导加载器 EEPROM 上启用硬件写保护,以确保引导加载器无法在无法访问的产品(如远程或嵌入式设备)上被修改。
烧录计算模块引导加载程序 EEPROM
烧录引导加载程序 EEPROM:
- 像 flash the eMMC时那样设置硬件,但要确保
EEPROM_nWPnot 被拉低。 - 运行以下命令将
recovery/pieeprom.bin写入 引导加载器 EEPROM:
./rpiboot -d recovery
- 完成后,
EEPROM_nWP可能会再次被拉低。
SD 卡以外的烧录设备
基于 Linux 的 mass-storage-gadget 支持烧录 NVMe、eMMC 和 USB 块设备。与基于固件的 rpiboot 机制相比,mass-storage-gadget 写入设备的速度更快,还为设备提供了一个 UART 控制台用于调试。
usbboot 还包括一些 扩展,使你能够与计算模块上的 EEPROM 引导加载程序进行交互。
更新计算模块引导加载程序
在使用 EEPROM 引导加载程序的计算模块上,ROM 从未从 SD/eMMC 运行过 recovery.bin。这些计算模块默认禁用 rpi-eeprom-update 服务,因为 eMMC 不可拆卸,无效的 recovery.bin 文件可能会阻止系统启动。
你可以用 "自我更新 "模式覆盖这一行为。在 "自我更新 "模式下,可以通过 USB MSD 或网络启动更新引导加载程序。
自我更新 模式不会原子更新引导加载程序。如果在更新 EEPROM 时发生断电,可能会损坏 EEPROM。
修改引导加载程序配置
修改计算模块 EEPROM 引导加载程序配置:
- 导航至
usbboot/recovery目录。 - 如果需要特定的引导加载程序版本,请将
pieeprom.original.bin替换为引导加载程序版本中的相应内容。 - 编辑默认的
boot.conf引导加载器配置文件以定义 BOOT_ORDERBOOT_ORDER:- 对于网络启动,使用
BOOT_ORDER=0xf2。 - 对于 SD/eMMC 启动,使用
BOOT_ORDER=0xf1。 - 对于 USB 启动失败转到 eMMC,使用
BOOT_ORDER=0xf15。 - 对于 NVMe 启动,使用
BOOT_ORDER=0xf6。
- 对于网络启动,使用
- 运行
./update-pieeprom.sh,生成新的 EEPROM 映像文件pieeprom.bin映像文件。 - 如果需要 EEPROM 写保护,请在
/boot/firmware/config.txt中添加eeprom_write_protect=1。- 在软件中启用后,可以通过将
EEPROM_nWP引脚拉低来锁定硬件写保护。
- 在软件中启用后,可以通过将
- 运行以下命令将更新后的
pieeprom.bin映像写入 EEPROM:
../rpiboot -d .
连接外设
本指南可帮助开发人员将外设连接到计算模块引脚,并说明如何在软件中启用这些外设。
SoC 的大部分引脚,包括 GPIO、两个 CSI 摄像头接口、两个 DSI 显示器接口和 HDMI 都可用于布线。您通常可以将未使用的引脚断开。
采用 DDR2 SODIMM 外形的计算模块与任何 DDR2 SODIMM 插座物理兼容。不过,引脚布局与 SODIMM 内存模块并不相同。
要使用计算模块,用户设计的主板必须具备以下条件:
- 为计算模块提供电源(最低 3.3V 和 1.8V 电压)
- 为用户应用所需的外设连接引脚
本指南首先介绍启动过程以及设备树如何描述所连接的硬件。
然后,我们将介绍如何将 I2C 和 SPI 外围设备连接到 IO 板。最后,我们将创建必要的设备树文件,以便在 Raspberry Pi OS 中使用这两个外设。
BCM283x GPIO
BCM283x 有三组通用输入/输出 (GPIO) 引脚: Bank 0 上有 28 个引脚,Bank 1 上有 18 个引脚,Bank 2 上有 8 个引脚,共计 54 个引脚。这些引脚可用作真正的 GPIO 引脚:软件可将其设置为输入或输出、读取和/或设置状态,并将其用作中断。它们还可以运行 I2C、SPI、I2S、UART、SD 卡等其他功能。
您可以在任何计算模块上使用 Bank 0 或 Bank 1。不要使用 Bank 2:它控制 eMMC、HDMI 热插拔检测和 ACT LED/USB 启动控制。
使用 pinctrl 检查 GPIO 引脚的电压和功能,查看设备树是否按预期工作。
BCM283x 启动过程
BCM283x 设备有一个 VideoCore GPU 和 Arm CPU 内核。GPU 由 DSP 处理器和用于成像、视频编解码、3D 图形和图像合成的硬件加速器组成。
在 BCM283x 设备中,GPU 中的 DSP 内核首先启动。它在启动主 Arm 处理器之前 处理设置。
Raspberry Pi BCM283x 设备的启动过程分为三个阶段:
- GPU DSP 复位后执行小型内部启动 ROM 中的代码。该代码通过外部接口加载第二阶段启动加载程序。该代码首先在引导分区上名为
bootcode.bin的引导设备上寻找第二阶段引导加载器。如果没有找到引导设备或找不到bootcode.bin,引导 ROM 将在 USB 启动模式下等待主机提供第二阶段引导加载器(usbbootcode.bin)。 - 第二阶段引导加载器负责设置 LPDDR2 SDRAM 接口和其他关键系统功能。设置完成后,第二阶段启动加载器将加载并执行主 GPU 固件(
start.elf)。 start.elf处理额外的系统设置并启动 Arm 处理器子系统。它包含 GPU 固件。GPU 固件首先会读取dt-blob.bin,以确定 GPIO 引脚的初始状态以及 GPU 专用接口和时钟,然后解析config.txt。然后加载特定型号的 Arm 设备树文件和config.txt中指定的任何设备树覆盖,然后启动 Arm 子系统并将设备树数据传递给启动的 Linux 内核。
设备树
适用于 Raspberry Pi 的 Linux 设备树 对连接到系统的硬件信息以及用于与该硬件通信的驱动程序进行编码。
启动分区包含多个二进制设备树(.dtb)文件。设备树编译器使用人类可读的设备树描述 (.dts)创建这些二进制文件。
启动分区包含两种不同类型的设备树文件。其中一个仅供 GPU 使用;其余的是标准的 Arm 设备 树文件,适用于基于 BCM283x 的每种 Raspberry Pi 产品:
dt-blob.bin(GPU 使用)bcm2708-rpi-b.dtb(用于 Raspberry Pi 1 Model A 和 B)bcm2708-rpi-b-plus.dtb(用于 Raspberry Pi 1 Model B+ 和 A+)bcm2709-rpi-2-b.dtb(用于 Raspberry Pi 2 Model B)bcm2710-rpi-3-b.dtb(用于 Raspberry Pi 3 Model B)bcm2708-rpi-cm.dtb(用于 Raspberry Pi CM 1)bcm2710-rpi-cm3.dtb(用于 Raspberry Pi CM 3)
在启动过程中,用户可以通过 config.txt 中的 device_tree 参数指定要使用的特定 Arm 设备树。例如,config.txt 中的 device_tree=mydt.dtb 行指定了名为 mydt.dtb 文件中的Arm设备树。
您可以为计算模块产品创建完整的设备树,但我们建议您使用overlays。覆盖层将非特定于板卡的硬件描述添加到基本设备树中。这包括使用的 GPIO 引脚及其功能,以及所连接的设备,以便加载正确的驱动程序。在将设备树传递给 Linux 内核之前,引导加载程序会将覆盖与基本设备树合并。基础设备树偶尔会发生变化,但通常不会破坏覆盖层。
使用 config.txt 中的 dtoverlay 参数加载设备树覆盖。Raspberry Pi OS 假定所有覆盖都位于 /overlays 目录中,并使用后缀 -overlay.dtb。例如,dtoverlay=myoverlay 一行将加载覆盖图 /overlays/myoverlay-overlay.dtb。
要将外设连接到计算模块,请在覆盖层中描述连接到 Bank 0 和 Bank 1 GPIO 的所有硬件。这样,您就可以使用标准的 Raspberry Pi OS 映像,因为覆盖层已被合并到标准的基本设备树中。或者,您也可以为自己的应用程序定义一个自定义的设备树,但这样就不能使用标准的 Raspberry Pi OS 映像。相反,您必须创建一个修改过的 Raspberry Pi 操作系统映像,其中包括您希望发布的每个操作系统更新的自定义设备树。如果基础覆盖层发生变化,你可能需要更新你定制的设备树。
dt-blob.bin
当 start.elf 运行时,它会首先读取 dt-blob.bin。这是一种特殊形式的设备树 blob,它告诉 GPU 如何设置 GPIO 引脚状态。
dt-blob.bin 包含 GPU(而非 SoC)控制的 GPIO 和外设信息。例如,GPU 管理摄像头模块。GPU 需要独占一个 I2C 接口和几个引脚,才能与摄像头模块通信。
在大多数 Raspberry Pi 型号上,I2C0 被保留给 GPU 专用。dt-blob.bin 定义了用于 I2C0 的 GPIO 引脚。
默认情况下,dt-blob.bin 不存在。相反,start.elf 包含了该文件的内置版本。许多计算模块项目会提供一个自定义的 dt-blob.bin,该文件会覆盖默认的内置文件。
dt-blob.bin 指定:
- 用于 HDMI 热插拔检测的引脚
- 用作 GPCLK 输出的 GPIO 引脚
- 启动时 GPU 可以使用的 ACT LED
minimal-cm-dt-blob.dts .dts 设备树文件示例。它设置了 HDMI 热插拔检测和 ACT LED,并将所有其他 GPIO 设置为默认输入。
要将 minimal-cm-dt-blob.dts 编译为 dt-blob.bin,请使用 设备树编译器 dtc。
要在 Raspberry Pi 上安装 dtc,请运行以下命令:
sudo apt install device-tree-compiler
然后,运行以下命令将 minimal-cm-dt-blob.dts 编译成 dt-blob.bin:
dtc -I dts -O dtb -o dt-blob.bin minimal-cm-dt-blob.dts
更多信息,请参阅我们的 创建 dt-blob.bin 指南。
Arm Linux 设备树
在 start.elf 读取dt-blob.bin并设置初始引脚状态和时钟后,它会读取 config.txt,其中包含许多其他系统设置选项。
读取 config.txt 之后,start.elf 会读取特定型号的设备树文件。例如,计算模块 3 使用 bcm2710-rpi-cm.dtb。该文件是一个标准的 Arm Linux 设备树文件,详细说明了处理器上连接的硬件。它列举了
- 有哪些外围设备以及存在于何处
- 使用了哪些 GPIO
- 这些 GPIO 具有哪些功能
- 连接了哪些物理设备
该文件通过覆盖 dt-blob.bin 中的引脚状态(如果不同)来设置 GPIO。它还会尝试加载特定设备的驱动程序。
特定型号的设备树文件包含禁用的外设条目。它不包含 GPIO 引脚定义,但 eMMC/SD 卡外设除外,该外设具有 GPIO 定义并始终使用相同的引脚。
设备树源代码和编译
Raspberry Pi OS 映像提供了编译后的 dtb 文件,但源代码 dts 文件位于 Raspberry Pi Linux 内核分支。在文件名中查找 rpi。
默认的覆盖 dts 文件位于 arch/arm/boot/dts/overlays。这些覆盖文件是创建自己的覆盖文件的良好起点。要将这些 dts 文件编译成 dtb 文件,请使用 设备树编译器 dtc。
构建自己的内核时,构建主机需要使用 scripts/dtc 中的设备树编译器。要自动编译覆盖层,请将其添加到 arch/arm/boot/dts/overlays/Makefile 中的 dtbs make target。
设备树调试
启动 Linux 内核时,GPU 会提供使用基础 dts 和任何覆盖层创建的完整组装设备树(Device Tree)。这个完整的设备树可以通过 Linux proc 界面的 /proc/device-tree 获得。节点成为目录,属性成为文件。
你可以使用 dtc 将其写成人类可读的 dts 文件,以便调试。要查看完整的设备树,请运行以下命令:
dtc -I fs -O dts -o proc-dt.dts /proc/device-tree
pinctrl 提供 GPIO 引脚的状态。如果似乎出了什么问题,请尝试转储 GPU 日志信息:
sudo vclog --msg
要在输出中包含更多诊断信息,请在 config.txt 中添加 dtdebug=1。
使用 Device Tree Raspberry Pi 论坛 询问与 Device Tree 相关的问题或报告问题。
示例
以下示例使用 IO 板,通过跳线连接外设。我们假定使用 CM1+CMIO 或 CM3+CMIO3,运行已安装的 Raspberry Pi OS Lite。这里的示例需要互联网连接,因此我们建议将 USB 集线器、键盘和无线局域网或以太网加密狗插入 IO 板 USB 端口。
将 I2C RTC 连接到 Bank 1 引脚
在本例中,我们将把 NXP PCF8523 实时时钟 (RTC) 连接到 IO 板 Bank 1 GPIO 引脚: 3V3、GND、GPIO44 上的 I2C1_SDA 和 GPIO45 上的 I2C1_SCL。
下载 minimal-cm-dt-blob.dts,并将其复制到 /boot/firmware/ 中的启动分区。
编辑 minimal-cm-dt-blob.dts,将 GPIO44 和 45 的引脚状态改为带上拉的 I2C1:
sudo nano /boot/firmware/minimal-cm-dt-blob.dts
替换以下行:
pin@p44 { function = "input"; termination = "pull_down"; }; // DEFAULT STATE WAS INPUT NO PULL
pin@p45 { function = "input"; termination = "pull_down"; }; // DEFAULT STATE WAS INPUT NO PULL
使用以下上拉定义:
pin@p44 { function = "i2c1"; termination = "pull_up"; }; // SDA1
pin@p45 { function = "i2c1"; termination = "pull_up"; }; // SCL1
我们可以使用这个 dt-blob.dts 而不做任何更改,因为 Linux 设备树会在 Linux 内核启动时加载特定驱动程序时重新配置这些引脚。但是,如果配置了 dt-blob.dts,GPIO 就会在 GPU 启动阶段尽快达到最终状态。在某些情况下,必须在 GPU 启动时配置引脚,以便它们在 Linux 驱动程序加载时处于特定状态。例如,复位线可能需要保持正确的方向。
运行以下命令编译 dt-blob.bin:
sudo dtc -I dts -O dtb -o /boot/firmware/dt-blob.bin /boot/firmware/minimal-cm-dt-blob.dts
下载 example1-overlay.dts,将其复制到 /boot/firmware/ 中的启动分区,然后使用以下命令编译:
sudo dtc -@ -I dts -O dtb -o /boot/firmware/overlay/example1.dtbo /boot/firmware/example1-overlay.dts
-@ 标记用于编译带有外部引用的 dts 文件。这通常是必要的。
在 config.txt 中添加以下一行:/boot/firmware/config.txt:
dtoverlay=example1
最后,使用 sudo reboot 重新启动。
重启后,你应该会在 /dev中看到一个 rtc0 条目。运行以下命令查看硬件时钟时间:
sudo hwclock
在 Bank 0 上附加 ENC28J60 SPI 以太网控制器
在此示例中,我们使用 /boot/firmware/overlays 中已定义的覆盖层,在 Bank 0 上添加一个 ENC28J60 SPI 以太网控制器。以太网控制器使用 SPI 引脚 CE0、MISO、MOSI 和 SCLK(分别为 GPIO8-11),GPIO25 用于下降沿中断,此外还有 GND 和 3.3V。
在本例中,我们不会更改 dt-blob.bin。相反,在 /boot/firmware/config.txt中添加以下一行:
dtoverlay=enc28j60
使用 sudo reboot 重新启动。
如果现在运行 ifconfig,您应该会看到 ENC28J60 网卡的附加 eth<n> 条目。您也应该可以连接以太网。运行以下命令测试连接性:
ping 8.8.8.8
运行以下命令显示 GPIO 功能;GPIO8-11 现在应提供 ALT0(SPI)功能:
pinctrl
连接摄像头模块
计算模块有两个 CSI-2 摄像头接口: CAM1 和 CAM0。本节介绍如何使用 CM I/O 板的 CAM1 和 CAM0 接口将一个或两个树莓派摄像头连接到 CM。
更新系统
配置摄像头前,请确保您的系统运行最新的可用软件:
sudo apt update
sudo apt full-upgrade
连接一台摄像头
要将单个摄像头连接到计算模块,请完成以下步骤:
- 断开计算模块的电源。
- 使用 RPI-CAMERA 板或树莓派Zero 摄像头电缆将摄像头模块连接到 CAM1 端口。
- (仅限 CM5): 根据电路板的说明,在J6上安装两个跳线。
- (仅限 CM1、CM3、CM3+ 和 CM4S): 用跳线连接以下 GPIO 引脚:
0至CD1_SDA1至CD1_SCL2至CAM1_I013至CAM1_I00
-
重新连接计算模块的电源。
-
如果
/boot/firmware/config.txt中存在以下行,请将其删除(或用#前缀注释掉):
camera_auto_detect=1
dtparam=i2c_arm=on
- (仅限 CM1、CM3、CM3+ 和 CM4S): 在
/boot/firmware/config.txt中添加以下指令,以适应 I/O 板上互换的 GPIO 引脚分配:
dtoverlay=cm-swap-i2c0
- (仅限 CM1、CM3、CM3+ 和 CM4S): 在
/boot/firmware/config.txt中添加以下指令,将 GPIO 3 指定为 CAM1 调节器:
dtparam=cam1_reg
- 在
/boot/firmware/config.txt中添加适当的指令,为您的摄像头型号手动配置驱动程序:
| 摄像头型号 | 指令 |
|---|---|
| v1 摄像头 | dtoverlay=ov5647 |
| v2 摄像头 | dtoverlay=imx219 |
| v3 摄像头 | dtoverlay=imx708 |
| HQ 摄像头 | dtoverlay=imx477 |
| GS 摄像头 | dtoverlay=imx296 |
- 使用
sudo reboot重启计算模块。 - 运行以下命令检查检测到的摄像头列表:
rpicam-hello --list
你应该能在输出中看到上表中驱动程序指令所指的摄像头型号。
连接两台摄像头
要将两台摄像头连接到计算模块,请完成以下步骤:
- 按照上述单台摄像头的说明操作。
- 断开计算模块的电源。
- 使用 RPI-CAMERA 板或树莓派Zero 摄像头电缆将摄像头模块连接到 CAM0 端口。
- (仅限 CM1、CM3、CM3+ 和 CM4S): 用跳线连接以下 GPIO 引脚:
28至CD0_SDA29至CD0_SCL30至CAM0_I0131至CAM_I00
- (仅限 CM4): 用两个垂直方向跳线连接 J6 GPIO 引脚。
-
重新连接计算模块的电源。
-
(仅限 CM1、CM3、CM3+ 和 CM4S):在
/boot/firmware/config.txt中添加以下指令,将 GPIO 31 指定为 CAM0 稳压器:
dtparam=cam0_reg
- 在
/boot/firmware/config.txt中添加适当的指令,为您的摄像头型号手动配置驱动程序:
| 摄像头型号 | 指令 |
|---|---|
| v1 摄像头 | dtoverlay=ov5647,cam0 |
| v2 摄像头 | dtoverlay=imx219,cam0 |
| v3 摄像头 | dtoverlay=imx708,cam0 |
| HQ 摄像头 | dtoverlay=imx477,cam0 |
| GS 摄像头 | dtoverlay=imx296,cam0 |
- 使用
sudo reboot重启计算模块。 - 运行以下命令检查检测到的摄像头列表:
rpicam-hello --list
在输出中应能看到上表中驱动程序指令所指的两种型号的摄像头。
软件
树莓派OS 包含 libcamera 库,可帮助您使用树莓派拍摄图像。
拍照
使用以下命令立即拍照并以 PNG 编码保存到文件中,文件名使用 MMDDhhmmss 日期格式:
rpicam-still --datetime -e png
使用 -t 选项添加以毫秒为单位的延迟。使用 --width 和 --height 选项指定图像的宽度和高度。
拍摄视频
使用以下命令立即开始录制一段 10 秒长的视频,并保存到一个使用 h264 编解码器的文件中,文件名为 video.h264:
rpicam-vid -t 10000 -o video.h264
指定使用哪台摄像头
默认情况下,libcamera 总是使用 --list-cameras 列表中索引为 0 的摄像头。要指定摄像头选项,可通过以下命令获取每台摄像头 的索引值:
$ rpicam-hello --list-cameras
Available cameras
-----------------
0 : imx477 [4056x3040] (/base/soc/i2c0mux/i2c@1/imx477@1a)
Modes: 'SRGGB10_CSI2P' : 1332x990 [120.05 fps - (696, 528)/2664x1980 crop]
'SRGGB12_CSI2P' : 2028x1080 [50.03 fps - (0, 440)/4056x2160 crop]
2028x1520 [40.01 fps - (0, 0)/4056x3040 crop]
4056x3040 [10.00 fps - (0, 0)/4056x3040 crop]
1 : imx708 [4608x2592] (/base/soc/i2c0mux/i2c@0/imx708@1a)
Modes: 'SRGGB10_CSI2P' : 1536x864 [120.13 fps - (768, 432)/3072x1728 crop]
2304x1296 [56.03 fps - (0, 0)/4608x2592 crop]
4608x2592 [14.35 fps - (0, 0)/4608x2592 crop]
在上述输出中
imx477指索引为0的 HQ 摄像头imx708指索引为1的 v3 摄像头
要使用 HQ 摄像头,请将其索引 (0) 传递给 --camera libcamera 选项:
rpicam-hello --camera 0
要使用 v3 摄像头,请在 --camera libcamera 选项中加入其索引 (1):
rpicam-hello --camera 1
GPIO引脚的I2C映射
默认情况下,提供的摄像头驱动程序假定 CAM1 使用 i2c-10,CAM0 使用 i2c-0。计算模块 I/O 板将以下 GPIO 引脚映射到 i2c-10 和 i2c-0:
| I/O 板型号 | i2c-10 引脚 | i2c-0 引脚 |
|---|---|---|
| CM4 I/O 板 | GPIO 44,45 | GPIO 0,1 |
| CM1、CM3、CM3+、CM4S I/O 板 | GPIO 0,1 | GPIO 28,29 |
要将摄像头连接到 CM1、CM3、CM3+ 和 CM4S I/O 板,请在 /boot/firmware/config.txt 中添加以下指令,以适应交换后的引脚分配:
dtoverlay=cm-swap-i2c0
其他板可能使用其他引脚分配。请查阅您的电路板文档,并根据您的布局使用以下替代覆盖:
| 交换 | 覆盖 |
|---|---|
| i2c0 使用 GPIO 0,1 | i2c0-gpio0 |
| i2c0 使用 GPIO 28、29(默认值) | i2c0-gpio28 |
| i2c0 使用 GPIO 44&45 | i2c0-gpio44 |
| i2c10 使用 GPIO 0&1(默认值) | i2c10-gpio0 |
| i2c10 使用 GPIO 28&29 | i2c10-gpio28 |
| i2c10 使用 GPIO 44&45 | i2c10-gpio44 |
用于关机的GPIO引脚
对于摄像头关机,设备树使用由 cam1_reg 和 cam0_reg 覆盖层分配的引脚。
CM4 IO 板为两个别名提供一个 GPIO 引脚,因此两个摄像头共享同一个调节器。
CM1、CM3、CM3+ 和 CM4S I/O 板没有为 cam1_reg 和 cam0_reg 提供 GPIO 引脚,因此这些板上的调节器被禁用。不过,您可以使用 /boot/firmware/config.txt 中的以下指令启用它们:
dtparam=cam1_regdtparam=cam0_reg
要将 cam1_reg 和 cam0_reg 指定给自定义板上的特定引脚,请在 /boot/firmware/config.txt 中使用以下指令:
dtparam=cam1_reg_gpio=<引脚编号>dtparam=cam0_reg_gpio=<引脚编号>
例如,要将引脚 42 用作 CAM1 的稳压器,请在 /boot/firmware/config.txt 中添加指令 dtparam=cam1_reg_gpio=42。
这些指令仅适用于直接连接到 SoC 的 GPIO 引脚,不适用于 GPIO 扩展引脚。
安装触摸屏LCD面板
开始操作前,请将系统软件和固件更新至最新版本。计算模块大多采用相同的操作流程,但某些型号因物理结构差异可能需要调整操作步骤。
将显示器连接到DISP1/DSI1
树莓派零摄像头线缆不能替代RPI-DISPLAY适配器使用,两者接线方式存在差异。
将显示器连接至DISP1/DSI1接口:.
- 断开计算模块电源。
- 通过22W转15W显示器适配器将显示器连接至计算模块IO板的
DISP1/DSI1端口。 - 完成相应跳线连接:
- 对于CM1、CM3、CM3+和CM4S,使用跳线连接以下GPIO引脚:
0至CD1_SDA1至CD1_SCL
- 对于 CM5,在计算模块5的IO板上,按丝印标识在J6处添加相应跳线。
- 对于CM1、CM3、CM3+和CM4S,使用跳线连接以下GPIO引脚:
- 重新连接计算模块电源。
- 在
/boot/firmware/config.txt中添加dtoverlay=vc4-kms-dsi-7inch。 - 使用
sudo reboot命令重启计算模块。您的设备应能检测到模块并开始向显示器输出内容。
将显示器连接到DISP0/DSI0
要在 CM1、CM3 和 CM4 IO 板上将显示器连接至 DISP0/DSI0:.
- 通过 22W 至 15W 显示器适配器将显示器连接至计算模块 IO 板上的
DISP0/DSI0端口。 - 完成相应跳线连接:
- 对于CM1、CM3、CM3+和CM4S,使用跳线连接以下GPIO引脚:
28至CD0_SDA29至CD0_SCL
- 对于CM4,在计算模块4的IO板上,按丝印标识将相应跳线添加至J6。
- 对于CM1、CM3、CM3+和CM4S,使用跳线连接以下GPIO引脚:
- 重新连接计算模块电源。
- 在
/boot/firmware/config.txt文件中添加dtoverlay=vc4-kms-dsi-7inch,dsi0。 - 通过
sudo reboot重启计算模块。您的设备应能检测到模块并开始向显示器输出内容。
禁用触摸屏
触摸屏无需额外配置。将其连接至计算模块后,当成功检测到触摸屏元件和显示屏时,两者即可正常工作。
要禁用触摸屏元件,但 仍使用显示屏,请在 /boot/firmware/config.txt 中添加以下一行:
disable_touchscreen=1
禁用显示屏
要在连接时完全忽略显示屏,请在 /boot/firmware/config.txt 中添加以下一行:
ignore_lcd=1
安装触摸显示屏2 LCD 面板
触摸屏2是一款专为树莓派设备设计的液晶显示屏(详见https://www.raspberrypi.com/products/touch-display-2/ )。提供两种尺寸:5英寸或7英寸(对角线测量)。有关这些选项的更多信息,请参阅 Touch Display 2 中的规格部分。
无论使用何种尺寸,Touch Display 2 的连接方式均与初代触摸屏相同,但计算模块上的软件配置略有差异,因其采用不同的显示驱动程序。连接详情请参阅 Touch Display 2 中的连接器章节。
要在DISP1/DSI1启用触摸屏2,请编辑/boot/firmware/config.txt文件添加以下内容。同时必须按丝印标识在J6插座添加跳线。
- 5英寸显示屏:
dtoverlay=vc4-kms-dsi-ili9881-5inch - 7英寸显示屏:
dtoverlay=vc4-kms-dsi-ili9881-7inch
若需使用DISP0/DSI0接口,请在覆盖层名称后添加,dsi0。
- 对于5英寸显示屏:
dtoverlay=vc4-kms-dsi-ili9881-5inch,dsi0 - 对于7英寸显示屏:
dtoverlay=vc4-kms-dsi-ili9881-7inch,dsi0
规格
计算模块 5 数据表
要了解有关计算模块 5 (CM5) 及其相应 IO 板的更多信息,请参阅以下文档:
计算模块 5 IO 板数据表
计算模块 5 IO 板 (CM5IO) 的设计数据可在其数据表中找到:
计算模块 4 数据表
要了解有关计算模块 4 (CM4) 及其相应 IO 板的更多信息,请参阅以下文档:
计算模块 4 IO 板数据表
计算模块 4 IO 板 (CM4IO) 的设计数据可在其数据表中找到:
我们还提供 CM4 IO 板的 KiCad PCB 设计集:
计算模块 4S 数据表
计算模块 4S (CM4S) 以 CM1、CM3 和 CM3+ 的 DDR2-SODIMM 外形提供 CM4 的内部结构。要了解有关 CM4S 的更多信息,请参阅以下文档:
计算模块 3+ 数据表
计算模块 3+ (CM3+) 是一种受支持的产品,其生命周期结束 (EOL) 日期不早于 2028 年 1 月。要了解有关 CM3+ 及其相应 IO 板的更多信息,请参阅以下文档:
计算模块 1 和计算模块 3 数据表
Raspberry Pi 计算模块 1 (CM1) 和计算模块 3 (CM3) 是受支持的产品,其生命周期终止 (EOL) 日期不早于 2026 年 1 月。要了解有关 CM1 和 CM3 的更多信息,请参阅以下文档:
本白皮书可帮助开发人员从计算模块 1 或计算模块 3 迁移到计算模块 4。
计算模块 0 数据表
Raspberry Pi 计算模块 0 (CM0) 。要了解有关 CM0 的更多信息,请参阅以下文档:
Raspberry Pi CM0 由上海晶珩于2025年9月发布,其核心配置更接近于 Raspberry Pi Zero 2 W。
计算模块 IO 板示意图
计算模块 IO 板 (CMIO) 为 CM1、CM3、CM3+ 和 CM4S 提供各种接口。计算模块 IO 板有两个版本: 版本 1 和版本 3。版本 1 仅与 CM1 兼容。版本 3 兼容 CM1、CM3、CM3+ 和 CM4S。计算模块 IO 板版本 3 有时简称为 CMIO3。要了解有关 CMIO1 和 CMIO3 的更多信息,请参阅以下文档: