热门关键字:  ubuntu  分区  函数  linux系统进程  Fedora

PXA27x GPIO Controller

来源: 作者: 时间:2008-06-19 Tag: 点击:
  • 概述:

       PXA27x提供121GPIO口。每个GPIO口都可编程为输出、输入或特定用途的双向口。作为input使用时,GPIO口可作为中断源。复位时所有GPIO口缺省配置为输入口。为使功耗最小,应将所有不用的GPIO配置为output

       GPIO<120:0>,其中GPIO<120:119>只有PXA271PXA272PXA273支持。

       一部分GPIO口具有唤醒功能,可以将处理器从睡眠和深度睡眠模式唤醒。PXA27x被唤醒或复位时(硬件复位、上电复位、GPIO复位、watch dog复位、睡眠或深度睡眠),GPIO输入通道(input path)是关闭的,直到读禁止信号(PSSR[RDH]read disable hold)位被清零。PSSR[RDH]位应在用户完成对GPIO的配置和初始化后清零,否则出现未知结果。

 

  • 特性:

       大部分外围引脚兼作GPIO用。以下是GPIO的一些共性:

Ø     用作inputGPIO可被采样,也可以编程为上升或下降沿触发的中断源;

Ø     用作outputGPIO可以被独个清零或置位;

Ø     每个GPIO都可编程为其他用途(alternate functions)。

 

  • 操作:

一、用作专用GPIOApplication-Specific GPIO

       使用GPIO Pin Direction寄存器GPDR0/1/2/3设置GPIO口为input/output

       对于配置为outputGPIO口,写相应的GPIO Pin Output Set寄存器GPSR0/1/2/3可以设置引脚为高电平;写GPIO Pin Output Clear寄存器GPCR0/1/2/3将引脚置低。(配置为inputGPIO口也可以对其GPSRxGPCRx进行写操作,不过写入的状态要等到其配置为output口后才有效。)

       GPIO Pin Level寄存器GPLR0/1/2/3可返回GPIO口的状态(包括设置为output的口)。

       若要检测GPIO口的上升沿或下降沿,可使用GPIO Rising-Egde Detect Enable寄存器GRER0/1/2/3GPIO Falling-Edge Detect Enable寄存器GFER0/1/2/3。还可使用GPIO Edge Detect Status寄存器GEDR0/1/2/3来读取边沿检测状态。

       唤醒功能:GPIO<116>, GPIO<113>, GPIO<102:93>, GPIO<91:90>, GPIO<83>, GPIO<53>,GPIO<40:34>, GPIO<31>, GPIO<17:9>, GPIO<4:3>, and GPIO<1:0>可将处理器从睡眠和standby模式唤醒;特别的,GPIO<3> GPIO<1:0>还可将处理器从深度睡眠模式唤醒。

 

二、用于其他用途(Alternate Fuction

       片上串行控制器和LCD控制器等往往需要额外的引脚,这时就需要占用GPIO口用于这些用途(事实上,PXA27x很多片上控制器如LCDAC97I2CRTC和中断控制器等都需要占用GPIO口,具体可见Manual P45PXA27x处理器模块框图)。不过,还必须通过GPDR来正确设置GPIO口的方向(GPDR在定义GPIOalternate function时,既起到功能选择作用,又起到引脚的信号传递方向的控制作用,不过对于特殊功能的双向GPIO除外,见后文说明)。

       可这样使用的GPIO最多可有三种输入功能和三种输出功能供选择配置。一旦一个GPIO口用于alternate function,就不能同时作为普通的GPIO口使用了。要使用某一功能的GPIO信号,首先要将GPIO口配置为相应的功能,然后使能相应的处理单元如LCD控制器。同样,要先禁止相应处理单元,再改变GPIO的控制寄存器。

上一篇:没有了
下一篇:没有了
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册