学习imx6ull (1)

从今天开始写博客记录一下imx6ull的学习过程(1)

首先确定一下LED灯的电路图

学习imx6ull (1)_第1张图片

确定 LED0CPUGPIO1_3连接。

IMX6ULL IO配置过程:

配置时钟–>配置引脚的复用功能–>配置引脚的电气属性–>设置数据寄存器的数值以改变高低电平

1.参考手册的第十八章介绍了 imx6ull 的时钟树

其中寄存器 CCGR0–CCGR6 的控制着芯片上所有的时钟配置。如下图:
学习imx6ull (1)_第2张图片
找到GPIO1控制时钟所对应的控制位,将其设置为打开,这里填入11
在这里插入图片描述
不同配置代表的含义
学习imx6ull (1)_第3张图片

2.配置GPIO1_IO03引脚功能复用

参考手册的第三十二章有详细介绍
学习imx6ull (1)_第4张图片
学习imx6ull (1)_第5张图片
在这里插入图片描述
看第三个关键字,如果是MUX就是配置复用的 如果是PAD就是配置电气属性的

3.设置GPIO1_IO03的电气属性

学习imx6ull (1)_第6张图片
上图为配置寄存器,阴影部分的位是保留位

> HYS位(位16)
这个在IO输入时才有效,用作迟滞延时
在这里插入图片描述
>PUS位(位15与位14)

学习imx6ull (1)_第7张图片
选择引脚上拉和下拉,并确定阻值

PUE位(位13)-----图没有给出来

当 IO 作为输入的时候,这个位用来设置 IO 使用上下拉还是状态保持器。当为 0 的时候使用状态保持器,当为 1 的时候使用上下拉。状态保持器在IO 作为输入的时候才有用,顾名思义,就是当外部电路断电以后此 IO 口可以保持住以前的状态。

PKE(bit12)

此为用来使能或者禁止上下拉/状态保持器功能,为0 时禁止上下拉/状态保持器,为 1 时使能上下拉和状态保持器。

ODE(bit11):

当 IO 作为输出的时候,此位用来禁止或者使能开路输出,此位为 0 的时候禁止开路输出,当此位为 1 的时候就使能开路输出功能。
OD模式打开 ------1
OD模式关闭 ------0

SPEED (bit7 :6)

学习imx6ull (1)_第8张图片
设置IO引脚的电平翻转速度
DSE(bit5:3):

学习imx6ull (1)_第9张图片

上图 中的 DSE,当 IO 用作输出的时候用来设置 IO 的驱动能力,总共有 8 个可选选项,当设置为111时,驱动能力最强,但是芯片的功耗也就越大了

SRE(bit0):

设置压摆率,当此位为 0 的时候是低压摆率,当为 1的时候是高压摆率。这里的压摆率就是 IO 电平跳变所需要的时间,比如从 0 到 1 需要多少时间,时间越小波形就越陡,说明压摆率越高;反之,时间越多波形就越缓,压摆率就越低。如果你的产品要过 EMC 的话那就可以使用小的压摆率,因为波形缓和,如果你当前所使用的 IO做高速通信的话就可以使用高压摆率。

4.接下来介绍GPIO 设置

IMX6ULL一共有5组GPIO,每组最多32个引脚

GPIO1 0-31
GPIO2 0-21
GPIO3 0-28
GPIO4 0-28
GPIO5 0-11

IO设置寄存器一共有八个:
DR、 GDIR、 PSR、 ICR1、 ICR2、 EDGE_SEL、 IMR 和 ISR。前面我们说了 I.MX6U 一共有GPIO1~GPIO5 共五组 GPIO,每组 GPIO 都有这 8 个寄存器。我们来看一下这 8 个寄存器都是什么含义。(控制gpio高低电平,只需修改DR ,GDIR)
DR数据寄存器
学习imx6ull (1)_第10张图片
图中哪一位为1 那么这一位就输出高电平(前提是GDIR相应的位要为1,即为输出状态)
学习imx6ull (1)_第11张图片

以上寄存器介绍完毕,下一篇介绍如何编写汇编代码!!!

你可能感兴趣的:(Linux驱动开发,单片机,linux,物联网)