只读分享解决方案文档原理方案设计📅 2026-10-14🔖 rev1.1⏳ 还有3日到期
🔧解决方案&应用市场分析 -> 原理方案设计 -> 主芯片方案调试开发 -> 树莓派_开发指南

树莓派_开发指南

同系列 · 原理方案设计
扫码打开本页
微信扫码

1 · 文档导读与阅读路径

树莓派不是一块「MCU 开发板」,它是一台完整的 Linux 计算机,外加一条 40 针的排针。这句话决定了本文所有章节的编排方式。

1.1 这份文档覆盖什么

本文覆盖树莓派官方产品线的开发全流程:从挑型号、选启动介质、烧录 Raspberry Pi OS,到 GPIO / I2C / SPI / UART 编程、设备树 Overlay、摄像头与显示、存储与备份、网络服务、功耗散热、Linux 内核编译,再到 RP2040 / RP2350 的 Pico SDK 开发,最后落到与 XTX 存储芯片协同的方案设计。

  • 硬件层:五大产品系列、处理器 SoC、40-pin 排针、供电与散热。
  • 系统层:启动链路、config.txt、raspi-config、包管理、systemd。
  • 外设层:GPIO 三条软件栈、三条串行总线的使能与使用、Overlay 机制。
  • 进阶层:libcamera、内核交叉编译、Pico SDK、容器化。
  • 收尾层:与存储芯片协同、故障速查、五个附录。

1.2 不覆盖什么

树莓派生态太大,本文明确不写:Python 语法教学、Linux Shell 基础、通用 Qt / GTK 桌面开发、Kubernetes 集群,以及第三方发行版(Ubuntu Core、OpenWrt、LibreELEC)的专属配置。这些内容要么与树莓派无关,要么官方文档已经写得足够好。

1.3 事实来源与版本标注约定

树莓派官方文档迭代很快,本文以 raspberrypi.com/documentation 2026 年在线版本为准。凡是涉及具体数字(引脚号、频率、文件路径、命令参数)的地方,都在附录 A 标注了出处。三点提醒:

约定含义
Bookworm 起指 Raspberry Pi OS 基于 Debian 12(Bookworm)的发行版。它把启动分区从 /boot 挪到了 /boot/firmware,默认显示服务从 X11 换成了 Wayland + Wayfire。
Pi 5 起指 Raspberry Pi 5、500、500+ 与 CM5。这一代引入 RP1 南桥,GPIO 不再由 SoC 直接提供,旧库 RPi.GPIO 失效。
原文保留的命令文中所有 sudo apt install、cmake、raspi-config 等命令均按官方文档原样给出,不做本地化改写,避免版本漂移。

1.4 命令与代码的书写约定

  • # 开头表示一行命令的解释说明,不是 root 提示符;命令行输入一律以 $ 开头表示普通用户、sudo 显式标注提权。
  • 路径统一使用 Linux 正斜杠。<hostname>、<username> 这类尖括号是占位符,替换时不保留尖括号。
  • 代码块里的行尾反斜杠续行符是可执行的,不是排版装饰。

1.5 MCU 工程师转树莓派最容易卡住的四件事

① 「GPIO 编号」有三套

物理引脚号(Board)、BCM 编号(Broadcom SoC 通道号)、以及已归档的 WiringPi 编号。官方文档与 gpiozero 一律用 BCM 编号。gpiozero 的 LED(17) 指的是 BCM 17,落在物理引脚 11 上。

② 「重启才生效」

config.txt 由 GPU 早期固件读取,改完必须 reboot。这一点与 MCU 里改了寄存器立刻生效完全不同。

③ 「权限」是 Linux 的一等公民

用 GPIO 的用户必须在 gpio 组,读 I2C 要 i2c 组,抓串口要 dialout 组。默认 pi 用户已具备,新建用户要手动加:sudo usermod -a -G gpio <user>。

④ 「实时性」要指望 Pico

Linux 是分时系统,GPIO 翻转抖动在毫秒级。需要硬实时请用 Pico 做前端、树莓派做后端,两者通过 UART / I2C / SPI 或 USB 通信。

2 · 树莓派家族全景与选型

树莓派不是一个产品,而是五个形状完全不同、开发方式也完全不同的产品系列。第一步选错系列,后面怎么做都是徒劳。

2.1 五大系列怎么分

官方把产品划成五条线,分界线不是性能,而是形态与开发方式:旗舰单板(SBC)跑完整 Linux;键盘机把 SBC 塞进键盘壳;Zero 在最小体积里塞 Linux;Compute Module(CM)把 SBC 拆成 DDR2 SODIMM 或 100 pin 高密度连接器,交给客户画载板;Pico 则是完全另一条路 —— 它不跑 Linux。

树莓派产品矩阵:五大系列与代表型号旗舰单板 SBC信用卡大小 · 完整 LinuxRaspberry Pi 5Raspberry Pi 4BRaspberry Pi 3B+Raspberry Pi 1B+…共 8 个版本键盘机 X00SBC 塞进键盘外壳Raspberry Pi 500+Raspberry Pi 500Raspberry Pi 400Zero 系列最小体积 · 低功耗Zero 2 WZero 2 W 带针Zero W / WHZeroCompute Module给嵌入式量产用CM5CM4 / CM4SCM3+CM1Pico 微控制器不跑 Linux · 硬实时Pico 2 WPico 2Pico W / WHPico / Pico H选型的第一个分水岭:要不要跑 Linux跑 Linux(前四列):有进程调度、文件系统、网络栈,GPIO 通过 /dev/gpiochip* 访问,实时性为软实时。不跑 Linux(Pico):程序直接烧进片内 Flash,裸金属执行,中断延迟在微秒级,适合电机、采样、协议模拟。
图 1 · 树莓派五大产品系列与代表型号

来源:Raspberry Pi Documentation — Raspberry Pi computer hardware

2.2 旗舰单板系列:从 BCM2835 到 BCM2712

Model B 表示带以太网口,Model A 表示低成本缩小版 —— 没有网口、内存更小、USB 更少。这条命名规则从 Model B 一直沿用到 Pi 4。

型号SoC内存GPIO关键连接供电
Raspberry Pi Model BBCM2835256 MB / 512 MB26 pinHDMI · 2×USB 2.0 · CSI · DSI · 3.5 mm 音频 · RCA 复合视频 · 100 Mb/s RJ45 · SD 卡槽micro-USB
Raspberry Pi Model B+BCM2835512 MB40 pinHDMI · 4×USB 2.0 · CSI · DSI · 3.5 mm AV · 100 Mb/s RJ45 · microSDmicro-USB
Raspberry Pi 2 Model B版本号 rev1.1 BCM2836
rev1.2 BCM2837
rev1.3 BCM2837B0
1 GB40 pinHDMI · 4×USB 2.0 · CSI · DSI · 3.5 mm AV · 100 Mb/s RJ45 · microSDmicro-USB
Raspberry Pi 3 Model BBCM2837 / BCM2837B01 GB40 pin同上 + 2.4 GHz 单频 802.11n Wi-Fi(35 Mb/s)· BT 4.1 / BLEmicro-USB
Raspberry Pi 3 Model B+BCM2837B01 GB40 pin300 Mb/s RJ45 带 PoE 支持 · 2.4/5 GHz 双频 802.11ac(100 Mb/s)· BT 4.2 / BLEmicro-USB
Raspberry Pi 4 Model BBCM27111 / 2 / 4 / 8 GB40 pin2×micro-HDMI · 2×USB 2.0 · 2×USB 3.0 · CSI · DSI · GbE RJ45 带 PoE+ · 802.11ac(120 Mb/s)· BT 5 / BLEUSB-C 5 V 3 A(15 W)
Raspberry Pi 5BCM27121 / 2 / 4 / 8 / 16 GB40 pin2×micro-HDMI · 2×USB 2.0 · 2×USB 3.0 · 2×mini 22-pin 0.5 mm 复合 CSI/DSI · 单 lane PCIe FFC · UART 座 · RTC 电池座 · 4 pin JST-SH 风扇座 · GbE PoE+ · 802.11ac Wi-Fi 5(300 Mb/s)· BT 5 / BLEUSB-C 5 V 5 A(25 W)
Pi 5 独有的四个接口,是它和 Pi 4 最大的硬件差别

除了 SoC 换成 BCM2712,Pi 5 在板上新增了:单 lane PCIe FFC 连接器(接 NVMe HAT 或官方 M.2 HAT)、专用 UART 三针座(调试串口,不用再占 GPIO14/15)、RTC 电池座(断电走时)、4 pin JST-SH PWM 风扇座(带转速反馈)。做工业产品时这四个接口的含金量远高于 CPU 跑分。

2.3 键盘机 X00 系列

型号标识符形如 <X00>,其中 X 对应同代旗舰 SBC:Pi 400 就是 Pi 4 的键盘版。500+ 是这一代最特殊的 —— 板载 256 GB M.2 SSD,出厂预装系统,不再是 microSD。

型号SoC内存存储供电
Raspberry Pi 400BCM27114 GBmicroSDUSB-C 5 V 3 A(15 W)
Raspberry Pi 500BCM27128 GBmicroSDUSB-C 5 V 5 A(25 W)
Raspberry Pi 500+BCM271216 GBmicroSD + 内置 M.2 SSD 256 GBUSB-C 5 V 5 A(25 W)

2.4 Zero 系列:最小体积里的完整 Linux

Zero 全系 512 MB 内存、mini HDMI、2×micro-USB(一个供电一个接外设)、microSD,从 Zero v1.3 起都带 mini 22-pin 0.5 mm CSI 摄像头座。命名后缀这里最容易读错:

后缀含义例子
HGPIO 排针已预焊(第一代 Pico / Zero 用这个写法)Zero WH
W带无线连接(Wi-Fi + 蓝牙)Zero W
WH带无线 + 排针已焊Zero WH
无后缀不焊排针,也没有无线,需自己焊接或使用第三方针套件Zero
with headers第二代起不再用 H 后缀,改成英文词组标注已焊排针Zero 2 W with headers

Zero 2 W 换用 RP3A0(四核 Cortex-A53 @ 1 GHz),性能比单核 1 GHz 的老 Zero 提升极大,价格几乎不变 —— 这是当前 Zero 系列唯一推荐的型号。

2.5 Compute Module 系列:量产产品的正确入口

CM 把 SBC 的核心部分拆出来,做成不带任何外设连接器的模块,由客户自己画载板来提供项目实际需要的接口。它支持工业温度范围、同一型号保证多年供货,是做量产产品的正确入口。

型号SoC内存板载 eMMC形态无线
CM1BCM2835512 MB4 GBDDR2 SODIMM无
CM3 / CM3LiteBCM28371 GB4 GB / Lite 为 0DDR2 SODIMM无
CM3+BCM2837B01 GB8 / 16 / 32 GB,Lite 为 0DDR2 SODIMM无
CM4SBCM27111 / 2 / 4 / 8 GB8 / 16 / 32 GB,Lite 为 0DDR2 SODIMM无
CM4BCM27111 / 2 / 4 / 8 GB8 / 16 / 32 GB,Lite 为 0双 100 pin 高密度座可选 Wi-Fi 5 / BT 5
CM5BCM27122 / 4 / 8 / 16 GB16 / 32 / 64 GB,Lite 为 0双 100 pin 高密度座可选 Wi-Fi 5 / BT 5
SODIMM 不等于 DDR2 SODIMM

官方特别标注:使用 DDR2 SODIMM 物理形态的计算模块(CM1~CM4S),并不符合 DDR2 SODIMM 电气规范,不要按内存条的标准设计电源与走线。CM4 / CM5 用双 100 pin 高密度连接器,完全不是这个形态。

2.6 Pico 微控制器系列

Pico 跑不了 Linux,程序直接烧进片内 Flash,上电即运行。它是硬实时任务的答案:PIO(可编程 I/O)可以在不占用 CPU 的情况下精确模拟时序,这是 RP2040 / RP2350 最有辨识度的能力。

型号SoCSRAM板载 FlashGPIO无线
Pico / Pico HRP2040264 kB2 MB2×20 pin,H 表示已焊针无
Pico W / WHRP2040264 kB2 MB同上2.4 GHz 802.11n(10 Mb/s)· BT 5.2 / BLE
Pico 2RP2350520 kB4 MB2×20 pin无
Pico 2 WRP2350520 kB4 MB2×20 pin2.4 GHz 802.11n(10 Mb/s)· BT 5.2 / BLE

2.7 选型决策树

  • 要接显示器、跑浏览器、NAS、AI 推理 → Pi 5(或键盘形态的 500)。
  • 成本敏感、功能简单的数据采集网关 → Zero 2 W。
  • 做产品的、要长期供货、要自画载板 → CM5(新设计首选)/ CM4(已量产项目)。
  • 硬实时控制、电机驱动、自定义时序 → Pico 2(RP2350),必要时与 Pi 5 组成异构双芯片方案。
  • 只是想体验桌面 Linux → Pi 400 / 500,键盘壳省掉一堆外设接线的麻烦。

2.8 EOL 与长期供货

选型时必须确认的停产信息

Raspberry Pi 2 Model B rev1.1 / 1.2(BCM2836 / BCM2837)与 CM3 / CM3Lite 因核心 SoC 停产已进入 EOL,官方 EOL 日期为 2025 年 10 月 16 日。既有设计的替代建议:Pi 2B rev1.3(机械尺寸相同,换 BCM2837B0);CM3 推荐换 CM3+(同尺寸,散热改进);新设计如需 SODIMM 形态用 CM4S,其余一律推荐 CM4 或 CM5。

2.9 和 STM32 / ESP32 怎么选

维度STM32ESP32树莓派 SBC树莓派 Pico
软件形态裸机 / RTOSFreeRTOS / IDF完整 Linux(Debian)裸机 / FreeRTOS
实时性硬实时(中断 µs 级)软实时 + Wi-Fi 抖动软实时,GPIO 抖动毫秒级硬实时(中断 µs 级)
启动时间毫秒级百毫秒级20~40 秒毫秒级
典型内存几十 KB ~ 1 MB SRAM几百 KB SRAM + PSRAM1 ~ 16 GB LPDDR4X264 kB / 520 kB SRAM
存储片内 Flash + 外挂 NOR外挂 SPI NOR FlashmicroSD / eMMC / NVMe2 MB / 4 MB 板载 Flash
文件系统FatFS / LittleFSSPIFFS / FatFSext4 原生FatFS(少用)
适合做什么超低功耗、精密控制、汽车Wi-Fi 物联网节点网关、视觉、边缘 AI、桌面PIO 自定义时序、低成本控制

3 · 启动链路、启动介质与处理器

树莓派没有 BIOS。它靠 GPU 在 Arm CPU 之前读取一个纯文本文件 —— config.txt —— 来决定「怎么启动」。理解这条链路,是排查「黑屏、点不亮、卡彩虹屏」的前提。

3.1 七个阶段:从上电到 systemd

树莓派启动链路:七个阶段依次为接力关系① 上电复位SoC 内部 BootROM掩膜 · 不可修改② EEPROM bootloaderPi 4 / Pi 5 才有存于 SPI EEPROM可用工具升级③ start.elfVideoCore 固件读 config.txt④ ARM stub初始化中断控制器切 64 位可信世界⑤ Linux kernelkernel_2712.img加载 .dtb 与 overlay⑥ initramfs可选初始内存盘挂载真正的 rootfs⑦ systemd用户空间服务与登录不同机型的固件差别(这一步搞错,排查方向就全错)· Pi 4 / 400 / CM4 / Pi 5 / 500 / CM5:二阶段 bootloader 存在板载 SPI EEPROM 里,可用 rpi-eeprom-update 升级。· Pi 3B+ 及更早:没有 SPI EEPROM,bootcode.bin 直接从 SD 卡第一分区加载,SD 卡损坏就彻底点不亮。· Pi 5:EEPROM bootloader 会先检查分区里有没有 config.txt —— 没有这个文件就认为分区不可启动。· config.txt 由 GPU 阶段读取,所以任何人的改动都必须 reboot 才能生效,这是 MCU 工程师最容易忘的一条。· 想查看当前生效值:vcgencmd get_config arm_freq,或 vcgencmd get_config int 列出全部非零整数配置项。· 二级阶段的调试日志另有开关:uart_2ndstage=1 会把日志从 UART 吐出来。排查点不亮时最先开这个。
图 2 · 树莓派从上电到 systemd 的启动链路

来源:Raspberry Pi Documentation — config.txt / Bootloader configuration

3.2 每个阶段具体在做什么

阶段执行者做什么失败时的现象
① BootROMSoC 掩膜代码寻找并加载二阶段 bootloader。Pi 4/5 从 SPI EEPROM 找,早期机型从 SD 卡找 bootcode.bin完全无反应:电源 LED 亮但无任何输出
② EEPROM bootloaderSPI EEPROM 里的固件初始化 SDRAM、枚举启动设备(SD / USB / NVMe / 网络),按 BOOT_ORDER 依次尝试彩虹屏之后黑屏;或反复重启
③ start.elfVideoCore GPU读取 config.txt、加载设备树 .dtb 与 overlay、准备 framebuffer屏幕有彩虹画面但不进系统
④ ARM stubarmstub 二进制一小段 Arm 代码,初始化中断控制器等底层硬件,把控制权交给内核极罕见:停在 Loading kernel
⑤ Linux kernelkernel_2712.img解压自身、初始化驱动、按设备树匹配并 probe 设备停在内核 decompression OK 之后,或 panic
⑥ initramfs可选提供一个临时根文件系统并挂载真正的 rootfsUnable to mount root fs
⑦ systemdPID 1启动所有 target 与用户服务能进 emergency mode,或某个 service 反复失败

3.3 启动介质怎么选:microSD / USB / NVMe / 网络

树莓派必须有非易失存储介质作为 boot media。绝大多数机型从 microSD 启动,较新型号额外支持 USB 大容量存储、网络启动(PXE)、以及通过 PCIe 的 NVMe。

介质容量建议优点缺点适用
microSDOS Lite ≥ 8 GB
桌面版 ≥ 32 GB
最通用、更换方便、Imager 直接写随机写寿命有限、速度慢、震动易松原型开发、教育、轻度应用
USB SSD按需速度明显优于 SD、寿命好占用一个 USB 口、需要额外供电评估Pi 4 / Pi 5 的日常桌面与 NAS
NVMe(PCIe)按需最快、寿命最好需要 Pi 5 + HAT,成本最高Pi 5 高性能场景、数据库
网络启动 PXE服务器端无本地存储,集中管理需要服务器与稳定网络,配置复杂机房集群、教室批量部署
CM 板载 eMMCCM5:16/32/64 GB焊死在模块上,抗震、一致性好Lite 版本没有,需外部介质工业量产产品
SD 卡的两条硬限制

上限:只能使用容量小于 2 TB 的 SD 卡,超过 MBR 分区表上限的不被支持。下限(更常见):老一批设备只能从 256 GB 或更小的启动分区启动,包括 Raspberry Pi Zero、第一代替旗舰机型、以及采用 BCM2836 的早期 Pi 2。

3.4 处理器血缘:从 BCM2835 到 RP2350

树莓派的处理器分成两条完全独立的血缘:BCM27xx 系列(跑 Linux,Broadcom 应用处理器)与 RP 系列(自研微控制器,RP2040 / RP2350),外加一颗为 Zero 2 W 定制的 RP3A0(BCM2837 家族的重新封装)。

SoCCPU峰值频率GPU / 协处理器主要用在哪
BCM2835单核 ARM1176JZF-S700 MHz / Zero 1 GHzVideoCore IV 250 MHzPi 1 A/A+/B/B+ · Zero · Zero W · CM1
BCM2836四核 Cortex-A7900 MHzVideoCore IV 250 MHzPi 2B rev1.1(已停产)
BCM2837四核 Cortex-A53(Armv8)1.2 GHzVideoCore IV 400 MHzPi 3B 早期 · Pi 2B rev1.2 · CM3(已停产)
BCM2837B0四核 Cortex-A531.4 GHzVideoCore IV 400 MHzPi 2B rev1.3 · 3B 后期 · 3A+ · 3B+ · CM3+
RP3A0四核 Cortex-A53 64 位1 GHz(可超 1.2 GHz)VideoCore IVZero 2 W / Zero 2 W with headers
BCM2711四核 Cortex-A72(Armv8-A)64 位1.5 GHz(arm_boost 后 1.8 GHz)VideoCore VI 500 MHzPi 4B · CM4 · CM4S · Pi 400
BCM2712四核 Cortex-A76(Armv8-A)2.4 GHzVideoCore VII 12 核 960 MHzPi 5 · Pi 500 · 500+ · CM5
RP2040双核 Cortex-M0+133 MHzPIO ×2 · 可编程状态机Pico / Pico H / Pico W / Pico WH
RP2350双核 Cortex-M33 + 双核 Hazard3 RISC-V150 MHzPIO ×3 · SHA-256 · DCPPico 2 / Pico 2 W

3.5 BCM2712:Pi 5 的心脏

项目BCM2712 规格对比 BCM2711(Pi 4)
工艺16 nm28 nm
CPU四核 Arm Cortex-A76,Armv8-A ISA,最高 2.4 GHz四核 Cortex-A72,1.5 / 1.8 GHz
Cache每核 64 k I + 64 k D;512 kB L2 / 核;2 MB 共享 L3每核 32 kB D + 48 kB I;1 MB 共享 L2
GPUVideoCore V3D VII,12 核,960 MHz,OpenGL ES 3.1 + Vulkan 1.3VideoCore VI 500 MHz,OpenGL ES 3.0
内存32 位 LPDDR4X 接口,最高 17 GB/s,实际配到 1~16 GBLPDDR4-2400,最高 8 GB
视频4Kp60 HEVC 硬解;H264 1080p60 软解约占 50~60% CPUH.265 4Kp60 解码;H.264 1080p60 解码
显示改进 HVS + HDMI 控制器,双 4Kp60双 micro-HDMI,4Kp30 / 4Kp60 受限
ISP树莓派自研 ISP,1 GPixel/s沿用早期 ISP
PCIe×1 与 ×4 PCI Express 接口单 PCIe 链路用于 USB 3.0
整体性能常见 CPU / I/O 密集场景提升 2~3 倍—
BCM2712 的安全缓解已经开源在 Raspberry Pi OS 内核里

Cortex-A76 存在若干已知漏洞,官方在 Raspberry Pi OS 中全部做了缓解。用下面这条命令可以列出当前已生效的缓解措施:

$ lscpu | grep Vulnerability | grep -v "Not affected"
Vulnerability Spec store bypass:      Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:             Mitigation; __user pointer sanitization
Vulnerability Spectre v2:             Mitigation; CSV2, BHB

注意:Arm 处理器不使用微代码,所有缓解都在内核层面实现;第三方发行版如果内核老旧,可能缺少最新缓解,请以自己板子上 lscpu 的真实输出为准。

Raspberry Pi 5 系统架构:BCM2712 SoC + RP1 南桥LPDDR4X SDRAM1~16 GB · 最高 17 GB/sBCM2712 · 16 nm 应用处理器四核 Cortex-A76 @ 2.4 GHz64 k I/D + 512 k L2 每核 + 2 MB 共享 L3VideoCore VII GPU 12 核 @ 960 MHz自研 ISP 1 GPixel/s · HEVC 4Kp60 解码micro-HDMI ×2双 4Kp60 输出PCI Express ×4RP1 南桥 I/O 控制器树莓派自研 · 提供 Pi 5 绝大多数对外 I/OUSB 3.0 ×2USB 2.0 ×2 共用集线器千兆以太网 RJ45支持 PoE+ HATmicroSD 卡槽走 SDIO 总线40-pin GPIO 排针3.3 V 逻辑电平CSI / DSI ×222-pin 0.5 mm 复合座PCIe ×1 FFC 连接器接 NVMe HAT / 官方 M.2 HATWi-Fi 5 + 蓝牙 5 / BLESDIO 总线 · 2.4/5 GHz 双频UART 座 · RTC 电池 · PWM 风扇Pi 5 新增的调试与维护接口注:Pi 5 的 GPIO 由 RP1 提供,不再是 SoC 直出 —— 这正是旧版 RPi.GPIO 库失效的根本原因。
图 3 · Raspberry Pi 5 系统架构:BCM2712 SoC 与 RP1 南桥

来源:Raspberry Pi Documentation — Processors / IO controllers

3.6 RP1:为什么 Pi 5 的 GPIO 变了天

RP1 是树莓派自研的南桥芯片,通过 PCIe 挂在 BCM2712 下面,承担了 Pi 5 绝大部分对外 I/O:USB、以太网 MAC、SDIO(microSD 与 Wi-Fi)、GPIO 排针、CSI/DSI,以及那个 PCIe ×1 的 FFC 连接器。

这条架构变化带来的直接后果

GPIO 不再由 SoC 的 GPIO 寄存器提供,而是挂在 RP1 的字符设备上。因此依赖直接读写 SoC 寄存器的 RPi.GPIO 在 Pi 5 上无法工作。请统一改用 gpiozero(内部引脚工厂自动选择 lgpio 或 RP1 后端)或 libgpiod 命令行 / lgpio 库。详见第 8 章。

4 · 40-pin GPIO 与硬件接口

树莓派最有用的东西,是沿着板子顶边那一排排针。它同时也是最容易把板子烧掉的地方 —— GPIO 是 3.3 V 电平,且不是 5 V 容忍。

4.1 排针的物理布局

从 Raspberry Pi 1 Model B+ 起的所有当前在售机型都用同一个 40 pin 排针,引脚间距 0.1 in(2.54 mm)。Zero / Zero W / Zero 2 W 上是空焊盘,没有针,需自己焊或用第三方针套件。

40-pin GPIO 排针全图(面向 USB 口,SD 卡槽朝左上)奇数引脚(1 ~ 39)偶数引脚(2 ~ 40)13V3 电源3.3 V 输出25 V 电源5 V 输出3GPIO 2SDA1 · I2C45 V 电源5 V 输出5GPIO 3SCL1 · I2C6GND地7GPIO 4GPCLK08GPIO 14TXD · UART9GND地10GPIO 15RXD · UART11GPIO 17通用 IO12GPIO 18PCM CLK / PWM013GPIO 27通用 IO14GND地15GPIO 22通用 IO16GPIO 23通用 IO173V3 电源3.3 V 输出18GPIO 24通用 IO19GPIO 10MOSI · SPI020GND地21GPIO 9MISO · SPI022GPIO 25通用 IO23GPIO 11SCLK · SPI024GPIO 8CE0 · SPI025GND地26GPIO 7CE1 · SPI027GPIO 0ID_SD · HAT EEPROM28GPIO 1ID_SC · HAT EEPROM29GPIO 5通用 IO30GND地31GPIO 6通用 IO32GPIO 12PWM033GPIO 13PWM134GND地35GPIO 19PCM FS / MISO · SPI136GPIO 16CE2 · SPI137GPIO 26通用 IO38GPIO 20MOSI · SPI139GND地40GPIO 21SCLK · SPI1本图左侧为物理引脚号(Board),名称中的 GPIO x 为 BCM 编号。两者不是一回事。
图 4 · 40-pin GPIO 排针全图与复用功能

来源:Raspberry Pi Documentation — GPIO and the 40-pin header

4.2 三套编号:别再混淆 BCM 和 Board

编号体系定义用在什么地方示例
BCM(Broadcom)SoC 内部的 GPIO 通道号gpiozero / lgpio / libgpiod 的默认编号、官方文档、绝大多数 Python 库LED(17) 表示 BCM 17
Board(物理)排针上从 1 数到 40 的位置号万用表量测、盲插端子排、接线图BCM 17 在物理引脚 11 上
WiringPiGordon Henderson 早年库的编号已于 2019 年归档,不要再使用;旧 C 代码移植时改写成 BCM—
随时可以在板子上查自己的排针

gpiozero 默认随 Raspberry Pi OS 安装,它提供了一个命令行工具,在终端里输入:

$ pinout

会直接打印出你这块板子的彩色排针图。工具有 (a) 图形排针 (b) 引脚功能说明两部分,比翻官方文档更快。

4.3 电压与电流:三条不能碰的红线

  • 电平是 3.3 V,且不是 5 V 容忍。输出高为 3.3 V,输入也只能承受 3.3 V。把 5 V 传感器的输出脚直接接到 GPIO 上会烧毁 SoC(Pi 4)或 RP1(Pi 5)。需要 5 V 通信时用电平转换器或分压。
  • 3.3 V 和 5 V 电源脚的输出能力有限。排针上只有 2 个 5 V、2 个 3.3 V、8 个 GND 是固定功能,不能重新配置。
  • 不要直接驱动感性/大电流负载。LED 必须串电阻;电机、继电器一定要走 H 桥或电机驱动板,不能直连 GPIO。

4.4 复用功能速查

功能引脚备注
I2C1SDA = GPIO 2(固定上拉)
SCL = GPIO 3(固定上拉)
GPIO 2/3 有板上固定上拉电阻,做 HAT 识别是不能挪的
I2C0(ID EEPROM)ID_SD = GPIO 0
ID_SC = GPIO 1
专留给 HAT 上的 EEPROM 做自动识别,不要复用
SPI0MOSI = GPIO 10
MISO = GPIO 9
SCLK = GPIO 11
CE0 = GPIO 8 · CE1 = GPIO 7
最常用的一组,接 SPI NOR / NAND Flash 就用它
SPI1MOSI = GPIO 20
MISO = GPIO 19
SCLK = GPIO 21
CE0 = GPIO 18 · CE1 = GPIO 17 · CE2 = GPIO 16
辅助 SPI,可接第二个外设
UART0TX = GPIO 14
RX = GPIO 15
默认用作 Linux 串口控制台;要让出来跑业务需改 raspi-config 或 config.txt
硬件 PWMGPIO 12 / 13 / 18 / 19只有这 4 个脚是真硬件 PWM;其他脚的软件 PWM 抖动明显
软件 PWM任意脚gpiozero 可模拟,适合点 LED,不适合电机
GPIO 0 和 GPIO 1 保留给高级用途

文档中明确:GPIO 0 与 GPIO 1 在板上存在(物理引脚 27 / 28),但保留给高级用途 —— 即 HAT ID EEPROM 的 I2C。做产品或画 HAT 时不要把这两脚拿去当普通 IO。

4.5 供电规格:买错电源是最常见的「不稳定」来源

官方强调:推荐值要在插头侧测量,而不是在电源适配器侧;如果线材可拆卸,还要考虑线上的压降。

机型推荐电压电流官方配套电源备注
Raspberry Pi 5 / 5005 V @ 5 A27 W USB-C 电源若用 5 V 3 A,外设电流会被限制到 600 mA
Raspberry Pi 4B / 4005 V @ 3 A15 W USB-C 电源3 A 是底线,USB 硬盘多时要加带供电的集线器
Raspberry Pi 3 全系5 V @ 2.5 A12.5 W micro-USB 电源—
Raspberry Pi 2 Model B5 V @ 2.5 A12.5 W micro-USB 电源—
Raspberry Pi 1 全系5 V @ 2.5 A12.5 W micro-USB 电源—
Raspberry Pi Zero 全系5 V @ 2.5 A12.5 W micro-USB 电源注意别把线插到那个形状相同的 USB 数据口上
Raspberry Pi 500+5 V @ 5 A27 W USB-C 电源因内置 M.2 SSD,供电要求更严
插错口一次就废板

上电前务必确认:OS 已经写好了(没写系统不亮是正常的),电源线插的是标有 POWER IN / PWR IN / PWR 的那个口。Zero 系列上有一个形状相似的 USB 输出口,插错非常常见。

4.6 权限:新用户第一个要补的组

# 使用 GPIO 的前提:用户在 gpio 组里。默认用户默认具备,新建用户要手动加
$ sudo usermod -a -G gpio <username>

# 常用到的组还有这些
$ sudo usermod -a -G i2c,spi,dialout <username>

# 重新登录后才生效,验证一下
$ groups

5 · Raspberry Pi OS 与首次上电配置

把系统写进卡这件事官方只推荐一种方式:Raspberry Pi Imager。它不只是个写盘工具 —— 在离线阶段把主机名、用户、Wi-Fi、SSH 一次性配好,才是它的价值所在。

5.1 Imager 的五步流程

Imager 五步写卡 + 三步首启:离线预配置决定后面省多少事① 选 Device在 Imager 里指定机型② 选 OS也可用 Use Custom装本地镜像③ 选 Storage注意 Exclude system drives保持勾选④ Customisation主机名 / 用户 / Wi-FiSSH / Connect⑤ Write写入后自动校验不要 Skip verification把卡插到树莓派上⑥ 上电事先写好 OS 才会启动接外设后最后才通电⑦ 配置向导桌面 setup 会见到向导Imager 已预配置则跳过⑧ 交付使用SSH 登录或进入图形桌面关键取舍:第 ④ 步做得越完整,第 ⑦ 步越可能直接被跳过 —— 无头(headless)场景下更是必须做。Bookworm 起已不能用 wpa_supplicant.conf 配 Wi-Fi,无头场景务必走 Imager 这一步。
图 5 · Raspberry Pi Imager 写卡与首次上电流程

来源:Raspberry Pi Documentation — Getting started

5.2 Imager 的 App Options 与自定义源

Imager 左下角的齿轮(App Options)里藏着几个实用开关:

选项作用建议
Play sound when finished写入完成后播放提示音批量写卡时开着,不用盯屏幕
Eject media when finished完成后自动弹出介质开着,避免热拔插损坏分区
Enable anonymous statistics telemetry发送匿名统计(含设备与 OS 信息)涉密环境建议关闭
Disable warnings抑制写卡警告不建议,警告通常正是提示你选错了磁盘
自定义 Content Repository等价于环境变量 IMAGER_REPO_URL,指定 OS 列表与设备列表的来源离线内网部署、私有镜像仓库时使用

5.3 三个 OS 版本怎么选

版本包含什么推荐最小容量适用
Raspberry Pi OS Lite纯命令行,无桌面8 GB无头部署、服务器、嵌入式(首选)
Raspberry Pi OS(桌面版)桌面环境 + 基础软件32 GB学习、桌面替代、需要 GUI 调试
Raspberry Pi OS Full桌面 + 全套推荐应用32 GB教学、离线演示
VNC 与 Lite 不兼容

无头场景首选 Lite,但要注意:VNC 不兼容 Raspberry Pi OS Lite,因为它是屏幕共享,需要桌面会话。Lite 上只能用 SSH 或 Raspberry Pi Connect。

5.4 无头配置:三个文件搞定

没有显示器、键盘、鼠标时,需要在已写好 OS 的启动分区(bootfs)里放两个文件:

# 1) 创建名为 ssh 的空文件(没有扩展名),开启 SSH
$ touch ssh

# 2) 创建 userconf.txt,内容只有一行:用户名:加密密码
#    加密串用下面的命令生成(不是明文的密码)
$ openssl passwd -6

# 3) 把两个文件放进 bootfs 分区根目录,安全弹出,插到板上通电
项目规则
用户名必须以字母开头;只能包含小写字母、数字、下划线、连字符;最长 31 字符
密码串必须是 openssl passwd -6 生成的密文,不能写明文
openssl -6macOS 默认的 SSL 实现可能是 LibreSSL,不支持 -6 参数,先用 openssl version 确认,必要时 brew install openssl
Wi-Fi 配置从 Bookworm 起不再支持在 boot 分区放 wpa_supplicant.conf,只能用 Imager 预配置
登录地址ssh <username>@<hostname>.local(同一网络内靠 mDNS 解析)

5.5 首次上电的桌面配置向导

如果你在 Imager 里跳过了 Customisation,或者用了预装 OS 的套件,上电后会进入配置向导。它的七步是:

  • Welcome and Bluetooth:同时扫描蓝牙外设。欢迎窗口上显示的 IP 地址只有在走以太网时才有。
  • Country:国家 / 语言 / 时区;可勾选强制用英文界面、美式键盘。
  • User:设置管理员用户名与密码(规则同上,最长 31 字符)。
  • Wireless network:从列表里选 Wi-Fi 并输密码,也可跳过。
  • Default browser:Chromium 或 Firefox;可选卸载未选中的那个以省空间。
  • Software update:联网时更新系统,可能长达半小时。
  • Finish:确认后 Launch;若出现 Restart 则重启。

键盘不带鼠标时可以用 Tab 键在界面里前进;如果用蓝牙键鼠,配对用的 USB 蓝牙适配器要在开机前插好。

5.6 分区结构:Bookworm 之后路径变了

# 启动分区的新家(Bookworm 起)
/boot/firmware/config.txt      # GPU 早期固件读取的配置文件
/boot/firmware/cmdline.txt     # 内核命令行
/boot/firmware/overlays/       # 全部 Device Tree overlay(overlay_prefix 默认值)

# 很多老教程还写着 /boot/config.txt —— 在新系统里那是错的,改了不生效

# 查看当前生效的配置
$ vcgencmd get_config arm_freq
$ vcgencmd get_config int      # 所有非零整数配置项
$ vcgencmd get_config str      # 所有非空字符串配置项

5.7 系统与固件更新

# 常规系统与软件包更新
$ sudo apt update
$ sudo apt full-upgrade -y

# Pi 4 / Pi 5 的 EEPROM bootloader 更新(这一步和 apt 升级是两回事)
$ sudo rpi-eeprom-update
$ sudo rpi-eeprom-update -a

# 清理不再需要的包
$ sudo apt autoremove -y
能用 apt 就别用 rpi-update

rpi-update 会把内核和固件拉到开发版主线,风险较高。日常维护走 apt full-upgrade 即可,EEPROM 升级单独用 rpi-eeprom-update。

相关报告 · 交叉引用 5 器件全部展开收起 ▾
点开类目即可展开:具体文档 / 章节(点章直接跳转到该章)
eMMC
电路设计指南
软件设计规范
Linux 驱动开发
样机问题排查
量产问题排查
DDR/LPDDR(DRAM)
电路设计指南4
软件设计规范4
DDR2
章节(点章跳转,共 16 章)
DDR3
章节(点章跳转,共 16 章)
DDR4
章节(点章跳转,共 17 章)
DDR5
章节(点章跳转,共 17 章)
SPI NOR
电路设计指南
软件设计规范
Linux 驱动开发
样机问题排查
量产问题排查2
系统设计指南
SD NAND
电路设计指南
软件设计规范
Linux 驱动开发
量产问题排查
其他提及器件(共 3)
SPI NAND
电路设计指南
软件设计规范
Linux 驱动开发
样机问题排查
量产问题排查4
全志平台 SPI NAND NOR
章节(点章跳转,共 11 章)
海思平台 SPI NAND 量产常见失败
章节(点章跳转,共 11 章)
烧录成功但不开机 SPI NAND
章节(点章跳转,共 12 章)
瑞芯微平台 SPI NAND eMMC
章节(点章跳转,共 11 章)
系统设计指南3
PPI NAND(并行NAND)
电路设计指南
软件设计规范
Linux 驱动开发
量产问题排查