NXP LPC54110使用体验5:IOCON寄存器介绍 Mabel_7b8(QQ:724419756) 今天我们就来讲一下NXP LPC54110的IOCON寄存器的相关内容,该部分内容同样也是直接根据NXP LPC54110的手册的第九章进行翻译的,由于本人的英语水平和专业词汇的限制,翻译过程中肯定存在不少问题,这些内容都是没有经过审核的。 9.2、特性 标准IO端口引脚可以配置为一下模式: 1:上拉电阻、下拉电阻器 2:开漏模式 3:反转功能 引脚PIO0_23到PIO0_26是开漏引脚,为了适应不同的I2C总线速度可以进行不同的配置。具体的不同配置可参考本章节的内容。 9.3、基本配置 使能AHBCLKCTRL0寄存器的IOCON时钟。一旦引脚配置之后,为了省电可以将IOCON时钟禁止。 9.4、普通描述 GPIO可以配置为数字输出、数字输入、模拟输入这几种配置。当一个GPIO引脚要配置为数字输出模式时,需要使能开漏、使能输出功能;当配置为数字输入时需要使能中继器、使能输入反转、使能过滤器、使能上下拉等功能;当配置为模拟输入模式时需要使能模拟输入功能; 9.4.2、IOCON寄存器 IOCON寄存器控制着设备引脚的功能。每个GPIO引脚都有专门的控制寄存器,通过该寄存器可以进行功能和特性选择。每个引脚都有一个唯一系列的功能特性。并不是所有的特性在所有的引脚上都可以选择的,而是每个引脚有自己对应的功能特性。如,拥有I2C功能的引脚可以配置为不同的I2C总线模式,拥有模拟交替功能的引脚有模拟模式这个选项可以选择。 多连接 自从一个特定的外设函数可以在多个引脚上支持,那么将多个引脚配置成同样的函数也是可能的。如果一个外设输出函数被配置在多个引脚上,实际上它将被路由到那些引脚。如果一个外设输入函数被定义为多个源,那么其值将会被进行逻辑组合,可能会导致不正确的外设操作。因此,应注意避免这种情况。 9.4.2.1、引脚函数 IOCON寄存器的FUNC位可以设置为GPIO功能(为0)或者是其他特殊函数。如果该引脚设置为GPIO功能,应该设置DIR寄存器来确定该引脚的方向为输入还是输出。如果该引脚设置为其他特殊函数,那么该引脚的方向是由该函数自动控制的,此时DIR寄存器的设置对这些特殊功能函数的配置没有生效。 9.4.2.2、引脚模式 IOCON寄存器的MODE位可以为每个引脚选择片上上拉或下拉电阻或者选择中继器模式。 片上电阻配置可以为使能上拉、使能下拉、无上拉/下拉三种模式,默认情况下配置的是使能上拉。 中继器模式:当引脚为高电平的时候使能上拉电阻器,当引脚为低电平的时候使能下拉电阻器。这样当一个引脚被配置为输入模式并且没有外部驱动的时候可以保持最后的状态。这个状态保留在深度休眠模式是不适用的。中继器模式一般是用来保护引脚短时间内没有驱动时浮动。 9.4.2.3、滞后 数字函数的输入缓冲区有内置的滞后,查阅具体设备的数据手册来获取更多信息。 9.4.2.4、反向引脚 这个选项包括避免在输入端包含外部反相器,这意味着将外部信号的极性反相。 9.4.2.5、模拟、数字模式 当引脚不在数字模式(DIGIMODE = 0 )那么该引脚就在模拟模式,模拟模式则数字引脚函数被禁止,而所有的模拟引脚函数被使能。在数字模式(DIGIMODE = 1)时,所有的模拟引脚函数都被禁止,而数字引脚函数被使能。这个可以保护超过电源提供的电压或者是参考电压范围外的电压的模拟输入引脚,它们一般是5V电压的。所有的引脚类型都支持这个控制,包括那些不支持模拟功能的引脚类型。 为了使用有ADC输入选项功能的引脚,选择GPIO功能(FUNC = 0)并且禁止数字引脚函数(DIGIMODE = 0)。MODE域也应该设置为0. 在模拟模式,MODE域应该为“闲置”(00)模式,此时INVERT、FILTEROFF和OD设置都不起作用。对那些有模拟函数的未连接的引脚,DIGIMMODE位设置为1,并且选择MODE域中的上拉或下拉模式。 9.4.2.6、输入过滤器 一些有过滤器的引脚可以通过FILTEROFF位来禁止过滤器的功能,过滤器会抑制输入电压小于10ns。 9.4.2.7、输出转换率 数字输入的SLEW位在不需要快速切换状态的时候应该设置为“标准”。该设置允许在不降低设备的功率、接地分布的前提下可进行多个输出同时切换,对信号转换时间的影响也很小。如果应用程序的模拟精确度要求高的话这点是十分重要的。 9.4.2.8、I2C模式 支持I2C的引脚(P0_23到P0_28)有额外的配置位。为了支持不同的I2C还有多个配置。这些引脚不是硬件连线的,所以用作non_I2C功能会更容易一些。 为了non_I2C操作,无论I2CSLEW和I2CDRIVE如何配置,这些引脚需要保持开漏模式且只能低驱动。如果这些引脚用作输出(除非只用来下沉电流),一般会使用一个外部上拉电阻器。保持I2CSLEW = 1,I2CDRIVE = 0,且I2CFILTER = 0以最大限度的兼容其他GPIO引脚。 9.4.2.9、开漏模式 当选择输出时,既不是通过FUNC域选择指定函数,也不是通过GPIO的DIR寄存器中配置为1(输出方向),OD位设置为1选择了开漏模式,即一个1禁止了高驱动的晶体管。这个选项对主要的I2C引脚没有影响。注意这个模仿开漏模式引脚在一定程度上与真正的开漏模式输出引脚是不同的。 9.5、寄存器描述 每个端口引脚PIOm_n都有对应的IOCON寄存器来控制引脚的特性。 9.5.1、D类型IOCON寄存器(PIO0) 这个IOCON寄存器描述适用于大部分的端口引脚,其他有ADC或者I2C函数的引脚改变相关IOCON寄存器的内容。 D类型引脚支持的函数: 端口0:如下图所示: 9.5.2、I类型IOCON寄存器(PIO0) 下表中的IOCON适用引脚P0(23-26). 9.5.3、A类IOCON寄存器(PIO0、PIO1) 下表中的IOCON表适用P029_P0_31引脚;P1_0-P1_8引脚;
|