2. GPIO外设和I/O引脚的关系(IOMUXC外设) GPIO(General Purpose Input/Output)是芯片内的外设,每个GPIO外设连接到了外部的I/O引脚上,这时,和GPIO外设相连的I/O引脚起着通用输入输出的功能,所以被称为 GPIO 引脚。 但是,I/O引脚不仅可以和GPIO外设相连,还可以和芯片内部其它外设相连,比如和UART、IIC、SPI等外设...
GPIO只是一个CPU内提供的一种功能外设,CPU外部的I/O引脚会被赋予一种功能(GPIO、UART、I2C、SPI等);该功能由CPU内外设提供,具体是什么功能由IOMUX单元(I/O复用选择器)控制。 GPIO(General Purpose Input/Output)是芯片内的外设功能模块 ,每个GPIO外设连接到了外部的I/O引脚上,和GPIO外设相连的I/O引脚(I/O引...
要想让pinA、B用于GPIO,需要设置IOMUX让它们连接到GPIO模块; 要想让pinA、B用于I2C,需要设置IOMUX让它们连接到I2C模块。 所以GPIO、I2C应该是并列的关系,它们能够使用之前,需要设置IOMUX。有时候并不仅仅是设置IOMUX,还要配置引脚,比如上拉、下拉、开漏等等。 现在的芯片动辄几百个引脚,在使用到GPIO功能时,让你一个...
一、使用IOMUX方式配置GPIO 1. 以底板上UART2_TX引脚为例,可以看到该引脚目前的功能是串口功能,将该引脚复用为GPIO使用,在飞凌提供的硬件手册中可以查看到该引脚对应的padname为EIM_D26。 2.在内核源码linux4.1.15/arch/arm/boot/dts/imx6q-pinfunc.h中搜索EIM_D26可以看到如下宏定义: 其中 为该引脚作为GPIO...
一、使用IOMUX方式配置GPIO 1. 以底板上UART2_TX引脚为例,可以看到该引脚目前的功能是串口功能,将该引脚复用为GPIO使用,在飞凌提供的硬件手册中可以查看到该引脚对应的padname为EIM_D26。 2.在内核源码linux4.1.15/arch/arm/boot/dts/imx6q-pinfunc.h中搜索EIM_D26可以看到如下宏定义: ...
GPIO通用输入/输出外设提供了通用的可配置输入或者输出引脚,当引脚被配置为输出的时候,可以写入SoC内部寄存器进而控制引脚上的驱动状态,当引脚被配置为输入时,可以通过读取SoC内部寄存器的状态来确定引脚的输入状态,另外,GPIO外设也能产生芯片内核中断,GPIO是芯片IOMUX Controller(IO复用控制器)的模块之一。
IOMUXC_SW_PAD_CTL_PAD_ 红色:用于定义IO所属分组 蓝色:SW_MUX_CTL_PAD——IO复用功能选择寄存器;SW_PAD_CTL_PAD——IO属性配置寄存器 \<PADNAME>:引脚名 具体模式查看:IOMUXC Memory Map/Register Definition;具体寄存器名:(IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_05) ...
在芯片手册里你找不到pin controller,它是一个软件上的概念,你可以认为它对应IOMUX──用来复用引脚,还可以配置引脚(比如上下拉电阻等)。 注意,pin controller和GPIO Controller不是一回事,前者控制的引脚可用于GPIO功能、I2C功能;后者只是把引脚配置为输入、输出等简单的功能。
IOMUXC_GPR26[11] = 1,则 GPIO_11 对应 GPIO2[11],为 HSGPIO 下表列出了 i.MXRT 各型号上 GPIO/HSGPIO 切换控制关系: 三、PAD 运行速度 前面讲了,不管是使能了普通 GPIO 还是 HSGPIO,最终都是由同一个物理 PAD 来输出信号,因此 I/O 实际性能最终受限于这个 PAD 最大运行速度。
IOMUXC_GPR26[11] = 1,则 GPIO_11 对应 GPIO2[11],为 HSGPIO 下表列出了 i.MXRT 各型号上 GPIO/HSGPIO 切换控制关系: 三、PAD 运行速度 前面讲了,不管是使能了普通 GPIO 还是 HSGPIO,最终都是由同一个物理 PAD 来输出信号,因此 I/O 实际性能最终受限于这个 PAD 最大运行速度。