荣品四核S5P4418开发板GPIO引脚功能配置J60为例
1、功能 J60这组GPIO有20个引脚,最常用的有8个引脚(J60-1~J60-8),这个8个引脚有普通I/O功能,也可以配置成SPI功能。电路原理图:
2、引耔阵式肥脚名字、功能配置 在对引脚进行操作之前,我们要先找到相应的引脚在驱动中的名字,这点很重要,如果引脚找错了,无论代码如何写也无法配置出需要的功能。 那么如何找到引脚在驱动的名字呢?以J60-1引脚为例 a) J60-1在开发板电路原理图的名字是MCU_SPICLK0,如图1所示。 b) MCU_SPICLK0在核心板电路原理图对应的是GPIOC29/SPICLK0,如图2所示。 c) GPIOC29在驱动中的命名是PAD_GPIO_C + 29(参考RP4418-4G android开发板说明文档.pdf),我们对PAD_GPIO_C + 29进行操作就可以实现对引脚MCU_SPICLK0操作。表1是各个引脚的名字与功能配置使用的宏(参考arch/arm/plat-s5p4418/drone2/include/cfg_gpio.h)。
3、功能配置(以J60-1引脚为例) 配置引脚功能要使用到函数NX_GPIO_SetPadFunction(index, bit, func);参数index表示GPIO组:PAD_GPIO_C,参数bit表示具体哪个GPIO引脚:29,参数func表示功能选择宏:PAD_FUNC_ALT0/ PAD_FUNC_ALT1。 如要将J60-1配置成SPI功能:NX_GPIO_SetPadFunction(PAD_GPIO_C, 29, PAD_FUNC_ALT1);
4、J60 中的GPIO与上下、左右四个按键(即K11、K20、K19、K15)共用相同的引脚,在按键驱动(参考:nxp_io_key.c)中,这几个引脚是中断功能的,如果在J60 GPIO控制驱动(参考:rp_gpio_ctrl.c),对这几个引脚进行操作,将会破坏其中断功能。如不需要使用这四个按键,可以不编译nxp_io_key.c,在 rp_gpio_ctrl.c修改代码可以实现对这几个引脚的控制。如需要使用到这四个按键,那么就不允许在rp_gpio_ctrl.c对这四个按键的引脚进行操作。在rp_gpio_ctrl.c中,只要控制J60_NUM这个宏的值就可以实现切换控制。 //如果J60_NUM == 0,那么驱动控制j60-1~j60-8, //如果J60_NUM == 4,那么驱动控制j60-5~j60-8 #define J60_NUM 4 //35行