一款基于Cortex-A7芯片, IMX6ULL之IO与GPIO

        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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值