RDK X5 40PIN 管脚定义与 GPIO 应用详解 RDK X5 40PIN 管脚定义与 GPIO 应用详解RDK X5 40PIN 管脚定义与 GPIO 应用详解RDK X5 40PIN 管脚定义与 GPIO 应用详解背景环境准备硬件清单软件环境步骤一、了解 40PIN 硬件规格与安全事项二、理解管脚复用关系三、使用 srpi-config 配置管脚复用四、运行 GPIO 读写示例button_led.py4.1 硬件连接4.2 运行程序4.3 观察输出验证验证清单常见验证问题FAQQ1RDK X5 的 GPIO 电平是 3.3V 还是 5VQ23.3V 和 5V 的最大输出电流分别是多少Q3管脚复用中 spi2 为什么出现了两次Q4能否同时使用 uart3 和 i2c5Q5srpi-config 中 okay 和 disabled 分别代表什么Q6杜邦线连接时需要注意什么Q7除了 button_led.py还有哪些示例程序总结背景RDK X5 是 D-Robotics地瓜机器人推出的一款面向边缘 AI 与嵌入式开发的高性能开发板。板载了标准的 40PIN 扩展接口方便开发者连接各类外设例如 LED、按键、传感器、显示屏、电机驱动等。要充分用好这 40 根管脚首先需要搞清楚两件事每一根管脚的定义是什么以及如何将这些管脚配置为 GPIO 并进行读写控制。本文将以 RDK X5 为目标平台系统讲解以下内容40PIN 接口的硬件电气规格与安全注意事项管脚复用pin multiplexing机制与配置方法通过srpi-config工具切换专用功能与 GPIO 功能使用 Python 示例程序button_led.py完成 GPIO 输入读取与输出控制常见问题排查与验证方法无论你是刚拿到 RDK X5 的新手还是有一定嵌入式基础想要快速上手 GPIO 开发的工程师都可以跟着本文一步步操作。环境准备在开始动手之前请确认你已经准备好了以下硬件与软件环境。硬件清单项目说明RDK X5 开发板已烧录官方系统镜像建议 3.5.0 及以上版本电源适配器最小 25W 带载能力确保 5V 输出满足要求杜邦线若干根母对母或公对母根据外设接口选择外部器件LED 模块或按钮模块可选用于验证 GPIO 效果软件环境操作系统RDK X5 出厂自带 Ubuntu 系统默认用户名为sunrise。Python 版本系统自带 Python3GPIO 示例程序均基于 Python 编写。示例程序开发板镜像中/app/40pin_samples/目录下预置了多种 40PIN 功能测试代码包括 GPIO 输入/输出、PWM、I2C、SPI、UART 等开箱即用。确认示例目录存在ls/app/40pin_samples/正常情况下你会看到button_led.py、test_gpio.py、test_pwm.py等多个脚本文件。步骤一、了解 40PIN 硬件规格与安全事项在连接任何外设之前务必先了解 RDK X5 40PIN 接口的电气规格避免因接线错误导致板卡损坏。核心电气参数GPIO 逻辑电平3.3V最大耐压 3.46V。这意味着所有 GPIO 管脚输出的高电平为 3.3V输入端承受的最高电压不能超过 3.46V。3.3V 电源输出最大支持 800mA 电流。5V 电源输出最大支持 500mA 电流。电源适配器要求在上述最大输出电流条件下要求 RDK X5 的输入适配器最小支持25W带载能力。⚠️安全警告当连接外设时应当严格注意 40PIN 上的电源、地、信号电平的大小关系。任何过压、过流、ESD 等事件都有可能导致 RDK X5 受到不可逆的损伤。请务必在板卡下电关机状态下插拔杜邦线切勿带电操作简单总结安全三原则先断电再接线信号电平不超 3.3V供电电流不超限值二、理解管脚复用关系RDK X5 的 40PIN 管脚并不是单一功能的。很多管脚默认被配置为 UART、SPI、I2C、I2S 等专用功能。如果你想把某个管脚当普通 GPIO 使用就需要先关闭它对应的专用功能这就是管脚复用Pin Multiplexing机制。在 RDK X5 中部分接口之间存在复用关系同一组复用功能中只能开启其中一项。当所有复用功能都关闭时该管脚才表现为普通 GPIO 功能。RDK X5 管脚复用关系表接口功能 1接口功能 2uart3i2c5i2c0pwm2spi2pwm0spi2pwm1i2c1pwm3理解这张表的关键规则互斥生效例如uart3和i2c5共用同一组管脚你只能启用其中一个不能同时使用。全关则 GPIO当uart3和i2c5都设置为disabled时这组管脚就变成了普通 GPIO可以自由读写。配置对应关系okay表示该管脚被配置为专用功能如 UART、I2Cdisabled表示关闭该专用功能管脚可用于 GPIO。重启生效管脚复用配置修改后需要重启开发板才能生效。三、使用 srpi-config 配置管脚复用RDK X5 提供了srpi-config这一菜单式配置工具可以方便地管理管脚复用无需手动修改设备树文件。注意srpi-config程序需要在全屏命令行窗口中运行。如果你通过 SSH 远程连接请确保终端窗口已最大化如果在桌面环境中请打开一个全屏的终端窗口。启动配置工具sudosrpi-configsudo是提权管理命令这里必须输入。默认的sunrise账号不具备系统文件修改权限需要通过sudo以 root 权限进行配置。操作步骤在主菜单中使用键盘上下方向键选择3 Interface Options按回车键进入。在接口选项子菜单中选择I3 Peripheral bus config按回车键进入外设总线配置界面。在总线配置界面中你会看到各接口的启用/禁用状态列表。使用键盘上下键选择功能项按回车键切换功能的开/关状态。使用键盘左右键在Select和Exit之间切换按回车键确认。将需要关闭的专用功能设置为disabled选择Select保存然后退出。重启开发板使配置生效sudoreboot重启后被设置为disabled的管脚就会变为普通 GPIO可以被 GPIO 程序读写控制。四、运行 GPIO 读写示例button_led.py接下来我们通过一个实际示例来验证 GPIO 功能。开发板预置的/app/40pin_samples/button_led.py程序是一个经典的按键控 LED示例将37 号管脚配置为输入将31 号管脚配置为输出程序持续读取 37 号管脚的输入状态并根据该状态控制 31 号管脚的输出4.1 硬件连接⚠️再次提醒请确保 RDK X5 处于下电关机状态后再进行接线操作使用杜邦线连接将37 号管脚连接到3.3V或GND用于手动控制其高低电平输入。接 3.3V → 输入为高电平1接 GND → 输入为低电平031 号管脚作为输出可外接 LED 模块观察效果也可不接通过终端日志查看输出状态。确认接线无误后给开发板上电开机。4.2 运行程序进入示例目录并执行程序cd/app/40pin_samples/sudopython3 ./button_led.py程序启动后终端会输出如下信息Starting demo now! Press CTRLC to exit4.3 观察输出通过切换 37 号管脚的接线在 3.3V 和 GND 之间切换你可以观察 31 号管脚的输出随之变化Starting demo now! Press CTRLC to exit Outputting 0 to Pin 31 Outputting 1 to Pin 31 Outputting 0 to Pin 31当 37 号管脚接 GND低电平时31 号管脚输出0当 37 号管脚接 3.3V高电平时31 号管脚输出1按Ctrl C可以退出程序。提示如果接了 LED 模块到 31 号管脚你会看到 LED 随输入状态变化而点亮/熄灭效果更直观。验证完成上述步骤后可以通过以下方式验证 GPIO 功能是否正常工作验证清单验证项预期结果方法管脚复用配置修改后重启生效使用srpi-config修改配置后 reboot检查 GPIO 是否可读写GPIO 输入读取37 号管脚能正确读取高低电平将 37 号管脚分别接 3.3V 和 GND观察程序输出变化GPIO 输出控制31 号管脚输出跟随输入变化观察终端日志或外接 LED 状态程序退出CtrlC 正常退出运行程序后按 CtrlC确认程序终止无报错常见验证问题问题 1运行程序后管脚没有反应请按以下顺序排查检查管脚复用状态该管脚可能仍被配置为专用功能UART、I2C 等。使用srpi-config→3 Interface Options→I3 Peripheral bus config关闭对应功能后重启。检查管脚编号确保使用的是正确的管脚编号。40PIN 上的物理管脚编号对应丝印标注的 PIN1~PIN40程序中使用的是物理编号BOARD 模式。检查权限GPIO 程序需要sudo权限运行请确认命令前加了sudo。问题 2srpi-config 修改配置后不生效管脚复用配置修改后需要重启开发板才能生效。请确保执行了sudo reboot重启后再运行 GPIO 程序。FAQQ1RDK X5 的 GPIO 电平是 3.3V 还是 5VRDK X5 的 40PIN GPIO 均为3.3V 逻辑电平最大耐压 3.46V。请勿连接 5V 信号到 GPIO 管脚否则可能损坏开发板。40PIN 上虽然有 5V 电源引脚但那仅用于供电输出最大 500mA不是信号电平。Q23.3V 和 5V 的最大输出电流分别是多少3.3V 电源最大 800mA5V 电源最大 500mA在上述最大输出电流条件下要求输入适配器最小支持 25W 带载能力。如果外设功耗较大请注意不要超过电流限制。Q3管脚复用中 spi2 为什么出现了两次在复用关系表中spi2分别与pwm0和pwm1构成复用关系。这意味着 spi2 的管脚同时关联了两组 PWM 功能。如果你需要使用 spi2则 pwm0 和 pwm1 都无法使用反之如果你想使用 pwm0 或 pwm1则需要关闭 spi2。Q4能否同时使用 uart3 和 i2c5不能。uart3和i2c5属于同一复用组同一时间只能开启其中一个。如果两者都需要使用则需要考虑使用其他可用的 UART 或 I2C 接口。Q5srpi-config 中 okay 和 disabled 分别代表什么okay对应管脚被配置为专用功能如 UART、SPI、I2C、PWM 等此时该管脚不能作为 GPIO 使用。disabled关闭该管脚的专用功能管脚释放为普通 GPIO可以被 GPIO 程序读写控制。Q6杜邦线连接时需要注意什么必须在 RDK X5 下电关机状态下进行杜邦线连接或断开操作。带电插拔可能导致短路或电涌造成开发板不可逆的损坏。接线时请仔细核对管脚编号、电源和地线位置避免接反。Q7除了 button_led.py还有哪些示例程序/app/40pin_samples/目录下还预置了多种功能测试代码包括但不限于GPIO 输入/输出测试PWM 输出测试I2C 通信测试SPI 通信测试UART 串口通信测试所有测试程序均使用 Python 语言编写详细信息可以查阅 D-Robotics 官方文档中 40PIN 相关的其他章节。总结本文系统介绍了 RDK X5 开发板 40PIN 管脚的定义与 GPIO 应用核心要点回顾如下硬件规格40PIN GPIO 为 3.3V 逻辑电平最大耐压 3.46V3.3V 最大输出 800mA5V 最大输出 500mA适配器需支持 25W。操作时务必注意电气安全下电后再接线。管脚复用机制RDK X5 的部分管脚存在复用关系uart3/i2c5、i2c0/pwm2、spi2/pwm0、spi2/pwm1、i2c1/pwm3同一组中只能启用一项功能全部关闭则为 GPIO。配置修改后需重启生效。srpi-config 工具通过sudo srpi-config→3 Interface Options→I3 Peripheral bus config可以菜单式地管理管脚复用okay为专用功能、disabled为 GPIO操作简便。GPIO 实战通过/app/40pin_samples/button_led.py示例实现了 37 号管脚输入读取控制 31 号管脚输出验证了 GPIO 读写功能的完整流程。掌握了 40PIN 管脚定义与 GPIO 操作后你就可以进一步探索 PWM 调光、I2C 传感器读取、SPI 显示屏驱动等更丰富的外设应用了。希望本文能帮助你快速上手 RDK X5 的硬件扩展开发来源声明本文基于 D-Robotics 官方文档整理改写原始来源https://developer.d-robotics.cc/rdk_x_doc/Basic_Application/01_40pin_user_sample/40pin_define?v3.5.0pRDKX5