关键词:IO IOMUX IOMUX_CONTROLLER
目标:配置IO
步骤:
- 使能IOMUXController的时钟CLOCK_EnableClock(kCLOCK_Iomuxc);
- 设置相对应的IO口复用功能,IOMUXC_SetPinMux
- 配置IO口的属性:
- 压摆率,强制默认设置为低
- 驱动能力设置:默认设置为R0/6,暂未理解,后期分析
- 翻转频率:100MHz
- 高阻态开关。如果使能高阻态,那么配置上下来电阻是否还有效?需验证
- 后续状态保持开关,一般使能。具体情况看应用
- 后续状态处理方式:上下拉或者保持,与上面一条是否想关联?需验证
- 上下拉电阻值设置
- 滞后功能开关(目前尚不明白滞后功能啥用,默认关闭)
- 设置CPU频率
- 初始化IO口:GPIO_PinInit(EXAMPLE_LED_GPIO, EXAMPLE_LED_GPIO_PIN, &led_config);
IO口复用设置解析
IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B0_09_GPIO1_IO09,0U);
/*
----------------IO复用设置------------
IOMUXC_GPIO_AD_B0_09_GPIO1_IO09的定义为 0x401F80E0U, 0x5U, 0, 0, 0x401F82D0U
含义分别为:muxRegister,muxMode,inputRegister,inputDaisy,configRegister
根据SDK,每个IO口的每个复用功能,都定义有这个宏定义。所以后期要使用某个IO口的功能,直接使用宏即可,不用考虑其含义
*/
IO口属性设置解析
IOMUXC_SetPinConfig(IOMUXC_GPIO_AD_B0_09_GPIO1_IO09,0x10B0u);
/*
Slew Rate Field: Slow Slew Rate 低压摆率,不明白,默认值
Drive Strength Field: R0/6 驱动功率,3.3v供电,R0=260欧姆
Speed Field: medium(100MHz) 频率:有50MHz 100MHz 200MHz
Open Drain Enable Field: Open Drain Disabled 禁止高阻态
Pull / Keep Enable Field: Pull/Keeper Enabled 开启后续状态保持
Pull / Keep Select Field: Keeper 后续状态为保持,也可以设置为pull
Pull Up / Down Config. Field: 100K Ohm Pull Down 下拉,电阻为100千欧
Hyst. Enable Field: Hysteresis Disabled 滞后禁止,不明白,默认值
*/