i.MX6ULL终结者GPIO分析

i.MX6 ULL终结者开发板使用的cpu是I.MX6ULL,该cpu的参考手册我们放到了光盘目录的“i.MX6UL终结者光盘资料\03_开发板硬件资料\02_芯片资料\1、I.MX6ULL芯片资料.zip ”压缩包里面,如图 1所示:


i.MX6ULL终结者GPIO分析_第1张图片

图 1

打开该手册的32章节“Chapter 32 IOMUX Controller (IOMUXC)”,我们看到32章节的目录如图 2所示:


i.MX6ULL终结者GPIO分析_第2张图片

图 2

上图中的“IOMUXC_SW_MUC_CTL_PAD_GPIO1_IO00”就是GPIO的命名。其命名格式是“IOMUXC_SW_MUC_CTL_PAD_XX_XX”,其中的XX_XX就是GPIO的命名。例如:JTAG_MOD,GPIO1_IO00,UART4_TX_DATA等。I.MX6ULL的GPIO命名是根据IO所拥有的功能来命名的,比如我们看到GPIO1_IO00,就可以知道这个是GPIO功能,看到UART4_TX_DATA就知道这个是串口4的发送功能。在参考手册的32章节列出了i.MX6ULL的所有IO引脚,我们可以看到具有GPIO功能的引脚只有“GPIO1_IO00~GPIO1_IO09”这10路GPIO,实际上i.MX6ULL的IO口都是具有复用功能的(一个IO口可以配置成好几种功能,如果不做配置,会有一种默认的功能)。下面我们看看i.MX6ULL的IO引脚复用功能。

我们以“IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO00”这个IO为例,打开手册的32.6.7(1568页)如图 3所示:
i.MX6ULL终结者GPIO分析_第3张图片

图 3

从上图可以看到该IO对应的配置寄存器“SW_MUX_CTL_PAD_GPIO1_IO00”,寄存器地址是0X20E005C,寄存器为32位,其中的bit0-bit3(MUX_MODE)这四位是设置IO引脚复用功能的。从表中我们可以看到GPIO1_IO00有9种复用功能,分别对应ALT0-ALT8,其中ALT5就是作为 GPIO1_IO00,如图 4所示:
i.MX6ULL终结者GPIO分析_第4张图片

图 4

从上图中我们可以看到GPIO1_IO00这个引脚还可以配置成ENET2_REF_CLK2,I2C2_SDA等功能,这就是IO的复用功能。

下面我们再来看下“IOMUXC_SW_MUX_CTL_PAD_UART4_TX_DATA”这个IO引脚。这个引脚的描述在32.6.29章节(1590页),如图 5所示:
i.MX6ULL终结者GPIO分析_第5张图片

图 5

从上图可以看到该引脚可以复用成7种不同的模式。其中ALT5(0101)表示可以复用为GPIO1_IO28。所以我们可以看到i.MX6ULL的GPIO不止GPIO1_IO00-GPIO1_IO09这10个,其它的IO也可以复用为GPIO。在第四章节我们可以看到i.MX6ULL的GPIO一共有5组:GPIO1、GPIO2、GPIO3、GPIO4、GPIO5,其中GPIO1有32个IO(IO0-IO31),GPIO2有22个IO(IO0-IO21),GPIO3有29个IO(IO0-IO28),GPIO4有29个IO(IO0-IO28),GPIO5有12个IO(IO0-IO11),这样i.MX6 ULL一共有124个GPIO。如果我们想要查看每个IO能复用成什么功能,可以查看第4章,如果我们要设置某个IO的功能,需要查看第32章。

i.MX6ULL终结者GPIO分析_第6张图片

你可能感兴趣的:(i.MX6ULL终结者,#,第二部分,裸机开发,嵌入式,linux,开发平台)