引脚配置
3 Mar 2025
Read time: 3 minute(s)
Luban-Lite SDK 支持多个芯片平台,在 BringUp 之前,务必确认板卡使用的 SoC 具体型号以配置正确的引脚和内存。遵照以下流程确认相应的 SoC 型号并修改配置:
- 确认 SoC 的具体型号并阅读对应的芯片用户手册 —— 引脚复用章节,确认每个引脚能提供的功能。
下图是 D13x 功能复用表示例,其中 PA0 功能 1 为普通 GPIO 口,功能 5 为 UART0_TX:
- 打开 SoC 的
target/SoC/board/pinmux.c
引脚定义文件,配置引脚数量。
Luban-Lite SDK 各个开发板引脚定义在 target/SoC/board/pinmux.c 文件中。SDK 中对于 SoC 支持的引脚数量没有显式限制。
- 根据芯片用户手册及板卡的原理图,确定对应的引脚功能,并在
target/SoC/board/pinmux.c
引脚定义文件中配置引脚功能。
每个引脚同时只能被设置成一种功能,每个 pin 脚的配置,使用结构体描述。
struct aic_pinmux { unsigned char func; // 功能编号 unsigned char bias; // 内部上下拉设置,一般无需修改 unsigned char drive; // 驱动能力,一般不需要修改 char * name; // 引脚名称字符串,例如 "PA.0" };
例如 PA.0 和 PA.1 引脚:struct aic_pinmux aic_pinmux_config[] = { #ifdef AIC_USING_UART0 /* uart0 */ {5, PIN_PULL_DIS, 3, "PA.0"}, // PA.0 配置功能 5,用作串口 0 {5, PIN_PULL_DIS, 3, "PA.1"}, // PA.1 配置功能 5,用作串口 0 #endif ... };
更改接口配置时,确保 pinmux 没有冲突,对于 V1.1.2 及以后的 SDK,pinmux 冲突会有提示警告,警告示例如下:!!! Current pinmux conflicts! The conflicting pin: PIN LINES (target\d21x\demo128-nand\pinmux.c) PE.16: 370: {4,PIN_PULL_DIS,3,"PE.16"},
如出现冲突,说明一个引脚配置了多个功能,需要修改引脚配置,引脚冲突示例如下:{4, PIN_PULL_DIS, 3, "PE.16"}, {1, PIN_PULL_DIS, 3, "PE.16"},
- 在特殊情况下,可能需要按照下列流程配置烧录引脚,否则可略过此步。
在拉低烧录引脚后上电开机的情况下,可以让芯片进入烧录模式 。正常情况下,不需要配置烧录引脚,SDK 默认配置 PA0 作为烧录引脚。
重要: 如有需要,按照下列说明更改烧录引脚。对于 D21x,配置 /target/SoC/board/pack/ddr_init.json 文件。对于其他芯片,例如 D12x,配置 /target/SoC/board/pack/pbp_cfg.json 文件。配置示例如下:"upgmode": { // Set PIN to enter BROM's upgrading mode // If set upgmode_pin_cfg_reg to "0", disable bootpin detect in PBP "upgmode_pin_cfg_reg": "0x18700080", // PINMUX REG, PA0 "upgmode_pin_cfg_val": "0x10321", // PINMUX VAL "upgmode_pin_input_reg": "0x18700000", // INPUT VAL REG "upgmode_pin_input_msk": "0x1", // Bit MSK "upgmode_pin_input_val": "0x0", // Bit VAL "upgmode_pin_pullup_dly": "500", // n * 1us delay, limited to between 500us and 100ms },
- 如果板子设计使用了内部 LDO 给 CPU 供电,则需要使能内部 LDO,否则可略过此步。
配置内置 LDO 供电的方法如下:
- 执行下列命令进入 bootloader 配置界面,使能 LDO:
- 对于 V1.1.0 及之后的
SDK:
bm
- 对于 V1.1.0 之前 SDK,先 lunch 到 bootloader 配置再使用
me
命令打开 bootloader 配置。
在配置界面使能 LDO:Board options>Using Syscfg>Syscfg Parameter [*] SYSCFG LDO1X enable ---> (8) LDO1X voltage value level <0-15>
- 对于 V1.1.0 及之后的
SDK:
- 执行下列命令进入 rt-thread 配置界面,使能 LDO:
- 对于 V1.1.0 及之后的
SDK:
me
- 对于 V1.1.0 之前 SDK,先 lunch 到 rt-thread 配置后再使用
me
命令打开 rt-thread 配置界面。
在配置界面使能 LDO:Board options>Using Syscfg>Syscfg Parameter [*] SYSCFG LDO1X enable ---> (8) LDO1X voltage value level <0-15>
- 对于 V1.1.0 及之后的
SDK:
- 执行下列命令进入 bootloader 配置界面,使能 LDO: