刘彦文等《linux环境嵌入式系统开发基础》第5章

上传人:j****9 文档编号:54831914 上传时间:2018-09-20 格式:PPT 页数:81 大小:1,015KB
返回 下载 相关 举报
刘彦文等《linux环境嵌入式系统开发基础》第5章_第1页
第1页 / 共81页
刘彦文等《linux环境嵌入式系统开发基础》第5章_第2页
第2页 / 共81页
刘彦文等《linux环境嵌入式系统开发基础》第5章_第3页
第3页 / 共81页
刘彦文等《linux环境嵌入式系统开发基础》第5章_第4页
第4页 / 共81页
刘彦文等《linux环境嵌入式系统开发基础》第5章_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《刘彦文等《linux环境嵌入式系统开发基础》第5章》由会员分享,可在线阅读,更多相关《刘彦文等《linux环境嵌入式系统开发基础》第5章(81页珍藏版)》请在金锄头文库上搜索。

1、第5章 GPIO端口及中断控制器,本章重点:, S3C2410A GPIO端口概述及引脚信号;GPIO端口控制;GPIO端口特殊功能寄存器;GPIO端口程序举例。在I/O端口特殊功能寄存器中,除了讲述GPAGPH对应的寄存器外,还讲述了杂项控制寄存器、与外部中断有关的寄存器等内容。 S3C2410A中断控制器概述;中断控制器操作、中断源及中断优先权产生模块;中断控制器特殊功能寄存器;中断程序举例。,5.1 GPIO端口概述,5.1.1 GPIO端口概述 1. GPIO端口概述S3C2410A有117个多功能输入/输出端口引脚,分为如下8个端口: 端口A(GPA):23个输出引脚的端口; 端口B

2、(GPB):11个输入/输出引脚的端口; 端口C(GPC):16个输入/输出引脚的端口; 端口D(GPD):16个输入/输出引脚的端口; 端口E(GPE):16个输入/输出引脚的端口; 端口F(GPF):8个输入/输出引脚的端口; 端口G(GPG):16个输入/输出引脚的端口; 端口H(GPH):11个输入/输出引脚的端口。,上述GPAGPH中的GP,表示General Purpose(通用)。上述8个端口,也称GPIO(General Purpose Input Output,通用输入输出)端口。每个端口,与34个寄存器相关,这些寄存器称为端口寄存器组。例如端口B,有端口B引脚配置寄存器GP

3、BCON、端口B数据寄存器GPBDAT、端口B上拉(电阻)允许/禁止控制寄存器GPBUP和1个保留寄存器。,对于端口B数据寄存器GPBDAT,如果这个端口被配置成输入端口,那么对应引脚输入的状态,自动地保留在这个寄存器中。CPU读GPBDAT寄存器中的数据就相当于读对应引脚的状态。如果这个端口被配置成输出端口,那么CPU写入数据寄存器GPBDAT的数据,被自动地从对应引脚输出。数据寄存器除了可以配置为输入/输出外,还可以配置为某种S3C2410A事先定义好的功能,比如端口B的一些引脚可以用作S3C2410A外部DMA请求(nXDREQ0、nXDREQ1)和响应(nXDACK0、nXDACK1)

4、信号。,在端口B引脚配置寄存器GPBCON中设置不同的值,选择了端口B数据寄存器作为输入、输出或某种功能被使用。端口B上拉(电阻)允许/禁止寄存器GPBUP中的值,选择了连接到端口B引脚的上拉(电阻)功能允许或禁止。对于可能遇到的各种各样的系统配置和设计要求,每个端口可以由软件方便地设置。要求在运行主程序前,对被使用的每个引脚,定义使用哪一种功能或定义作为输入、输出使用。为了避免出现问题,初始引脚状态被适当地配置。,初始引脚状态在5.3.1节各引脚配置寄存器中,以信号名带有下划线来表示。 其他寄存器概述在5.3.2节,讲述了特殊功能寄存器中的另外一些寄存器,这些寄存器控制某些时钟信号、外部中断

5、请求信号的方式、外部中断屏蔽与否等等。包括:杂项控制寄存器MISCCR、DCLK控制寄存器DCLKCON、外部中断控制寄存器EXTINT0EXTINT2、外部中断滤波寄存器EINTFLT2和EINTFLT3、外部中断屏蔽寄存器EINTMASK、外部中断登记寄存器EINTPEND和通用状态寄存器GSTATUS0GSTATUS4。每个寄存器的具体含义见5.3.2节。,5.1.2 与GPIO端口及其他寄存器相关的S3C2410A引脚信号 与I/O端口相关的S3C2410A引脚信号端口A端口H的数据寄存器GPADATGPHDAT,与S3C2410A的117个引脚相关,每个引脚可以设置的具体功能及对应的

6、引脚信号见5.3.1节。, 与其他寄存器相关的S3C2410A引脚信号 杂项控制寄存器MISCCR在杂项控制寄存器MISCCR中,对下述引脚规定了它们的信号方式: SCKE、SCLK1和SCLK0引脚信号,S3C2410A输出,在Power_OFF模式用于保护SDRAM。在寄存器MISCCR中规定了它们输出信号的方式,见表5-24,参考表3-4。, nRSTOUT为外部设备Reset引脚信号,S3C2410A输出,由nRESET & nWDTRST(看门狗Reset)& SW_RESET(软件Reset)形成,在寄存器MISCCR中可以设置软件Reset,见表5-24,参考表4-1。, CLK

7、OUT1、CLKOUT0是S3C2410A输出信号,信号源可由寄存器MISCCR控制,分别从6个时钟信号中各选择1个作为输出,见表5-24,参考表4-1。 引脚DATA15:0、DATA31:16由寄存器MISCCR规定了允许/禁止使用上拉电阻,见表5-24,参考表3-3。, DCLK控制寄存器DCLKCON只有在杂项控制寄存器MISCCR中,用CLKSEL1、CLKSEL0选择了S3C2410A的CLKOUT1、CLKOUT0输出引脚使用DCLK1、DCLK0作为信号源,那么DCLKCON中的参数才起作用。这些参数设置DCLKn信号高、低电平的时间长度、DCLKn的分频值等内容,见表5-25

8、,表5-24。, 外部中断控制寄存器EXTINT0EXTINT2EINT0EINT23是S3C2410A外部中断请求信号输入引脚,在外部中断控制寄存器EXTINT0EXTINT2中,可以设置请求信号方式(低电平、高电平、下降沿、上升沿、2个沿),见表5-26、表5-27和表5-28。, 外部中断滤波寄存器EINTFLT2和EINTFLT3EINTFLT2和EINTFLT3规定了S3C2410A外部中断请求输入引脚EINT16EINT23,所使用的滤波宽度和可选择的滤波时钟(滤波器在S3C2410A芯片内部)。 外部中断屏蔽寄存器EINTMASK对S3C2410A外部中断请求引脚EINT23EI

9、NT4,规定了哪一个被屏蔽或允许中断。 外部中断登记寄存器EINTPEND对S3C2410A外部中断请求引脚EINT23EINT4请求信号登记,1为有请求。, 通用状态寄存器GSTATUS0GSTATUS4 这些寄存器中,可以读取的S3C2410A的引脚 状态有: nWAIT,存储器要求等待(扩展当前总线周期)信号,输入,见表5-33,参考表3-3。 NCON,Nand Flash配置状态,输入,见表5-33,参考表3-29。 RnB,Nand Flash Ready/Busy输入信号,见表5-33,参考表3-29。 nBATT_FLT,电池状态引脚输入信号,见表5-33,参考表4-1。,5.

10、2 GPIO端口控制, 端口引脚配置寄存器GPACONGPHCON在S3C2410A中,大多数引脚有多种功能。因此对每个引脚,要求确定哪一种功能被选择。端口引脚配置寄存器GPACONGPHCON确定每个引脚的功能。如果GPF0GPF7和GPG0GPG7在Power_OFF模式用作唤醒信号,那么这些端口应该配置成中断模式。, 端口数据寄存器GPADATGPHDAT如果端口被配置为输出端口,数据应该写到端口数据寄存器的对应位;如果端口被配置为输入端口,数据应该从端口数据寄存器的对应位读出。, 端口上拉(电阻)允许/禁止寄存器GPBUPGPHUP端口上拉(电阻)电路在S3C2410A芯片内部。端口上

11、拉(电阻)允许/禁止寄存器也称为端口上拉允许/禁止寄存器。端口上拉(电阻)允许/禁止寄存器控制每个端口上拉电阻允许/禁止。当对应位为0时,引脚的上拉电阻被允许;当对应位为1时,上拉电阻被禁止。, 杂项控制寄存器杂项(miscellaneous)控制寄存器对数据总线端口DATA31:16、DATA15:0上拉电阻、USB pad和CLKOUT等进行选择。, 外部中断控制寄存器EXTINTn和外部中断滤波寄存器EINTFLTnS3C2410A的24个外部中断可以由各种信号方式提出请求。由EXTINTn寄存器配置的外部中断请求信号方式有:低电平触发、高电平触发、下降沿触发、上升沿触发以及2个沿都触发

12、。8个外部中断引脚有数字滤波,参见5.3.2节外部中断滤波寄存器EINTFLT2和EINTFLT3。只有16个EINT引脚EINT15:0在Power_OFF模式可以用作唤醒源。, Power_OFF模式与I/O端口在Power_OFF模式,所有GPIO寄存器值被保留。外部中断屏蔽寄存器EINTMASK不能阻止从Power_OFF模式中唤醒。但是,如果EINTMASK正屏蔽着EINT15:4中的一个,虽然唤醒能够被操作,但源登记寄存器SRCPND中的EINT4-7和EINT8-23位,在刚刚唤醒后将不设置为1。,5.3 GPIO端口特殊功能寄存器,5.3.1 端口A端口H寄存器组 端口A寄存器

13、组端口A寄存器组共有4个寄存器。端口A引脚配置寄存器GPACON,地址为0x56000000,可读写,Reset值为0x7FFFFF。端口A数据寄存器GPADAT,地址为0x56000004,可读写,Reset值未定义。还有2个寄存器保留未用。各寄存器具体含义见表5-1和表5-2。,表5-1 端口A引脚配置寄存器含义,表5-2 端口A数据寄存器含义, 端口B寄存器组各寄存器具体含义见表5-3(P137)、表5-4和表5-5。 端口C寄存器组各寄存器具体含义见表5-6、表5-7和表5-8。 端口D寄存器组各寄存器具体含义见表5-9、表5-10和5-11。, 端口E寄存器组各寄存器具体含义见表5-

14、12、表5-13和表5-14。 端口F寄存器组各寄存器具体含义见表5-15、表5-16和表5-17。 端口G寄存器组各寄存器具体含义见表5-18、表5-19和表5-20。 端口H寄存器组各寄存器具体含义见表5-21、表5-22和表5-23。,5.3.2 其他寄存器 杂项控制寄存器杂项控制寄存器中的一些位用来对USB主机和USB设备进行控制;另外一些位用于保护SDRAM,以及对数据总线上拉电阻允许/禁止等进行控制。杂项控制寄存器MISCCR,地址为0x56000080,可读写,Reset值为0x10330。寄存器具体含义见表5-24(P144)。, DCLK控制寄存器DCLK控制寄存器DCLKC

15、ON,地址为0x56000084,可读写,Reset值为0x0。寄存器具体含义见表5-25(P145)。DCLKCON寄存器定义DCLK0、DCLK1信号,这两个信号用作外部源时钟,DCLKn信号的低电平、高电平时间长度的关系见图5.1。只有当CLKOUT1:0被设置成发送DCLKn信号时,DCLKCON才能够实际操作。,图5.1, 外部中断控制寄存器组外部中断控制寄存器组共有3个寄存器,寄存器名分别为EXTINT0、EXTINT1和EXTINT2;地址分别为0x56000088、0x5600008C和0x56000090;可读写;Reset值均为0。外部中断控制寄存器组,能够配置24个外部中

16、断源中的每一个提出中断请求信号的方式,包括电平方式和边沿方式,同时也配置了信号的极性。为了识别电平中断,对EINT15:0中的EXTINTn引脚合法的逻辑电平必须保持最少40ns以上。各寄存器具体含义见表5-26(P146)、表5-27和表5-28。, 外部中断滤波寄存器组外部中断滤波寄存器组共有4个寄存器,前两个保留未用。后两个寄存器分别是EINTFLT2和EINTFLT3;地址分别是0x5600009C和0x560000A0;可读写;Reset值均为0x0。2个外部中断滤波寄存器控制8个外部中断EINT23:16使用的滤波时钟和滤波宽度。各寄存器具体含义见表5-29(P149)和表5-30,表中OSC_CLK即图4.1(P98)中的XTIpll。, 外部中断屏蔽寄存器外部中断屏蔽寄存器名为EINTMASK,地址为0x560000A4,可读写,Reset值为0x00FFFFF0。外部中断屏蔽寄存器能够对20个外部中断源EINT23:4分别进行屏蔽,具体含义见表5-31(p150)。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号