山高疑日近,海阔觉天低

I.MX6ULL 引脚寄存器

I.MX6U 的 IO 是怎么命名的呢

I.MX6ULL 参考手册的第 32 章“Chapter 32: IOMUX Controller(IOMUXC)”,第 32 章

IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO00 32bit  低4位控制复用功能
IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO00  32bit 具体功能如下如,请查阅<I.MX6ULL 参考手册>32章节

HYS(bit16):用来使能迟滞比较器,当 IO 作为输入功能的时候有效,用于设置输入接收器的施密特触发器是否使能。如果需要对输入波形进行整形的话可以使能此位。此位为 0 的时候禁止迟滞比较器,为 1 的时候使能迟滞比较器。
PUS(bit15:14):用来设置上下拉电阻的,一共有四种选项可以选择-00 100K 下拉;01 47K 上拉;10 100K 上拉;11 22K 上拉
PUE(bit13):当 IO 作为输入的时候,这个位用来设置 IO 使用上下拉还是状态保持器。当为 0 的时候使用状态保持器,当为 1 的时候使用上下拉。状态保持器在IO 作为输入的时候才有用,顾名思义,就是当外部电路断电以后此 IO 口可以保持住以前的状态。
PKE(bit12):此位用来使能或者禁止上下拉/状态保持器功能,为0 时禁止上下拉/状态保持器,为 1 时使能上下拉和状态保持器。
ODE(bit11):当 IO 作为输出的时候,此位用来禁止或者使能开路输出,此位为 0 的时候禁止开路输出,当此位为 1 的时候就使能开路输出功能。

SPEED(bit7:6):当 IO 用作输出的时候,此位用来设置 IO 速度:00 低速 50M;01 中速 100M;10 中速 100M;11 最大速度 200M
DSE(bit5:3):当 IO 用作输出的时候用来设置 IO 的驱动能力,总共有 8 个可选选项:
位设置 速度
000 输出驱动关闭
001 R0(3.3V 下 R0 是 260Ω,1.8V 下 R0 是 150Ω,接 DDR 的时候是 240Ω)
010 R0/2
011 R0/3
100 R0/4
101 R0/5
110 R0/6
111 R0/7
SRE(bit0):对应图 8.1.4.2 中的 SRE,设置压摆率,当此位为 0 的时候是低压摆率,当为 1的时候是高压摆率。这里的压摆率就是 IO 电平跳变所需要的时间,比如从 0 到 1 需要多少时间,时间越小波形就越陡,说明压摆率越高;反之,时间越多波形就越缓,压摆率就越低。如果你的产品要过 EMC 的话那就可以使用小的压摆率,因为波形缓和,如果你当前所使用的 IO做高速通信的话就可以使用高压摆率。

如果IO复用是GPIO,那么还有8*5=40个寄存器控制;8代表每个GPIO组有8个寄存器,5代表IMX6U有5个GPIO组.8个寄存器如下

DR、GDIR、PSR:32bit,分别是 数据输出,方向,数据输入,每一位代表了GPIO组从低到高.

ICR1、ICR2、EDGE_SEL、IMR , ISR:32bit,中断控制.ICR1、ICR2控制触发方式,IMR触发屏蔽,ISR触发状态,EDGE_SEL边沿触发,详细还是看<I.MX6ULL 参考手册>32章节

时钟使能:

《I.MX6UL 参考手册》的第 18 章“Chapter 18: ClockController Module(CCM)”

CCM_CCGR0~CCM_CCGR6 这 7 个寄存器一共控制7*16=112个外设时钟,每一个外设的控制是由2bit构成:位设置 时钟控制
00 所有模式下都关闭外设时钟。
01 只有在运行模式下打开外设时钟,等待模式和停止模式下均关闭外设时钟。
10 未使用(保留)。
11 除了停止模式以外,其他所有模式下时钟都打开。

总结一下,要将 I.MX6U 的 IO 作为 GPIO 使用,我们需要一下几步:
①、使能 GPIO 对应的时钟。CCM_CCGRi
②、设置寄存器 IOMUXC_SW_MUX_CTL_PAD_XX_XX,设置 IO 的复用功能,使其复用为 GPIO 功能。
③、设置寄存器 IOMUXC_SW_PAD_CTL_PAD_XX_XX,设置 IO 的上下拉、速度等等。
④、设置输入/输出、是否使用中断、默认输出电平等。 DR、GDIR、PSR,ICR1,ICR2,EDGE_SEL、IMR , ISR

赞(0) 打赏
未经允许不得转载:Mr.Zhang » I.MX6ULL 引脚寄存器

你的打赏是我的动力

登录

找回密码

注册