GPIO介绍

原文:http://baike.baidu.com/view/980829.htm


gpio

General Purpose Input Output (通用输入/输出)简称为GPIO,或总线扩展器,利用工业标准I2C、SMBus™或SPI™接口简化了I/O口的扩展。当微控制器或芯片组没有足够的I/O端口,或当系统需要采用远端串行通信或控制时,GPIO产品能够提供额外的控制和监视功能。


简介

每个GPIO端口可通过 软件分别配置成输入或输出。Maxim的GPIO产品线包括8端口至28端口的GPIO,提供推挽式输出或漏极开路输出。提供微型3mm x 3mm QFN封装。

GPIO介绍_第1张图片


优点

GPIO的优点(端口扩展器) 

低功耗:GPIO具有更低的功率损耗(大约1μA,μC的工作电流则为100μA)。   

集成IIC从机接口:GPIO内置IIC从机接口,即使在待机模式下也能够全速工作。   

小封装:GPIO器件提供最小的封装尺寸 ― 3mm x 3mm QFN!   

低成本:您不用为没有使用的功能买单!   

快速上市:不需要编写额外的代码、文档,不需要任何维护工作!   

灵活的灯光控制:内置多路高分辨率的PWM输出。   

可预先确定响应时间:缩短或确定外部事件与中断之间的响应时间。   

更好的灯光效果:匹配的电流输出确保均匀的显示亮度。   

布线简单:仅需使用2条就可以组成IIC总线或3条组成SPI总线。   

于ARM 的几组GPIO引脚,功能相似,GPxCON 控制引脚功能,GPxDAT用于读写引脚数据。

另外,GPxUP用于确定是否使用上拉电阻。 x为A,B,,H/J,  没有上拉电阻。

GPIO介绍_第2张图片

ai 寄存器

1. GPxCON 寄存器  用于配置引脚功能。 Configure   PORT A 与 PORT B~PORT H/J 在功能选择上有所不同,GPACON 中每一位对应一根引脚,共 23 个引脚。当某位被设为 0 时候,其为 输出引脚。此时我们可以在GPADAT 中相应的写入 1或者 0 来让此引脚输出高电平或者低电平。  一般而言 GPACON 通常被设为 1 ,以便访问外部器件。  PORT B~PORT H/J  在寄存器操作方面完全相同,GPxCON 中每两位控制一根引脚,00 输入 01 输出,10 特殊功能,11 保留不用。

2. GPxDAT 寄存器  GPxDAT用于读写引脚,当引脚被设为输入时候,读此寄存器可知道相应引脚的电平状态高还是低,当引脚被设为输出时候,写此寄存器的位,可令引脚输出高电平还是低电平。

3. GPxUP寄存器  GPxUP寄存器某位为1的时候,相应管脚没有上拉电阻;为 0 时候 相应管脚有上拉电阻。上拉电阻作用在于,当GPIO 引脚处于第三种状态时候,既不是输出高电平,也不是输出低电平。而是呈现高阻态,相当于没有接芯片。它的电平状态由上下拉电阻决定。


扩展阅读:
  • 1

    Gpio的初始化在文件gpio_drv.c里,可以用MTK提供的工具配置也可以用代码在程序里直接操作,二者的选择要看有没有定义宏__CUST_NEW__

  • 2

    工具初始化时要注意配置codegen.dws,该文件里配置的只是对gpio口的初始化,并不是所有的gpio口都要设置成工作时的模式,尤其是当作时钟和蓝牙部分的gpiio口,初始化时就设置成工作模式的话会造成电机电流过大的。

  • 3

    代码初始化时DRV_WriteReg()、DRV_Reg对gpio口寄存器操作,分别定义gpio口的模式,和方向(0:输入;1:输出),对单个gpio口操作用到以下函数(以gpio25为例):

  • 4

    GPIO_ModeSetup(25, 0); 设置GPIO25为模式0

  • 5

    GPIO_InitIO(1,25); 初始化GPIO25方向为输出

  • 6

    GPIO_WriteIO(0, 25 ); 设值GPIO25输入低电平0




你可能感兴趣的:(工作,扩展,工具,MTK,产品,output)