S3C2440

S3C2440寄存器图

 s3c2440 gpio (内核中的定义)

      gpio(general purpose i/o ports)即通用输入/输出口。我们在实际应用中,不管是接lcd、接键盘,控制流水灯等等应用,都离不开对i/o的操作。可以说,gpio的操作是所有硬件操作的基础。

   s3c2440共有130个i/0端口,共分九组,分别为:gpa、gpb、...、gpj。我们可以通过寄存器来操作这些io。s3c2440共有三种寄存器,分别为gpxcon、gpxdat、gpxup。gpxcon用于选择引脚功能;gpxdat用于读/写引脚数据;gpxup用于确定是否使用内部上拉电阻。需要注意的是,a组没有gpaup寄存器,即a组i/o口无上拉电阻选择功能。

   1、gpxcon

   a组i/o口的gpxcon比较特殊,gpacon中每位对应一根引脚(共23根)。当某位设置为0时,相应引脚为输出引脚。反之,为相应引脚为地址线或用于地址控制,此时gpadat无用。

   b组~j组的i/o在寄存器操作方面完全相同。gpxcon中每两位控制一根引脚:00表示输入、01表示输出、10表示特殊功能、11保留不用。

   2、gpxdat

   gpxdat用于读/写引脚数据:当引脚设置为输出时,则写次寄存器相应位可令此引脚输出高电平或低电平;当此引脚设置为输入时,则读此寄存器相应位引脚的电平状态为高还是低。

   3、gpxup

   gpxup用来设置相应引脚是否使用上拉电阻。某位为0时则不使用上拉电阻;某位为1时则使用上拉电阻。

part2:

1.gpio简介:   

   gpio(通用输入/输出端口)是相对于芯片而言的,如果在对应的芯片存在gpio引脚则可以通过读这些引脚来获取引脚的变化(即:引脚的高低电平的变化).

   在s3c2410芯片中存在117个i/o端口,共分为a~h共8组分别为gpa~~gph,在s3c2440中存在130个i/o端口,共分为a~j9组名分别为gpa~gpj,配置这些端口相应的寄存器(gpxcon, x=a~h/j),设置引脚是用于输入/输出,或者是用于特殊功能.

1.1通过寄存器来访问引脚:

    1.gpxcon寄存器:

        gpxcon(x=a~~h/j)寄存器用于设置相应引脚的功能是输入/输出,还是特殊功能或保留不用。

         在功能配置方面porta与portb~porth/j有所不同,gpacon寄存器中每一位对应一个引脚(共23位),当某位被设置为0是,对应该位引脚被设置为输出引脚(可以用于写入),此时我们可以对gpadat寄存器(用于写引脚)进行写操作,当某位被设置为1时(相应引脚为地址线/或用于控制),此时gonadat无用.

         portb~porth/j对寄存器操作完全相同,gpxcon每2位对应一个引脚:

         00--输入。 01--输出。10--特殊功能。11--保留不用。

    2.gpxdat寄存器:

        gpxdat用于读/写引脚,当配置gpxcon寄存器设置某引脚为输入时,读此寄存器可以得知相应引脚的变化,当配置gpxcon寄存器设置某引脚为输出时,通过写此此寄存器可以是相应引脚产生高低电平变化.

   3.gpxup寄存器:

         当某位为1时,相应引脚无内部上拉电阻;为0是,相应引脚使用内部上拉电阻;

1.2通过软件访对gpio的访问:

#define gpbcon        (*(volatile unsigned long *)0x56000010)

/*0x56000010:为s342440的gpbcon地址 */

#define gpbdat         (*(volatile unsigned long *)0x56000014)

/*0x56000014:为s342440的gpbdat地址*/

#define  gpb_out      (1<<(2*5))  

/*此处为设置gpbcon对应第五位引脚的值其值为01----对应gpbcon展开值为0000010000000000*/                    

gpbcon = gpb_out; //设置gpb5为输出

gpbdat  &= ~(1<<5);  //向gpb5输出低电平

ps:gpio各端口的寄存器地址对考s3c2440之datasheet。

 S3C2440的GPIO上拉电阻

     GPIO做输出使用时要加上拉电阻,因为默认的是漏极开路,高阻态,无法输出高电平。 而在输入时要根据外围电路选择是否设置上拉电阻:在外接电路能提供高低电平时可不加上拉电阻,比如作为第二功能的ADC输入,或作为地址总线时;而且作为ADC输入时若加上上拉电阻,还会影响ADC的测量。

当外接电路能不能提供高和低电平时加上拉电阻,比如作为按键输入时,如不加上拉电阻,只能输入低电平,无法输入高电平。

另外,要注意,S3C2440复位后,GP(n)UP默认是0,也就是使能上拉电阻的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值