Skip to content

GPIO引导模式

GPIO引导模式仅在树莓派 3A +,3B,3B +,计算模块 3 和 3 +上可用

树莓派可以配置为允许使用连接到 GPIO 连接器的硬件在开机时选择引导模式:这是 GPIO 引导模式。这是通过设置 SoC 的 OTP 存储器中的位来完成的。设置这些位后,它们会永久分配 5 个 GPIO ,以进行此选择。一旦设置了 OTP 位,就不能将它们复位,因此您应该仔细考虑启用它,因为那 5 条 GPIO 线将始终控制引导。尽管一旦启动了 Pi ,您就可以将 GPIO 用于其他功能,但是您必须对其进行设置,以使它们在 Pi 启动时启用所需的启动模式。

要启用 GPIO 引导模式,请将以下行添加到config.txt文件中:

program_gpio_bootmode = n

其中 n 是您要使用的 GPIO 组。然后重新启动 Pi 一次,以使用此设置对 OTP 进行编程。组 1 是 GPIO 22-26,组 2 是 GPIO 39-43。除非具有计算模块,否则必须使用存储区 1 :存储区 2 中的 GPIO 仅在计算模块上可用。由于 OTP 位的排列方式,如果您首先为存储体 1 编程 GPIO 引导模式,则可以选择以后选择存储体 2 。反之则不成立:一旦将存储区 2 选择为 GPIO 引导模式,就无法选择存储区 1 。

启用 GPIO 引导模式后,树莓派将不再引导。您必须上拉至少一个启动模式 GPIO 引脚,才能启动 Pi 。

GPIO引导模式引脚分配

树莓派 3B和计算模块 3

|银行 1 |银行 2 |启动类型| |:----:|:----:|:--------:| | 22 | 39 | SD0 | | 23 | 40 | SD1 | | 24 | 41 | NAND(当前不支持 Linux )| | 25 | 42 | SPI(当前不支持 Linux )| | 26 | 43 | USB |

上表中的 USB 选择 USB 设备引导模式和 USB 主机引导模式。为了使用 USB 引导模式,必须在 OTP 存储器中启用它。有关更多信息,请参见USB设备启动USB主机启动

树莓派 3A +,3B +和计算模块 3 +

|银行 1 |银行 2 |启动类型| |:----:|:----:|:--------:| | 20 | 37 | SD0 | | 21 | 38 | SD1 | | 22 | 39 | NAND(当前不支持 Linux )| | 23 | 40 | SPI(当前不支持 Linux )| | 24 | 41 | USB设备| | 25 | 42 | USB主机-大容量存储设备| | 26 | 43 | USB主机-以太网|

引导顺序

尝试以 GPIO 线的数字顺序尝试各种引导模式,即 SD0 ,然后是 SD1 ,然后是 NAND 等。

引导流程

SD0是 Broadcom SD卡/MMC接口。当 SoC 中的启动 ROM 运行时,它将始终将 SD0 连接到内置的 microSD 卡插槽。在具有 eMMC 设备的计算模块上,SD0已连接到该模块;边缘连接器上提供了 Compute Module Lite SD0上的 SD0 ,并连接到 CMIO 载板上的 microSD 卡插槽。 SD1是 Arasan SD卡/MMC接口,也支持 SDIO 。所有具有内置无线局域网的树莓派型号都使用 SD1 通过 SDIO 连接到无线芯片。

GPIO线上的默认拉电阻为 50K 欧姆,如[BCM2835 ARM外设数据表]第 102 页中所述(../../hardware/raspberrypi/bcm2835/BCM2835-ARM-Peripherals.pdf)。建议使用 5K 欧姆的拉电阻来拉起 GPIO 线:这将允许 GPIO 起作用,但不会消耗太多功率。