Linux(五)I.MX6U的管脚命名规则、了解寄存器

前言:

前面我们介绍了汇编语言的作用,实际上就是C环境还没准备好时,我们只能用汇编去进行一些必要的操作,例如DDR、SP指针的初始化、跳转指令等。具体该如何实现这些功能,并且点亮LED呢?

I.MX6U的管脚命名规则

STM芯片的管脚是用PA_ping0、PB_ping1、来命名。但是I.MX6U是用GPIO1~GPIO5 共五组 GPIO的管脚功能来命名,例如:IOMUXC_SW_MUC_CTL_PAD_GPIO1_IO00。虽然一个管脚也可以复用很多功能,但是他只挑选其中一个功能来命名。

此外,和STM初始化管脚不一样的地方在于,他有SW_MUX_CTL_PAD_* 和SW_PAD_CTL_PAD_*两种寄存器。这两种寄存器用来设置 IO 的复用功能和 IO 属性配置。SW_MUX_CTL_PAD_*负责设置管脚使用什么复用功能,SW_PAD_CTL_PAD_*用来设置管脚的属性,比如在输出时什么属性,输入时什么属性

Keeper ,保持就是在内核供电关掉之后,IO的输出能够自动维持在关电之前的那个状态。 Pull就是使能了上拉或者下拉功能

DR寄存器决定管脚的电平状态,如果设置GPIO_IO0为输出模式,DR[0]为1,输出高电平;DR[0]为0,输出低电平。如果为输入模式,DR[0]为1,则上拉;DR[0]为0,则下拉。

GPIO方向寄存器GDIR,决定是输出还是输入

寄存器PSR获取GPIO高低电平状态

寄存器ICR1、ICR2用来配置中断的触发方式

IMR中断屏蔽寄存器,用来设置是否使能中断的

ISR中断状态寄存器,就是用来看中断是否发生了的

EDGE_SEL 寄存器,这是边沿选择寄存器,是用来选择是否双边沿触发的,因为与ICR1、ICR2有冲突,因此如果设置了EDGE_SEL 寄存器,那么ICR1、ICR2这两个寄存器对应的GPIO就无效。

CMM 有 CCM_CCGR0~CCM_CCGR6 这 7 个寄存器,控制着 I.MX6U 的所有外设时钟开关

总结一下,要将 I.MX6U 的 IO 作为 GPIO 使用,我们需要一下几步:

①、使能 GPIO 对应的时钟。

②、设置寄存器 IOMUXC_SW_MUX_CTL_PAD_XX_XX,设置 IO 的复用功能,使其复用为 GPIO 功能。

③、设置寄存器 IOMUXC_SW_PAD_CTL_PAD_XX_XX,设置 IO 的上下拉、速度等等。

④、第②步已经将 IO 复用为了 GPIO 功能,所以需要配置 GPIO,设置输入/输出、是否使用中断、默认输出电平等。

 


前面介绍了I.MX6U的IO和寄存器,接下来就是如何从软件上实现

具体LED灯实现过程

LED0连接在GPIO1_IO3处,因此需要将该管脚设置为输出模式,上拉,低电平LED0亮

1.使能时钟,CCM_CCGR1 的 bit27 和 bit26设置为11

2.设置GPIO1_IO3复用功能为GPIO,寄存器IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03,在I.MX6U手册的1332页,寄存器地址Address: 20E_0000h base + 68h offset = 20E_0068h

将寄存器中的bit0-bit3,MUX_MODE设置为

0101 ALT5 — Select mux mode: ALT5 mux port: GPIO1_IO03 of instance: gpio1

3.配置GPIO1_IO3上拉,寄存器IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO03,在1588页,寄存器地址Address: 20E_0000h base + 2F4h offset = 20E_02F4h

bit15-14设置为

01 PUS_1_47K_Ohm_Pull_Up — 47K Ohm Pull Up

10 PUS_2_100K_Ohm_Pull_Up — 100K Ohm Pull Up

11 PUS_3_22K_Ohm_Pull_Up — 22K Ohm Pull Up

等等......

4.配置GPIO功能为推挽输出

就是去配置是输出还是输入,终端与否等等细节。。。

本实验中 GPIO1_IO03 是作为输出功能的,因此 GPIO1_GDIR 的 bit3 要设置为 1,表示输

出。

5.控制该引脚的电平状态,就是DR寄存器

GPIO1_DR 寄存器的 bit3 写入 0 即可控制 GPIO1_IO03 输出低电平

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值