IMX6ULL是飞思卡尔旗下的一款基于Arm Cortex-A7芯片,跟Arm Cortex-M系列芯片一样,都有GPIO、UART、I2C、SPI、SD、USB、以太网等功能模块,其处理器主频可达到800M(单核),因此其像是一块增强型的单片机,因为其没有内部可供用户使用的RAM与ROM,因此需要外扩RAM与FLASH。
IMX6ULL的GPIO共有5组,分别为GPIO1、GPIO2、GPIO3、GPIO4、GPIO5,而每组GPIO下又有多个IO,其中GPIO1有32个IO、GPIO2有22个IO、GPIO3有29个IO、GPIO4有29个IO、GPIO5有12个IO,总共有124个IO。

IMX6ULL的GPIO在使用前需要进行配置,与STM32类似,首先需要使能GPIO的时钟源,其次对于IO的复用功能配置,最后配置GPIO的输入输出功能。
一、使能GPIO时钟源
IMX6ULL的外设时钟设置,在参考手册《i.MX 6ULL Applications Processor Reference Manual》中的“Chapter 18:Clock Controller Module(CCM)”中配置,外设时钟使能相关的寄存器如下7个:CCM_CCGR0~CCM_CCGR6这7个寄存器。


每个CCM_CCGR都是32位寄存器,每2位控制一个外设的时钟开关,32位可以控制16个外设(CG0~CG15),如下图的CCM_CCGR寄存器的结构:

对于CCM_CCGR0寄存器,其所控制的16个外设如下图所示:


由于每2位控制一个外设,因此共有4种可能的时钟配置,如下图所示:

如上所示,GPIO2由CCM_CCGR0的位(31-30)配置,其它GPIO1~GPIO5也分别在CCM_CCGR1~6中的对应位配置,如下表所示:

二、IO复用与配置
&nb


574

被折叠的 条评论
为什么被折叠?



