最新嵌入式系统第四章S3C2410PPT课件

上传人:m**** 文档编号:568848438 上传时间:2024-07-27 格式:PPT 页数:179 大小:2.41MB
返回 下载 相关 举报
最新嵌入式系统第四章S3C2410PPT课件_第1页
第1页 / 共179页
最新嵌入式系统第四章S3C2410PPT课件_第2页
第2页 / 共179页
最新嵌入式系统第四章S3C2410PPT课件_第3页
第3页 / 共179页
最新嵌入式系统第四章S3C2410PPT课件_第4页
第4页 / 共179页
最新嵌入式系统第四章S3C2410PPT课件_第5页
第5页 / 共179页
点击查看更多>>
资源描述

《最新嵌入式系统第四章S3C2410PPT课件》由会员分享,可在线阅读,更多相关《最新嵌入式系统第四章S3C2410PPT课件(179页珍藏版)》请在金锄头文库上搜索。

1、嵌入式系统第四章嵌入式系统第四章S3C24101、S3C2410X主要特性有哪些?主要特性有哪些?2、S3C2410X的结构分为几个部分?每一部分主要由的结构分为几个部分?每一部分主要由哪些部件构成?哪些部件构成?3、S3C2410X的存储器由哪几部分构成,每一部分有的存储器由哪几部分构成,每一部分有什么特点?什么特点?存储器主要有哪些控制寄存器?存储器主要有哪些控制寄存器?4、S3C2410X的的Flash有哪些特点?有哪些特点?5、S3C2410X的的DMA有哪些特点?其工作过程是怎有哪些特点?其工作过程是怎样的?每个通道配置有哪些寄存器?样的?每个通道配置有哪些寄存器?6、S3C2410

2、X的的A/D转换器有哪些特点?有哪些相关转换器有哪些特点?有哪些相关的寄存器?的寄存器?7、编写一程序,用查询的方式,对、编写一程序,用查询的方式,对S3C2410X的的A/D转换器的第转换器的第0通道连续进行通道连续进行100次次A/D转换,然后将转换,然后将其结果求平均值。注意:其结果求平均值。注意:A/D转换器有独立的模拟转换器有独立的模拟信号输入引脚信号输入引脚AIN0-AIN9。55个中断源,可以设定个中断源,可以设定1个为快速中断,有个为快速中断,有24个外个外部中断,并且触发方式可以设定。部中断,并且触发方式可以设定。4通道的通道的DMA,并且有外部请求引脚。,并且有外部请求引脚

3、。3个通道的个通道的UART,带有,带有16字节的字节的TX/RX FIFO,支,支持持IrDA1.0功能。功能。具有具有2通道的通道的SPI、1个通道的个通道的IIC串行总线接口和串行总线接口和1个通道的个通道的IIS音频总线接口。音频总线接口。有有2个个USB主机总线的端口,主机总线的端口,1个个USB设备总线的端设备总线的端口。口。有有4个具有个具有PWM功能的功能的16位定时器和位定时器和1个个16位内部位内部定时器。定时器。8通道的通道的10位位A/D转换器,最高速率可达转换器,最高速率可达500kB/s;提供有触摸屏接口。提供有触摸屏接口。具有具有117个通用个通用I/O口和口和2

4、4通道的外部中断源。通道的外部中断源。兼容兼容MMC的的SD卡接口。卡接口。具有电源管理功能,可以使系统以普通方式、慢速具有电源管理功能,可以使系统以普通方式、慢速方式、空闲方式和掉电方式工作。方式、空闲方式和掉电方式工作。看门狗定时器。看门狗定时器。具有日历功能的具有日历功能的RTC。有有LCD控制器,支持控制器,支持4K色的色的STN和和256K色的色的TFT,配置有,配置有DMA通道。通道。具有具有PLL功能的时钟发生器,时钟频率高达功能的时钟发生器,时钟频率高达203MHz。双电源系统:双电源系统:1.8/2.0V内核供电,内核供电,3.3V存储器和存储器和I/O供电。供电。二、系统结

5、构二、系统结构主要由两大部分主要由两大部分构成:构成:ARM920T内核内核片内外设。片内外设。1、ARM920T内核内核由三部分:由三部分:ARM9内核内核ARM9TDMI、32KB的的Cache、MMU。2、片内外设、片内外设分为高速外设和低速外设,分别用分为高速外设和低速外设,分别用AHB总线和总线和APB总线。总线。三、引脚信号三、引脚信号S3C微控制器是微控制器是272-FBGA封装。封装。其信号可以分成其信号可以分成addr0-addr26、Data0-data31、GPA0-GPA22GPB10、GPC15、GPD15、GPE15、GPF7、GPG15、GPH10、EINT23、

6、nGCS0nGCS7、AIN7、IIC、SPI、OM0-OM3等,大部分都是复用的等,大部分都是复用的4.2 S3C2410X的存储器的存储器主要内容主要内容存储器配置存储器配置存储器概述存储器概述控制寄存器控制寄存器Flash及控制器及控制器Flash控制器概述控制器概述控制器主要特性控制器主要特性控制器的寄存器控制器的寄存器控制器的工作原理控制器的工作原理4.2 存储器配置存储器配置4.2.1 S3C2410X的存储器配置的存储器配置一、概一、概 述述S3C2410X的存储器管理器的存储器管理器提供访问外部存储器的所有提供访问外部存储器的所有控制信号:控制信号:26位地址信号、位地址信号、

7、32位数据信号、位数据信号、8个片选信号、个片选信号、以及读以及读/写控制信号等。写控制信号等。S3C2410X的存储空间分成的存储空间分成8组组,最大容量是,最大容量是1GB,bank0-bank5为固定为固定128MB,bank6和和bank7的容量可编的容量可编程改变,可以是程改变,可以是2、4、8、16、32、64、128MB,并且,并且bank7的开始地址与的开始地址与bank6的结束地址相连接,但是二者的的结束地址相连接,但是二者的容量必须相等。容量必须相等。bank0可以作为引导可以作为引导ROM,其数据线宽只能是,其数据线宽只能是16位和位和32位,复位时由位,复位时由OM0、

8、OM1引脚确定;其它存储器的数据引脚确定;其它存储器的数据线宽可以是线宽可以是8位、位、16位和位和32位。位。S3C2410X的存储器格式,的存储器格式,可以编程设置为大端格式,可以编程设置为大端格式,也可以设置为小端格式。也可以设置为小端格式。注意:补充引脚信号注意:补充引脚信号二、存储器的控制寄存器二、存储器的控制寄存器内存控制器为访问外部存储空间提供存储器控制信号,内存控制器为访问外部存储空间提供存储器控制信号, S3C2410X存储器控制器共有存储器控制器共有13个寄存器。个寄存器。寄存器寄存器地地 址址功功 能能操作操作复位值复位值BWSCON0x48000000总线宽度和等待控制

9、总线宽度和等待控制读读/写写0x0BANKCON00x48000004BANK0控制控制读读/写写0x0700BANKCON10x48000008BANK1控制控制读读/写写0x0700BANKCON20x4800000CBANK2控制控制读读/写写0x0700BANKCON30x48000010BANK3控制控制读读/写写0x0700BANKCON40x48000014BANK4控制控制读读/写写0x0700BANKCON50x48000018BANK5控制控制读读/写写0x0700BANKCON60x4800001CBANK6控制控制读读/写写0x18008BANKCON70x480000

10、20BANK7控制控制读读/写写0x18008REFRESH0x48000024SDRAM刷新控制刷新控制读读/写写0xAC0000BANKSIZE0x48000028可变的组大小设置可变的组大小设置读读/写写0x0MRSRB60x4800002CBANK6模式设置模式设置读读/写写xxxMRSRB70x48000030BANK7模式设置模式设置读读/写写xxx1、总线宽度和等待控制寄存器总线宽度和等待控制寄存器3130 29 28 27 26 25 24 23 22 21 20 19 18 17 16ST7 WS7DW7ST6 WS6DW6ST5 WS5DW5ST4 WS4DW415 14

11、13 12 11 109876543210ST3 WS3DW3ST2 WS2DW2ST1 WS1DW1XDW0XSTn:控制存储器组:控制存储器组n的的UB/LB引脚输出信号引脚输出信号。1:使:使UB/LB与与nBE3:0相连;相连;0:使:使UB/LB与与nWBE3:0相连相连WSn:使用:使用/禁用存储器组禁用存储器组n的的WAIT状态状态1:使能:使能WAIT;0:禁止:禁止WAITDWn:控制存储器组:控制存储器组n的数据线宽的数据线宽00:8位;位;01:16位;位;10:32位;位;11:保留:保留Tacs:设置:设置nGCSn有效前地址的建立时间有效前地址的建立时间00:0个个

12、;01:1个;个;10:2个;个;11:4个时钟周期个时钟周期Tcos:设置:设置nOE有效前片选信号的建立时间有效前片选信号的建立时间00:0个个;01:1个;个;10:2个;个;11:4个时钟周期个时钟周期Tacc:访问周期:访问周期000:1个;个;001:2个;个;010:3个;个;011:4个时钟个时钟100:6个:个:101:8个;个;110:10个;个;111:14个个15 14 13 12 11 109876543210TacsTcosTaccTcohTcahTacpPMC2、BANKn-存储器组控制寄存器存储器组控制寄存器(n=0-5)31 30 29 28 27 26 25

13、 24 23 22 21 20 19 18 17 16Tcoh:nOE无效后片选信号的保持时间无效后片选信号的保持时间00:0个个;01:1个;个;10:2个;个;11:4个时钟个时钟Tcah: nGCSn无效后地址信号的保持时间无效后地址信号的保持时间00:0个个;01:1个;个;10:2个;个;11:4个时钟个时钟Tacp:页模式的访问周期:页模式的访问周期00:2个个;01:3个;个;10:4个;个;11:6个时钟个时钟PMC:页模式的配置,每次读写的数据数:页模式的配置,每次读写的数据数00:1个个;01:4个;个;10:8个;个;11:16个个注:注:00为通常模式。为通常模式。注:

14、紫色为实验箱上的配置注:紫色为实验箱上的配置,其值为,其值为0x0700MT:设置存储器类型设置存储器类型00:ROM或者或者SRAM,3:0为为Tacp和和PMC;11:SDRAM, 3:0为为Trcd和和SCAN; 01、10:保留:保留Trcd:由行地址信号切换到列地址信号的延时时钟数:由行地址信号切换到列地址信号的延时时钟数00:2个时钟;个时钟;01:3个时钟;个时钟;10:4个时钟个时钟 SCAN:列地址位数:列地址位数00:8位;位;01:9位;位;10:10位位 14 13 12 11 109876543210TacsTcosTaccTcohTcahTacp/TrcdPMC/S

15、CAN3、BANK6/7-存储器组存储器组6/7控制寄存器控制寄存器3117 16 15保留保留MTREFEN:刷新控制:刷新控制。1:使能刷新;使能刷新;0:禁止刷新:禁止刷新TREFMD:刷新方式:刷新方式。1:自刷新:自刷新0:自动刷新自动刷新Trp:设置:设置SDRAM行刷新时间行刷新时间(时钟数)(时钟数)00:2个时钟;个时钟;01:3个;个;10:3个;个;11:4个时钟个时钟Tsrc:设置:设置SDRAM行操作时间行操作时间(时钟数)(时钟数)00:4个时钟;个时钟;01:5个;个;10:6个;个;11:7个时钟个时钟注:注: SDRAM的行周期的行周期= Trp + Tsrc

16、。Refresh_count:刷新计数值:刷新计数值15 14 13 12 11 109876543210保保 留留Refresh_count4、REFRESH-刷新控制寄存器刷新控制寄存器3124232221 20 19 18 17 16保保 留留REFEN TREFMDTrpTsrc保留保留Refresh_count:刷新计数器值:刷新计数器值计算公式:计算公式:刷新周期刷新周期=(211- Refresh_count+1)/HCLK例子:设刷新周期例子:设刷新周期=15.6s,HCLK=60MHz则则刷新计数器值刷新计数器值=211+1-6015.6=11131113=0x459=0b1

17、0001011001高高24位未用。位未用。BURST_EN:ARM突发操作控制突发操作控制0:禁止突发操作;:禁止突发操作;1:可突发操作:可突发操作SCKE_EN:SCKE使能控制使能控制SDRAM省电模式省电模式0:关闭省电模式;:关闭省电模式;1:使能省电模式:使能省电模式SCLK_EN:SCLK省电控制省电控制,使其只在,使其只在SDRAM访问周期内访问周期内使能使能SCLK0:SCLK一直有效;一直有效;1:SCLK只在访问期间有效只在访问期间有效BK76MAP:控制:控制BANK6/7的大小及映射的大小及映射76543210BURST_ENXSCKE_EN SCLK_ENXBK7

18、6MAP5、BANKSIZE-BANK6/7组大小控制寄存器组大小控制寄存器BK76MAP:控制:控制BANK6/7的大小及映射的大小及映射100:2MB;101:4MB;110:8MB 111:16MB;000:32MB;001:64MB010:128MBWBL:突发写的长度:突发写的长度。0:固定长度;:固定长度;1:保留:保留TM:测试模式:测试模式。00:模式寄存器集;其它保留:模式寄存器集;其它保留CL:列地址反应时间:列地址反应时间000:1个时钟;个时钟;010:2个时钟;个时钟;011:3个时钟;其它保留个时钟;其它保留BT:猝发类型:猝发类型0:连续;:连续;1:保留:保留B

19、L:猝发时间:猝发时间000:1个时钟;其它保留个时钟;其它保留6、MRSRB6/7-BANK6/7模式设置寄存器模式设置寄存器15 14 13 12 11 109876543210WBLTMCLBTBL4.2.2 Nand Flash及其控制器及其控制器主要内容主要内容1、Nand Flash控制器概述控制器概述2、控制器主要特性、控制器主要特性3、控制器的寄存器、控制器的寄存器4、控制器的工作原理、控制器的工作原理4.2.2 Nand Flash及其控制器及其控制器Nor flash存储器:存储器:读速度高,而擦、写速度低,容量读速度高,而擦、写速度低,容量小,价格高。小,价格高。 Nan

20、d flash存储器:存储器:读速度不如读速度不如Nor flash,而擦、写速,而擦、写速度高,容量大,价格低。有取代磁盘的趋势。度高,容量大,价格低。有取代磁盘的趋势。因此,现在不少用户从因此,现在不少用户从Nand flash启动和引导系统,而启动和引导系统,而在在SDRAM上执上执 行主程序代码。行主程序代码。一、一、Nand Flash控制器概述控制器概述S3C2410X微控制器从微控制器从Nand flash的引导功能:的引导功能:其内部其内部有一个叫做有一个叫做“起步石(起步石(Steppingstone)”的的 SRAM缓冲器缓冲器,系统系统 启动时,启动时,Nand flas

21、h存储器的前面存储器的前面4KByte字节将被自字节将被自动载入到动载入到起步石起步石中,然后系统自动执行这些载入的引导代中,然后系统自动执行这些载入的引导代码。引导代码。引导代 码执行完毕后,自动跳转到码执行完毕后,自动跳转到SDRAM执行。执行。Nand flash操作的校验功能:操作的校验功能:使用使用S3C2410X内部硬件内部硬件ECC功能可以对功能可以对Nand flash的数据进行有效性的检测。的数据进行有效性的检测。 二、二、 Nand Flash控制器主要特性控制器主要特性 Nand Flash模式:模式:支持读支持读/擦擦/编程编程Nand flash存存储器。储器。 自动

22、导入模式:自动导入模式:复位后,引导代码被送入复位后,引导代码被送入Steppingstone,传送后,引导代码在,传送后,引导代码在 Steppingstone中执行。中执行。 具有硬件具有硬件ECC(纠错码)功能:(纠错码)功能:硬件产生纠错硬件产生纠错代码。代码。内部内部4KB的的SRAM缓冲器缓冲器Steppingstone,在,在Nand flash引导后可以作为其他用途使用。引导后可以作为其他用途使用。 Nand Flash控制器功能框图控制器功能框图 主要由主要由6部分组成部分组成引脚信号:引脚信号:CLE:命令锁存:命令锁存R/nB :就绪:就绪/忙忙三、三、Nand Flas

23、h 控制器的寄存器控制器的寄存器寄存器寄存器地地 址址功功 能能操作操作复位值复位值NFCON0x4E000000Nand Flash配置配置读读/写写-NFCMD0x4E000004Nand Flash命令命令读读/写写-NFADDR 0x4E000008Nand Flash地址地址读读/写写-NFDATA 0x4E00000CNand Flash数据数据读读/写写-NFSTAT0x4E000010Nand Flash状态状态读读/写写-NFECC0x4E000014Nand Flash纠错纠错读读/写写-NFEN:NF控制器使能控制控制器使能控制0:禁止使用;:禁止使用;1:允许使用:允许

24、使用IECC:初始化:初始化ECC编码编码/解码器控制位解码器控制位0:不初始化:不初始化ECC;1:初始化:初始化ECCNFCE:NF片选信号片选信号nFCE控制位持续时间设置控制位持续时间设置0: nFCE为低有效;为低有效;0: nFCE为高无效为高无效TACLE:CLE/ALE持续时间设置值(持续时间设置值(0-7)持续时间持续时间 HCLK * (TACLS + 1)CLE/ALE :命令:命令/地址锁存允许地址锁存允许151413 121110 9876543210NFENXIECC NFCETACLEXTWRPH0XPWRPH10-000-0-01、NFCON-Flash配置寄存

25、器配置寄存器TWRPH0:写信号:写信号持续时间设置值持续时间设置值(07)持续时间持续时间 HCLK * (TWRPH01) TWRPH1:写信号无效后:写信号无效后CLE/ALE保保持时间设置值持时间设置值(07)持续时间持续时间 HCLK * (TWRPH11)15 14 13 12 11 109876543210保保 留留命令字命令字2、NFCMD-Flash命令寄存器命令寄存器高高24位未用,低位未用,低8位为读入或者写出的数据位为读入或者写出的数据15 14 13 12 11 109876543210保保 留留地址值地址值3、NFADDR-Flash地址寄存器地址寄存器15 14

26、13 12 11 109876543210保保 留留输入输入/ /输出数据输出数据4、NFDATA-Flash数据寄存器数据寄存器高高24位未用,低位未用,低8位为位为Flash存储器地址值存储器地址值RnB:Nand Flash存储器状态位存储器状态位0:存储器忙;:存储器忙;1:存储器准备好:存储器准备好15 14 13 12 11 109876543210保保 留留RnB5、NFSTAT-Flash状态寄存器状态寄存器15 14 13 12 11 109876543210错误校正码错误校正码#1#1错误校正码错误校正码#0#06、NFECC-Flash错误校正码寄存器错误校正码寄存器31

27、 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16保保 留留错误校正码错误校正码#2#2四、四、Nand Flash 控制器的工作原理控制器的工作原理 1、自动导入启动代码步骤、自动导入启动代码步骤完成复位。完成复位。 如果自动导入模式使能,如果自动导入模式使能,Nand flash存储器的前面存储器的前面4K字字节被自动拷贝到节被自动拷贝到Steppingstone 内部缓冲器中。内部缓冲器中。 Steppingstone被映射到被映射到nGCS0对应的对应的BANK0存储空间。存储空间。 CPU在在Steppingstone的的4-KB内部缓冲器中开

28、始执行引内部缓冲器中开始执行引导代码。导代码。 注意:注意: 在自动导入模式下,不进行在自动导入模式下,不进行ECC检测。因此,检测。因此,Nand flash的前的前4KB应确保不能有位错误(一应确保不能有位错误(一 般般Nandflash厂家都确保)。厂家都确保)。 2、Nand FLASH模式配置模式配置 通过通过NFCONF寄存器配置寄存器配置Nand flash;写写Nand flash命令到命令到NFCMD寄存器;寄存器;写写Nand flash地址到地址到NFADDR寄存器;寄存器;在读写数据时,通过在读写数据时,通过NFSTAT寄存器来获得寄存器来获得Nand flash的状态

29、信息。应该在读操作前或写入的状态信息。应该在读操作前或写入 之之后检查后检查R/nB信号(准备好信号(准备好/忙信号)。忙信号)。 在读写操作后要查询校验错误代码,对错误进在读写操作后要查询校验错误代码,对错误进行纠正。行纠正。3、系统引导和、系统引导和 Nand FLASH 配置配置 OM1:0 = 00b:使能使能Nand flash控制器自动导控制器自动导入模式;入模式; OM3:0为芯片引脚,设置引导模式、存储器为芯片引脚,设置引导模式、存储器bank0的数据宽度、时钟模式等。的数据宽度、时钟模式等。 OM1:0 = 01b、10b:bank0数据宽度为数据宽度为16位、位、32位位O

30、M1:0=11b:测试模式:测试模式Nand flash的存储页面大小的存储页面大小应该为应该为512字节。字节。 NCON :Nand flash 寻址步骤数选择寻址步骤数选择 0:3步寻址;步寻址;1:4步寻址步寻址4、Nand Flash操作的校验问题操作的校验问题S3C2410A在写在写/读操作时,每读操作时,每512字节数据自动字节数据自动产生产生3字节的字节的ECC奇偶代码奇偶代码(24位位)。 24位位 ECC 奇偶代码奇偶代码18位行奇偶位行奇偶 6位列奇偶位列奇偶ECC产生模块执行以下步骤:产生模块执行以下步骤: 当当MCU写数据到写数据到Nand时,时,ECC产生模块生成产

31、生模块生成ECC代代码。码。 当当MCU从从Nand读数据时,读数据时,ECC产生模块生成产生模块生成ECC代代码同时用户程序将它与先前写入时产码同时用户程序将它与先前写入时产 生的生的ECC代码比较代码比较。 4.3 DMA控制器控制器主要内容主要内容1、概述、概述2、工作原理、工作原理3、寄存器、寄存器一、概一、概 述述S3C2410X有有4 个通道的个通道的DMA 控制器,其位于控制器,其位于在系统总线和外设总线之间。在系统总线和外设总线之间。每个每个DMA 通道都能没有约束的实现系统总线或通道都能没有约束的实现系统总线或者外设总线之间的数据传输,即每个通道都能处理者外设总线之间的数据传

32、输,即每个通道都能处理下面四种情况:下面四种情况:(1) 源器件和目的器件都在系统总线源器件和目的器件都在系统总线(2) 源器件在系统总线,目的器件在外设总线源器件在系统总线,目的器件在外设总线(3) 源器件在外设总线,目的器件在系统总线源器件在外设总线,目的器件在系统总线(4) 源器件和目的器件都在外设总线源器件和目的器件都在外设总线DMA的主要优点是的主要优点是:可以不通过:可以不通过CPU的中断来的中断来实现数据的传输,实现数据的传输,DMA的运行可以通过软件或者通的运行可以通过软件或者通过外围设备的中断和请求来初始化。过外围设备的中断和请求来初始化。 二、二、DMA工作原理工作原理1、

33、DMA的服务对象的服务对象每个每个DMA通道都有通道都有4个个DMA请求源,通过设置,可以从请求源,通过设置,可以从中挑选一个服务。每个通道的中挑选一个服务。每个通道的DMA 请求源如表请求源如表4-1所示。所示。 通道通道 源源请求源请求源0请求源请求源1请求源请求源2请求源请求源3请求源请求源4通道通道0nXDREQ0UART0SDITimerUSB设备设备EP1通道通道1nXDREQ1UART1IIS/SDISPI0USB设备设备EP2通道通道2IISSDOIISSDISDITimerUSB设备设备EP3通道通道3UART2SDISPI1TimerUSB设备设备EP4表表4-1 各通道的

34、各通道的DMA 请求源请求源2、DMA的工作过程的工作过程一般一般DMA的工作过程如下面所示的工作过程如下面所示 (1) 外设向外设向DMAC 发出请求发出请求 (2)DMAC通通过过HOLD 向向CPU 发出总线请求;发出总线请求;(3)CPU响应响应释放三总线,并释放三总线,并且发应答且发应答HLDA(4)DMAC向向外设发外设发DMA应答应答 (5)DMAC发出地址、控制信号,为外设传送数据;发出地址、控制信号,为外设传送数据;(6)传送完规定的数据后,)传送完规定的数据后,DMAC撤销撤销HOLD信号,信号,CPU也也撤销撤销HLDA信号,并且恢复对三总线的控制。信号,并且恢复对三总线

35、的控制。124532、DMA的工作过程的工作过程S3C2410X的的DMA工作过程可以分为三个状态:工作过程可以分为三个状态:状态状态1:等待状态。:等待状态。DMA 等待一个等待一个DMA请求。请求。如果有请求到来,将转到状态如果有请求到来,将转到状态2。在这个状态下,。在这个状态下,DMA ACK和和INT REQ为为0。 状态状态2:准备状态。:准备状态。DMA ACK变为变为1,计数器,计数器(CURR_TC)装入)装入DCON19:0寄存器。寄存器。注意:注意:DMA ACK保持为保持为1直至它被清除。直至它被清除。状态状态3:传输状态。:传输状态。DMA控制器从源地址读入数控制器从

36、源地址读入数据并将它写到目的地址,每传输一次,据并将它写到目的地址,每传输一次,CURR_TC数器(在数器(在DSTAT中)减中)减1,并且可能做以下操作:,并且可能做以下操作:重复传输:重复传输:在全服务模式下,将重复传输,直到计数器在全服务模式下,将重复传输,直到计数器CURR_TC变为变为0;在单服务模式下,仅传输一次。;在单服务模式下,仅传输一次。 设置中断请求信号:设置中断请求信号:当当CURR_TC变为变为0时,时,DMAC发出发出INT REQ信号,而且信号,而且DCON29即中断设定位被设为即中断设定位被设为1。 清除清除DMA ACK信号:信号:对单服务模式,或者全服务模式对

37、单服务模式,或者全服务模式 CURR_TC变为变为0。注意:注意:在单服务模式下,在单服务模式下,DMAC的的3个状态被执个状态被执行一遍,然后停止,等待下一个行一遍,然后停止,等待下一个DMA REQ的到来。的到来。如果如果DMA REQ到来,则这些状态被重复操作,直到来,则这些状态被重复操作,直到到CURR_TC减为减为0 。 说明:说明:DMA传输分为一个单元传输和传输分为一个单元传输和4个单元个单元突发式传输。突发式传输。3、外部、外部DMA请求请求/响应规则响应规则DMAC有有3种类型的外部种类型的外部DMA请求请求/响应规则:响应规则:(1)single service deman

38、d,单服务请求单服务请求(对应于需求模式)(对应于需求模式)(2)single service handshake,单服务握手单服务握手(握手模式)(握手模式)(3)whole service handshake,全服务握手全服务握手(全服务模式)(全服务模式)每种类型都定义了像每种类型都定义了像DMA请求和请求和DMA响应这些信号怎样响应这些信号怎样与这些规则相联系。与这些规则相联系。demand 与与 handshake模式的比较:模式的比较:在一次传输结束时,在一次传输结束时,DMA检查检查xnxDREQ(DMA请求)信请求)信号的状态:号的状态:在在demand模式下:如果模式下:如果

39、DMA请求(请求(xnxDREQ)信号仍然有效,则传)信号仍然有效,则传输马上再次开始。否则等待。输马上再次开始。否则等待。在在handshake模式下:如果模式下:如果DMA请求信号无效,请求信号无效,DMA在两个时钟周期在两个时钟周期后将后将DMA响应(响应(xnxDACK)信号变得无效。否则,)信号变得无效。否则,DMA等待直到等待直到DMA请求信号变得无效。每请求一次传输一次。请求信号变得无效。每请求一次传输一次。 4、DMA时序要求时序要求基本时序要求:基本时序要求:DMA请求信号和响应信号的请求信号和响应信号的Setup时间与时间与delay时间在所有时间在所有的模式下是相同的。的

40、模式下是相同的。 如果如果DMA请求信号的请求信号的setup时间满足要求,则在两个周期时间满足要求,则在两个周期内实现同步,然后内实现同步,然后DMA响应信号变得有效。响应信号变得有效。在在DMA响应信号有效后,响应信号有效后,DMA向向CPU请求总线。如果它请求总线。如果它得到总线就执行操作。得到总线就执行操作。DMA操作完成后,操作完成后,DMA响应信号变得响应信号变得无效。无效。 三、三、DMA控制器的相关寄存器控制器的相关寄存器每个每个DMA 通道有通道有9 个控制寄存器(个控制寄存器(4 个通道共计个通道共计36 个个寄存器),寄存器),6 个用来控制个用来控制DMA 传输,其它传

41、输,其它3 个监视个监视DMA 控控制器的状态。制器的状态。Register Address R/W Description Reset Value DISRCn 0x4B0000x0 R/W 初始源基地址寄存器初始源基地址寄存器 0x00000000 DISRCCn 0x4B0000x4 R/W 初始源控制寄存器初始源控制寄存器0x00000000 DIDSTn 0x4B0000x8 R/W 初始目的基地址寄存器初始目的基地址寄存器0x00000000 DIDSTCn 0x4B0000xC R/W初始目的控制寄存器初始目的控制寄存器0x00000000DCONn 0x4B0000y0 R/W

42、 DMA控制寄存器控制寄存器0x00000000 DSTATn 0x4B0000y4 R状态状态/计数寄存器计数寄存器0x00000000 DCSRCn 0x4B0000y8 R当前源地址寄存器当前源地址寄存器0x00000000 DCDSTn 0x4B0000yC R当前目的地址寄存器当前目的地址寄存器0x00000000 SKTRIGn 0x4B0000z0 R/W DMA掩码掩码/触发寄存器触发寄存器0b0001、DISRCn-DMA源基地址寄存器源基地址寄存器原名:原名: DMA初始源寄存器初始源寄存器寄存器寄存器 地地 址址 R/W 意意 义义 初初 值值 DISRC0 0x4B00

43、0000 R/W DMA0源基地址寄存器源基地址寄存器 0x00000000 DISRC1 0x4B000040 R/W DMA1源基地址寄存器源基地址寄存器 0x00000000 DISRC2 0x4B000080 R/W DMA2源基地址寄存器源基地址寄存器 0x00000000 DISRC3 0x4B0000C0 R/W DMA3源基地址寄存器源基地址寄存器 0x00000000 3130 00S_ADDR-源数据基地址源数据基地址(在(在CURR_SRC为为0、并且、并且DMA ACK为为1时装载入时装载入CURR_SRC)第10次到此LOC-源所在总线选择源所在总线选择0:AHB;1

44、:APBINC-源地址变化设置源地址变化设置0:源地址增加;:源地址增加;1:源地址不变:源地址不变2、DISRCCn-DMA源控制寄存器源控制寄存器寄存器寄存器 地地 址址 R/W 意意 义义 初初 值值 DISRCC0 0x4B000004 R/W DMA0初始源控制寄存器初始源控制寄存器 0x00000000 DISRCC1 0x4B000044 R/W DMA1初始源控制寄存器初始源控制寄存器 0x00000000 DISRCC2 0x4B000084 R/W DMA2初始源控制寄存器初始源控制寄存器 0x00000000 DISRCC3 0x4B0000C4 R/W DMA3初始源控

45、制寄存器初始源控制寄存器 0x00000000 31 21 0保留(为保留(为0)LOC-源总线选择源总线选择INC-源地址变化设置源地址变化设置3、DIDSTn-DMA目的基地址寄存器目的基地址寄存器原名:原名: DMA初始目的寄存器初始目的寄存器寄存器寄存器 地地 址址 R/W 意意 义义 初初 值值 DIDST0 0x4B000008 R/W DMA0目的基地址寄存器目的基地址寄存器 0x00000000 DIDST1 0x4B000048 R/W DMA1目的基地址寄存器目的基地址寄存器 0x00000000 DIDST2 0x4B000088 R/W DMA2目的基地址寄存器目的基地

46、址寄存器 0x00000000 DIDST3 0x4B0000C8 R/W DMA3目的基地址寄存器目的基地址寄存器 0x00000000 3130 00D_ADDR-目标基地址,目标基地址,会被载入会被载入CURR_DST(当(当CURR_DST的值为的值为0、并且、并且 DMA ACK 的值为的值为1时)时)4、DIDSTCn-DMA初始目的控制寄存器初始目的控制寄存器寄存器寄存器 地地 址址 R/W 意意 义义 初初 值值 DIDSTC0 0x4B00000C R/W DMA0初始目的控制寄存器初始目的控制寄存器 0x00000000 DIDSTC1 0x4B00004C R/W DMA

47、1初始目的控制寄存器初始目的控制寄存器 0x00000000 DIDSTC2 0x4B00008C R/W DMA2初始目的控制寄存器初始目的控制寄存器 0x00000000 DIDSTC3 0x4B0000CC R/W DMA3初始目的控制寄存器初始目的控制寄存器 0x00000000 LOC-目的地址所在总线选择目的地址所在总线选择0:AHB;1:APBINC-目的地址地址变化设置目的地址地址变化设置0:目的地址增加;:目的地址增加;1:目的地址不变:目的地址不变31 21 0保留(为保留(为0)LOC-目的总线选择目的总线选择 INC-目的地址变化设置目的地址变化设置5、DCONn-DM

48、A控制控制寄存器寄存器寄存器寄存器 地地 址址 R/W 意意 义义 初初 值值 DCON0 0x4B000010 R/W DMA 0 控制寄存器控制寄存器 0x00000000 DCON1 0x4B000050 R/W DMA 1 控制寄存器控制寄存器0x00000000 DCON2 0x4B000090 R/W DMA 2 控制寄存器控制寄存器0x00000000 DCON3 0x4B0000D0 R/W DMA 3 控制寄存器控制寄存器0x00000000 3130292827262524232221 20DMD_HSSYNC INTTSZSERVMODEHWSRCSELSWHW_SELR

49、ELOADDSZ19 18 17 16 15 14 13 12 11 10 98876543210TC-传输次数初值传输次数初值DMD_HS-DMA与外设握手模式选择与外设握手模式选择0:需求模式。为单服务,但只要:需求模式。为单服务,但只要DREQ信号有效便传输信号有效便传输1:握手模式。为单服务,要等待:握手模式。为单服务,要等待DREQ信号变为无效,信号变为无效, DREQ再有效时才传输。再有效时才传输。SYNC-DREQ 和和DACK信号与系统总线时钟同步选择信号与系统总线时钟同步选择0:DREQ和和DACK与与PCLK(APB clock)同步。慢速外设同步。慢速外设 1:DREQ和

50、和DACK与与HCLK(AHB clock)同步。高速外设同步。高速外设 INT-CURR_TC的中断请求控制的中断请求控制0:禁止:禁止CURR_TC产生中断请求产生中断请求1:当所有的传输结束时,:当所有的传输结束时,CURR_TC产生中断请求产生中断请求 TSZ-传输长度类型选择传输长度类型选择0:执行单数据传输:执行单数据传输 1:执行四数据长的突发传输:执行四数据长的突发传输 3130292827262524232221 20DMD_HSSYNC INTTSZSERVMODEHWSRCSELSWHW_SELRELOADDSZSERVMODE-传输模式选择传输模式选择0:单服务传输模式

51、,每传输一次都要查询:单服务传输模式,每传输一次都要查询DREQ1:全服务传输模式,不查询:全服务传输模式,不查询DREQ,但传输一次也要释,但传输一次也要释 放总线。放总线。HWSRCSEL -各各DMA通道请求源设置通道请求源设置3130292827262524232221 20DMD_HSSYNC INTTSZSERVMODEHWSRCSELSWHW_SELRELOADDSZHWSRCSEL000001010011100通道通道0nXDREQ0UART0SDITimerUSB设备设备EP1通道通道1nXDREQ1UART1IISSDISPI0USB设备设备EP2通道通道2IISSDOII

52、SSDISDITimerUSB设备设备EP3通道通道3UART2SDISPI1TimerUSB设备设备EP4SWHW_SEL- DMA源选择方式源选择方式(软件或硬件)(软件或硬件)设置设置0:以软件:以软件software方式产生方式产生DMA请求,需要用请求,需要用DMASKTRIG控制寄存器中的控制寄存器中的SW_TRIG位设置触发。位设置触发。1:由位:由位26:24提供的提供的DMA源触发源触发DMA操作操作RELOAD-再装载选择再装载选择0:自动再装载,当传输次数减为:自动再装载,当传输次数减为0时自动装载时自动装载DMA初值初值1:不自动再装载,传输结束关闭:不自动再装载,传输

53、结束关闭DMA通道。通道。DSZ-传输数据类型设置传输数据类型设置00:字节;:字节;01:半字;:半字;10:字;:字;11:保留:保留3130292827262524232221 20DMD_HSSYNC INTTSZSERVMODEHWSRCSELSWHW_SELRELOADDSZSTAT-DMA状态状态00:就绪态,可进行传输;:就绪态,可进行传输;01:DMA正在传输;正在传输;1X:保留:保留CURRTC-当前传输计数值当前传输计数值每传输一次其值减每传输一次其值减1。其初值在。其初值在DCONn中低中低20位。位。6、DSTATn-DMA状态状态/计数计数寄存器寄存器原名:原名:

54、DMA状态寄存器状态寄存器寄存器寄存器 地地 址址 R/W 意意 义义 初初 值值 DSTAT0 0x4B000014 RDMA0状态状态/计数寄存器计数寄存器 0x00000000 DSTAT1 0x4B000054 RDMA1状态状态/计数寄存器计数寄存器 0x00000000 DSTAT2 0x4B000094 RDMA2状态状态/计数寄存器计数寄存器 0x00000000 DSTAT3 0x4B0000D4 RDMA3状态状态/计数寄存器计数寄存器 0x00000000 21 20 19 18 17 16 15 14 13 12 11 10 98876543210STATCURRTC-

55、当前传输次数计数值当前传输次数计数值CURR_SRC-当前数据源地址当前数据源地址 注意:(注意:(1)DMA每传输一次,其地址可能增加每传输一次,其地址可能增加(1、2、4)、可能不变;(可能不变;(2)在在CURR_SRC为为0、且、且DMA ACK为为1时,将时,将S_ADDR源基地址的值装入。源基地址的值装入。寄存器寄存器 地地 址址 R/W 意意 义义 初初 值值 DCSRC0 0x4B000018 RDMA0当前源地址寄存器当前源地址寄存器 0x00000000 DCSRC1 0x4B000058 RDMA1当前源地址寄存器当前源地址寄存器0x00000000 DCSRC2 0x4

56、B000098 RDMA2当前源地址寄存器当前源地址寄存器0x00000000 DCSRC3 0x4B0000D8 RDMA3当前源地址寄存器当前源地址寄存器0x00000000 3130 00CURR_SRC-当前数据源地址当前数据源地址7、DCSRCn-DMA当前当前源地址寄存器源地址寄存器CURR_DST-当前数据目的地址当前数据目的地址注意:(注意:(1)DMA每传输一次,其地址可能增加每传输一次,其地址可能增加(1、2、4) ;(2)在在CURR_DST为为0、且、且DMA ACK为为1时,时,将将D_ADDR的值装入。的值装入。寄存器寄存器 地地 址址 R/W 意意 义义 初初 值

57、值 DCDST0 0x4B00001C RDMA0当前目的地址寄存器当前目的地址寄存器 0x00000000 DCDST1 0x4B00005C RDMA1当前目的地址寄存器当前目的地址寄存器 0x00000000 DCDST2 0x4B00009C RDMA2当前目的地址寄存器当前目的地址寄存器 0x00000000 DCDST3 0x4B0000DC RDMA3当前目的地址寄存器当前目的地址寄存器 0x00000000 3130 00CURR_DST-当前数据目的地址当前数据目的地址8、DCDSTn-DMA当前目的地址寄存器当前目的地址寄存器寄存器寄存器 地地 址址 R/W 意意 义义 初

58、初 值值 DMASKTRIG0 0x4B000020 R/W DMA0掩码触发寄存器掩码触发寄存器 0x00000000 DMASKTRIG1 0x4B000060 R/W DMA1掩码触发寄存器掩码触发寄存器 0x00000000 DMASKTRIG2 0x4B0000A0 R/W DMA2掩码触发寄存器掩码触发寄存器 0x00000000 DMASKTRIG3 0x4B0000E0 R/W DMA3掩码触发寄存器掩码触发寄存器 0x00000000 9、DMASKTRIGn-DMA掩码掩码(Mask)触发寄存器触发寄存器31 321 0保留(为保留(为0)STOP ON/OFF SW_TR

59、IG STOP-DMA运行停止位运行停止位1:DMA将当前数据传输完立即停止,并且将当前数据传输完立即停止,并且CURR_TC变变为为0。注意注意:如果如果ON/OFF设置为设置为OFF,则,则DMA也停止传输。也停止传输。ON/OFF-DMA通道屏蔽位通道屏蔽位0:关闭通道;:关闭通道;1:开放通道:开放通道如果如果DCONn22设为非自动重装,设为非自动重装,DMA则传输完成后则传输完成后STOP位置位置1、并且关闭通道。、并且关闭通道。注意:注意:在在DMA运行期间,不要改变其值,并且也不要使运行期间,不要改变其值,并且也不要使用该位停止用该位停止DMA传输,正确的方法应该使用传输,正确

60、的方法应该使用STOP位。位。SW_TRIG: DMA软件触发位软件触发位设为设为1时,实现软件触发时,实现软件触发DMA请求。请求。注意:注意:只有当只有当DCONn23设为软件触发设为软件触发DMA请求时,其请求时,其软件触发才有效。软件触发才有效。对对DMA应用注意:应用注意:在在DMA运行中改变运行中改变DISRCn、DIDSTn寄存器寄存器以及改变以及改变DCONn中中TC的值,对的值,对DMA当前的整个当前的整个传输没有影响。而其它寄存器或位值的改变,将立传输没有影响。而其它寄存器或位值的改变,将立即影响传输。即影响传输。 4.4 A/D转换与触摸屏转换与触摸屏主要内容主要内容1、

61、概述、概述2、结构与工作原理、结构与工作原理3、寄存器、寄存器4、应用举例、应用举例一、一、S3C2410X的的A/D 转换器概述转换器概述S3C2410X中集成了一个通道中集成了一个通道10 位位A/D 转换转换器,器,A/D 转换器自身具有采样保持功能。并且转换器自身具有采样保持功能。并且S3C2410X的的A/D 转换器支持触摸屏接口。转换器支持触摸屏接口。A/D转换器的主要特性:转换器的主要特性:分辨率:分辨率:10位;位;精度:精度:1LSB 线性度误差:线性度误差: 1.5-2.0LSB;最大转换速率:最大转换速率:500KSPS;输入电压范围:输入电压范围:03.3v;系统具有采

62、样保持功能;系统具有采样保持功能;常规转换和低能源消耗功能;常规转换和低能源消耗功能;独立独立/自动的自动的X/Y 坐标转换模式。坐标转换模式。二、二、A/D转换器结构与工作原理转换器结构与工作原理下图为下图为S3C2410 A/D 转换器和触摸屏接口的功能块图。转换器和触摸屏接口的功能块图。1、结构、结构主要由主要由6部部分构成:分构成:信号输入通道信号输入通道8转转1切换开关切换开关A/D转换器转换器控制逻辑控制逻辑中断信号发生器中断信号发生器触摸屏接口触摸屏接口2、引脚信号(需要补充)、引脚信号(需要补充)0:正常工作模式;:正常工作模式;3、工作原理、工作原理(1)A/D 转换时间计算

63、和分辨率转换时间计算和分辨率当当PCLK 频率为频率为50MHz,预分频值是,预分频值是49,10 位数字量位数字量的转换时间如下:的转换时间如下:A/D 转换频率转换频率=50MHz /(49+1)=1MHz转换时间转换时间=1/(1MHz/5 个周期)个周期)=1/200KHz=5usA/D 转换器最大可以工作在转换器最大可以工作在2.5MHz 时钟下,所以转换时钟下,所以转换速率可以达到速率可以达到500KSPS。(2)触摸屏的结构及工作原理)触摸屏的结构及工作原理原理:原理:对于电阻式触摸屏,由对于电阻式触摸屏,由3层透明薄膜构成,有一层透明薄膜构成,有一层是电阻层,还有一层是导电层,

64、它们中间有一隔离层,层是电阻层,还有一层是导电层,它们中间有一隔离层,当某一点被按压时,在按压点电阻层与导电层接触,如果当某一点被按压时,在按压点电阻层与导电层接触,如果在电阻层的一边接电源,另一边接地,便可测量出按压点在电阻层的一边接电源,另一边接地,便可测量出按压点的电压,从而可算出其坐标。的电压,从而可算出其坐标。实现方法:实现方法:测量测量X坐标:坐标:从从XP输出电压给输出电压给X+端,从端,从XM输输出地电位给出地电位给X-端;从端;从YP脚输入按压点电压。脚输入按压点电压。控制信号:控制信号:nYPON=1;nYMON=0nXPON=0;nXMON=1测测Y测测X测量测量Y坐标:

65、坐标:从从YP输出电压给输出电压给Y+端,从端,从YM输输出地电位给出地电位给Y-端;从端;从XP脚输入按压点电压。脚输入按压点电压。控制信号:控制信号:nYPON=0;nYMON=1nXPON=1;nXMON=0测测Y测测X3、S3C24120X A/D转换器的工作模式转换器的工作模式有有5种:普通转换模式、分离的种:普通转换模式、分离的X/Y坐标转换模式、连续坐标转换模式、连续的的X/Y坐标转换模式、等待中断模式、静态模式。第坐标转换模式、等待中断模式、静态模式。第2-4种种是用于触摸屏。是用于触摸屏。(1)普通转换模式)普通转换模式用于一般用于一般A/D转换,不是用于触摸屏。转换结束后,

66、其转换,不是用于触摸屏。转换结束后,其数据在数据在ADCDAT0中的中的XPDATA域。域。(2)分离的)分离的X/Y坐标转换模式坐标转换模式分两步进行分两步进行X/Y坐标转换,其转换结果分别存于坐标转换,其转换结果分别存于ADCDAT0中的中的XPDATA域中和域中和ADCDAT1中的中的YPDATA域域中,并且均会产生中,并且均会产生INT_ADC中断请求。中断请求。(3)自动(连续)的)自动(连续)的X/Y坐标转换模式坐标转换模式X坐标转换结束启动坐标转换结束启动Y坐标转换,其转换结果分别存于坐标转换,其转换结果分别存于ADCDAT0中的中的XPDATA域中和域中和ADCDAT1中的中的

67、YPDATA域域中,然后产生中,然后产生INT_ADC中断请求。中断请求。(4)等待中断转换模式)等待中断转换模式在该模式下,转换器等待使用者按压触摸屏,一在该模式下,转换器等待使用者按压触摸屏,一旦触摸屏被按压,则产生旦触摸屏被按压,则产生INT_TC触摸屏中断请求。触摸屏中断请求。中断后,在中断处理程序中再将转换器设置为分中断后,在中断处理程序中再将转换器设置为分离的离的X/Y坐标转换模式、或者连续的坐标转换模式、或者连续的X/Y坐标转换模坐标转换模式进行处理。式进行处理。触摸屏接口信号:触摸屏接口信号:XP=上拉上拉XM=高阻高阻YP=AIN5YM=接地接地(5)静态模式)静态模式当当A

68、DCCON中的中的STDBM设为设为1时,转换器进入时,转换器进入静态模式,停止静态模式,停止A/D转换。其数据域的数据保持不变。转换。其数据域的数据保持不变。三、三、ADC和触摸屏专用寄存器和触摸屏专用寄存器有有5个专用寄存器个专用寄存器Register Address R/W Description Reset Value ADCCON 0x58000000 R/W ADC控制寄存器控制寄存器 0x3FC4 ADCTSC 0x58000004 R/W 触摸屏控制寄存器触摸屏控制寄存器0x058 ADCDLY0x58000008 R/W ADC起始延迟寄存器起始延迟寄存器0x00FF ADC

69、DAT0 0x5800000CRADC转换数据转换数据0寄存器寄存器-ADCDAT1 0x58000010 RADC转换数据转换数据1寄存器寄存器- ECFLG-转换结束标志转换结束标志(只读)(只读)0:转换操作中;:转换操作中;1:转换结束:转换结束PRSCEN-转换器预分频器使能转换器预分频器使能0:停止预分频器;:停止预分频器;1:使能预分频器:使能预分频器PRSCVL-转换器预分频器数值转换器预分频器数值数值数值N范围:范围:1-255注意注意:(:(1)实际除数值为)实际除数值为N+1 (2)对)对N数值的要求:转换速率应该数值的要求:转换速率应该PCLK/51、ADCCON-AD

70、C控制控制寄存器寄存器151413 6ECFLGPRSCENPRSCVL543210SEL_MUXSTDBM READ_START ENABLE_STARTSEL_MUX -模拟输入通道选择模拟输入通道选择000:AIN0;001:AIN1010:AIN2011:AIN3111:AIN7STDBM-备用模式设置备用模式设置0:正常工作模式;:正常工作模式;1:备用模式,不做:备用模式,不做A/D转换转换READ_START-通过读取启动转换通过读取启动转换0:停止通过读取启动转换;:停止通过读取启动转换;1:使能通过读取启动转换:使能通过读取启动转换ENABLE_START-通过设置该位启动转

71、换通过设置该位启动转换0:无效;:无效;1:启动:启动A/D转换(启动后被清转换(启动后被清0)注意注意:如果:如果READ_START为为1,则该位无效,则该位无效543210SEL_MUXSTDBM READ_START ENABLE_STARTYM_SEN-选择选择YMON的输出值的输出值0:输出:输出0(YM=高阻);高阻); 1: 输出输出1(YM=GND)YP_SEN-选择选择nYPON的输出值的输出值0:输出:输出0(YP=外部电压);外部电压);1:输出:输出1(YP连接连接AIN5)XM_SEN-选择选择XMON的输出值的输出值0:输出:输出0( XM=高阻);高阻); 1:

72、 输出输出1(XM=GND)XP_SEN-选择选择nXP的输出值的输出值0:输出:输出0(XP=外部电压);外部电压);1:输出:输出1(XP连接连接AIN7)2、ADCTSC-ADC触摸屏控制寄存器触摸屏控制寄存器876543210保留保留0 YM_SENYP_SENXM_SENXP_SEN PULL_UP AUTO_PST XY_PSTPULL-上拉切换使能上拉切换使能0:XP上拉使能;上拉使能;1: XP上拉禁止上拉禁止AUTO_PST-自动连续转换自动连续转换X轴和轴和Y轴坐标模式选择轴坐标模式选择0:普通:普通A/D转换;转换;1:连续:连续X/Y轴转换模式轴转换模式XY_PST-手

73、动测量手动测量X轴和轴和Y轴坐标模式选择轴坐标模式选择00:无操作模式;:无操作模式;01:对:对X坐标测量;坐标测量;10:对:对X坐标测量;坐标测量;11:等待中断模式:等待中断模式876543210保留保留0 YM_SENYP_SENXM_SENXP_SEN PULL_UP AUTO_PST XY_PST31 1615 14 13 12 11 10 98876543210保留为保留为0起始延迟数值起始延迟数值-分两种情况分两种情况第一情况:第一情况:对普通转换模式、分离的对普通转换模式、分离的X/Y轴坐标转换模式、轴坐标转换模式、连续的连续的X/Y轴坐标转换模式,轴坐标转换模式,为转换延

74、时数值为转换延时数值。第二种情况:第二种情况:对中断转换模式对中断转换模式,为按压触摸屏后到产生中断,为按压触摸屏后到产生中断请求的延迟时间数值,请求的延迟时间数值,其时间单位为其时间单位为ms。3、ADCDLY-ADC起始延迟寄存器起始延迟寄存器UPDOWN-等待中断模式的按压状态等待中断模式的按压状态0:触笔点击;:触笔点击;1:触笔提起:触笔提起AUTO_PST-自动自动X/Y轴转换模式指示轴转换模式指示0:普通转换模式;:普通转换模式;1:X/Y轴坐标连续转换轴坐标连续转换XY_PST-手动手动X/Y轴转换模式指示轴转换模式指示00:无操作;:无操作;01:为:为X轴坐标转换轴坐标转换

75、10:为:为Y轴坐标转换轴坐标转换11:为等待中断转换:为等待中断转换XPDATA9:0:为:为X轴坐标转换数值、或普通轴坐标转换数值、或普通ADC转换数值转换数值具体意义由其它位指示。其值为:具体意义由其它位指示。其值为:0-0x3FF4、ADCDAT0-ADC转换数据转换数据0寄存器寄存器1514131211109 0UPDOWN AUTO_PST XY_PST 保留(保留(0) XPDATA或普通或普通ADC值值第11次到此UPDOWN-等待中断模式的按压状态等待中断模式的按压状态0:触笔点击;:触笔点击;1:触笔提起:触笔提起AUTO_PST-自动自动X/Y轴转换模式指示轴转换模式指示

76、0:普通转换模式;:普通转换模式;1:X/Y轴坐标连续转换轴坐标连续转换XY_PST-手动手动X/Y轴转换模式指示轴转换模式指示00:无操作;:无操作;01:为:为X轴坐标转换轴坐标转换11:为:为Y轴坐标转换轴坐标转换11:为等待中断转换:为等待中断转换YPDATA9:0:为:为10位位Y轴坐标转换结果轴坐标转换结果其值为:其值为:0-0x3FF 5、ADCDAT1-ADC转换数据转换数据1寄存器寄存器1514131211109 0UPDOWN AUTO_PST XY_PST 保留(保留(0)YPDATA例题:例题:编写程序,对编写程序,对3通道的模拟量连续做通道的模拟量连续做10次转换,用

77、查询方式读取转换结果,其数据存于次转换,用查询方式读取转换结果,其数据存于0x400000开始的区域。开始的区域。AREA ADC,CODE,READONLYENTRYSTART#define rADCCON (*(volatile unsigned *)0x58000000)#define rADCDAT0 (*(volatile unsigned *)0x5800000c)#define pref 49#define ch 3void adc(void) int adc_data10, i; rADCCON=(114)|(pref6)|(ch3)|1/允许预分频允许预分频for(i=0;i

78、10;i+)while(rADCCON&0x8000=0); /查询转换结束否查询转换结束否adc_datai=rADCDAT0&0x3ff; /读取转换结果读取转换结果 rADCCON|=1; /再次启动转换再次启动转换4.5 中断中断主要内容主要内容概述概述结构与工作原理结构与工作原理寄存器寄存器应用举例应用举例一、概一、概 述述S3C2410X中断控制器有中断控制器有56个中断源个中断源,对外提,对外提供供24个外中断输入引脚,内部所有设备都有中断请个外中断输入引脚,内部所有设备都有中断请求信号,例如求信号,例如DMA控制器、控制器、UART、IIC等等。等等。S3C2410X的的ARM

79、920T内核有两个中断内核有两个中断,IRQ中断和快速中断中断和快速中断FIQ。中断仲裁:中断仲裁:当中断控制器接收到多个中断请求当中断控制器接收到多个中断请求时,其内的优先级仲裁器裁决后向时,其内的优先级仲裁器裁决后向CPU发出优先级发出优先级最高的中断请求信号或快速中断请求信号。最高的中断请求信号或快速中断请求信号。二、二、S3C2410X中断系统结构中断系统结构1、中断系统结构、中断系统结构主要由中断源和控制寄存器两大部分构成,其主要由中断源和控制寄存器两大部分构成,其寄存器主要有寄存器主要有4种:模式、屏蔽、优先级、挂起种:模式、屏蔽、优先级、挂起(标志)寄存器等。(标志)寄存器等。中

80、断源中断源(有子寄存器有子寄存器)子中断源子中断源挂起寄存器挂起寄存器中断源中断源(无子寄存器无子寄存器)子中断源子中断源屏蔽寄存器屏蔽寄存器中断屏蔽中断屏蔽中断模式中断模式优先级仲裁优先级仲裁FIQIRQ中断源挂起中断源挂起中中断断挂挂起起与中断控制相关的寄存器:1.程序状态寄存器的F位和I位:2.中断模式寄存器(INTMOD):3.中断源挂起寄存器(SRCPND):4.中断挂起寄存器(INTPND):5.中断屏蔽寄存器(INTMSK):6.中断优先寄存器(PRIORITY)7.IRQ偏移寄存器(INTOFFSET):8.子中断源未决寄存器(SUBSRCPND)9. 子中断屏蔽寄存器(INT

81、SUBMSK)中断服务程序工作流程:先屏蔽中断,防止其他中断干扰中断服务程序的执行;执行相应的中断服务子程序,在子程序中先要清除SRCPND和INTPND;取消中断屏蔽;2、中断优先级仲裁器及工作原理、中断优先级仲裁器及工作原理中断系中断系统有统有6个分个分仲裁器和仲裁器和1个总仲裁器,个总仲裁器,每一个仲裁每一个仲裁器可以处理器可以处理6路中断。路中断。三、中断控制器专用寄存器三、中断控制器专用寄存器有有8个专用寄存器个专用寄存器Register Address R/W Description Reset Value SRCPND0x4A000000 R/W 中断标志寄存器中断标志寄存器 0

82、x00000000 INTMOD 0x4A000004 R/W 中断模式寄存器中断模式寄存器0x00000000 INTMSK0x4A000008 R/W 中断屏蔽寄存器中断屏蔽寄存器0xFFFFFFFF PRIORITY0x4A00000C R/W 中断优先级寄存器中断优先级寄存器0x7FINTPND0x4A000010 R/W 中断服务寄存器中断服务寄存器0x00000000 INTOFFSET 0x4A000014R中断偏移寄存器中断偏移寄存器0x00000000 SUBSRCPND 0x4A000018 R/W 子源挂起寄存器子源挂起寄存器0x00000000INTSUBMSK 0x4

83、A00001C R/W 中断子源屏蔽寄存器中断子源屏蔽寄存器0x7FF主要使用前主要使用前5个寄存器个寄存器该寄存器也就是中断标志寄存器该寄存器也就是中断标志寄存器各位:各位:1:对应中断源:对应中断源有有中断请求中断请求0:对应中断源:对应中断源无无中断请求中断请求注意:必须在中断处理程序中对其标志位清注意:必须在中断处理程序中对其标志位清0。其方法为写。其方法为写1.1、SRCPND-中断源挂起(标志)寄存器中断源挂起(标志)寄存器位号位号中断源中断源位号位号中断源中断源位号位号中断源中断源位号位号中断源中断源31INT_ADC23INT_UART115INT_UART27nBATT_FL

84、T30INT_RTC22INT_SPI014INT_TIM46保留保留29INT_SPI121INT_SDI13INT_TIM35EINT8_2328INT_UART020INT_DMA312INT_TIM24EINT4_727INT_IIC19INT_DMA211INT_TIM13EINT326INT_USBH18INT_DMA110INT_TIM02EINT225INT_USBD17INT_DMA09INT_WDT1EINT124保留保留16INT_LCD8INT_TICK0EINT0该寄存器是设置各中断源是该寄存器是设置各中断源是FIQ中断还是中断还是IRQ中断中断各位:各位:1:对应中

85、断源设为:对应中断源设为FIQ中断模式中断模式0:对应中断源设为:对应中断源设为IRQ中断模式中断模式2、INTMOD-中断模式寄存器中断模式寄存器位号位号中断源中断源位号位号中断源中断源位号位号中断源中断源位号位号中断源中断源31INT_ADC23INT_UART115INT_UART27nBATT_FLT30INT_RTC22INT_SPI014INT_TIM46保留保留29INT_SPI121INT_SDI13INT_TIM35EINT8_2328INT_UART020INT_DMA312INT_TIM24EINT4_727INT_IIC19INT_DMA211INT_TIM13EINT

86、326INT_USBH18INT_DMA110INT_TIM02EINT225INT_USBD17INT_DMA09INT_WDT1EINT124保留保留16INT_LCD8INT_TICK0EINT0各位:各位:1:屏蔽对应中断源:屏蔽对应中断源0:开放对应中断源:开放对应中断源3、INTMSK-中断屏蔽寄存器中断屏蔽寄存器位号位号中断源中断源位号位号中断源中断源位号位号中断源中断源位号位号中断源中断源31INT_ADC23INT_UART115INT_UART27nBATT_FLT30INT_RTC22INT_SPI014INT_TIM46保留保留29INT_SPI121INT_SDI13

87、INT_TIM35EINT8_2328INT_UART020INT_DMA312INT_TIM24EINT4_727INT_IIC19INT_DMA211INT_TIM13EINT326INT_USBH18INT_DMA110INT_TIM02EINT225INT_USBD17INT_DMA09INT_WDT1EINT124保留保留16INT_LCD8INT_TICK0EINT04、PRIORITY-中断优先级寄存器中断优先级寄存器ARB_SELn-n组优先级顺序控制位组优先级顺序控制位00:REQ0, 1, 2, 3, 4, 5 01:REQ0, 2, 3, 4, 1, 510:REQ0,

88、3, 4, 1, 2, 5 11:REQ0, 4, 1, 2, 3, 5ARB_MODEn-n组优先级循环控制位组优先级循环控制位0:优先顺序固定不变:优先顺序固定不变 1:优先顺序循环,每响应一次中断,其顺序循环改变一次,:优先顺序循环,每响应一次中断,其顺序循环改变一次,但但REQ0、REQ5位置不变。位置不变。位号位号含含 义义位号位号含含 义义位号位号含含 义义31:21保保 留留12:11ARB_SEL24ARB_MODE420:19ARB_SEL610:9ARB_SEL13ARB_MODE318:17ARB_SEL58:7ARB_SEL02ARB_MODE216:15ARB_SEL

89、46ARB_MODE61ARB_MODE114:13ARB_SEL35ARB_MODE50ARB_MODE0各位:各位:1:对应的中断源被响应,且正在执行中断服务:对应的中断源被响应,且正在执行中断服务0:对应中断源未被响应:对应中断源未被响应注意:必须在中断处理程序中对其服务标志位清注意:必须在中断处理程序中对其服务标志位清0。方法为对某。方法为对某位写位写1便清除为便清除为0。即在清除即在清除SRCPND中相应位后,要清除该寄存器相应位。中相应位后,要清除该寄存器相应位。5、INTPND-中断服务(挂起)寄存器中断服务(挂起)寄存器位号位号中断源中断源位号位号中断源中断源位号位号中断源中断

90、源位号位号中断源中断源31INT_ADC23INT_UART115INT_UART27nBATT_FLT30INT_RTC22INT_SPI014INT_TIM46保留保留29INT_SPI121INT_SDI13INT_TIM35EINT8_2328INT_UART020INT_DMA312INT_TIM24EINT4_727INT_IIC19INT_DMA211INT_TIM13EINT326INT_USBH18INT_DMA110INT_TIM02EINT225INT_USBD17INT_DMA09INT_WDT1EINT124保留保留16INT_LCD8INT_TICK0EINT0该寄

91、存器的偏移值指示在该寄存器的偏移值指示在INTPND中显示的中断源中显示的中断源各位:各位:1:对应的中断源,在:对应的中断源,在INTPND中被置位中被置位说明:说明:当在中断服务程序中对当在中断服务程序中对SRCPND、INTPND中的中的标志位清标志位清0时,该寄存器的对应位自动清时,该寄存器的对应位自动清0。6、INTOFFSET-中断偏移寄存器中断偏移寄存器中断源中断源偏移偏移值值中断源中断源偏移偏移值值中断源中断源偏移偏移值值中断源中断源偏移偏移值值INT_ADC31INT_UART123INT_UART215nBATT_FLT7INT_RTC30INT_SPI022INT_TIM

92、414保留保留6INT_SPI129INT_SDI21INT_TIM313EINT8_235INT_UART028INT_DMA320INT_TIM212EINT4_74INT_IIC27INT_DMA219INT_TIM111EINT33INT_USBH26INT_DMA118INT_TIM010EINT22INT_USBD25INT_DMA017INT_WDT9EINT11保留保留24INT_LCD16INT_TICK8EINT007、SUBSRCPND-子中断源请求标志寄存器子中断源请求标志寄存器对有多个中断源的外设,显示其具体的中断请求对有多个中断源的外设,显示其具体的中断请求各位:各

93、位:1:对应的子中断源有请求:对应的子中断源有请求0:对应的子中断源无请求:对应的子中断源无请求注意:注意:在中断服务程序中,需要对其置在中断服务程序中,需要对其置1的标志位清的标志位清0。位号位号中断源中断源位号位号中断源中断源位号位号中断源中断源31:11保保 留留7INT_TXD23INT_RXD110INT_ADC6INT_RXD22INT_ERR09INT_TC5INT_ERR11INT_TXD08INT_ERR24INT_TXD10INT_RXD08、INTSUBMSK-子中断源屏蔽寄存器子中断源屏蔽寄存器对有多个中断源的外设,对具体的中断源进行屏蔽对有多个中断源的外设,对具体的中

94、断源进行屏蔽各位:各位:1:屏蔽对应的子中断源:屏蔽对应的子中断源0:开放对应的子中断源:开放对应的子中断源位号位号中断源中断源位号位号中断源中断源位号位号中断源中断源31:11保保 留留7INT_TXD23INT_RXD110INT_ADC6INT_RXD22INT_ERR09INT_TC5INT_ERR11INT_TXD08INT_ERR24INT_TXD10INT_RXD0在在2410init.s文件中与的中断初始化部分文件中与的中断初始化部分程序开始及中断入口程序开始及中断入口bResetHandler bHandlerUndef;handler for Undefined modeb

95、HandlerSWI;handler for SWI interruptbHandlerPabort;handler for PAbortbHandlerDabort;handler for DAbortb.;reservedbHandlerIRQ;handler for IRQ interrupt bHandlerFIQ;handler for FIQ interrupt本段意义:本段意义:利用后面定义的宏来展开上面各行,使其进利用后面定义的宏来展开上面各行,使其进入它们所对应的中断服务子程序。入它们所对应的中断服务子程序。中断举例中断举例第第12次到此次到此LTORG ;声明一个数据缓冲池

96、的开始声明一个数据缓冲池的开始HandlerFIQ HANDLER HandleFIQHandlerIRQ HANDLER HandleIRQHandlerUndef HANDLER HandleUndefHandlerSWI HANDLER HandleSWIHandlerDabort HANDLER HandleDabortHandlerPabort HANDLER HandlePabort本段意义:本段意义:利用后面定义的宏来展开上面各行,使利用后面定义的宏来展开上面各行,使其进入它们所对应的中断服务子程序其进入它们所对应的中断服务子程序;本宏意义:本宏意义:转到相应中断服务子程序去执行

97、转到相应中断服务子程序去执行 MACRO$HandlerLabel HANDLER $HandleLabel;如如Label=IRQ , ( HandlerIRQ )$HandlerLabelsub sp,sp,#4stmfdsp!,r0 ldr r0,=$HandleLabel ldr r0,r0str r0,sp,#4ldmfd sp!,r0,pcMEND IRQ中断服务程序中断服务程序IsrIRQ sub sp,sp,#4 ;reserved for PCstmfdsp!,r8-r9 ldr r9,=INTOFFSET;中断偏移寄存器中断偏移寄存器ldr r9,r9ldr r8,=Han

98、dleEINT0;中断向量表首地址中断向量表首地址add r8,r8,r9,lsl #2ldr r8,r8str r8,sp,#8ldmfdsp!,r8-r9,pc本段意义:本段意义:根据中断服务号,转去执行相应的中断处根据中断服务号,转去执行相应的中断处理程序段。理程序段。;中断向量表中断向量表IntVectorTableHandleEINT0 # 4HandleEINT1 # 4HandleEINT2 # 4HandleEINT3 # 4HandleEINT4_7# 4HandleEINT8_23# 4HandleRSV6# 4HandleBATFLT # 4HandleTICK # 4H

99、andleWDT# 4HandleTIMER0 # 4HandleTIMER1 # 44.6 输入输入/输出端口输出端口主要内容主要内容概述概述寄存器寄存器应用举例应用举例一、概述一、概述S3C2410X有有117个输入个输入/输出端口输出端口。这些端口是:。这些端口是:A口(口(GPA):):23个输出口个输出口B口(口(GPB):):11个输入个输入/输出口输出口C口(口(GPC):):16个输入个输入/输出口输出口D口(口(GPD):):16个输入个输入/输出口输出口E口(口(GPE):):16个输入个输入/输出口输出口F口(口(GPF):):8个输入个输入/输出口输出口G口(口(GPG

100、):):16个输入个输入/输出口输出口H口(口(GPH):):11个输入个输入/输出口输出口这些端口都具有多功能,通过引脚配置寄存器,可以这些端口都具有多功能,通过引脚配置寄存器,可以将其设置为所需要的功能,如:将其设置为所需要的功能,如:I/O功能、中断功能等等。功能、中断功能等等。二、端口寄存器及引脚配置二、端口寄存器及引脚配置每一个端口都有每一个端口都有4个寄存器,它们是:引脚配个寄存器,它们是:引脚配置寄存器、数据寄存器、引脚上拉寄存器等。置寄存器、数据寄存器、引脚上拉寄存器等。Register Address R/W Description Reset Value GPXCON0x5

101、60000x0 R/W 端口端口X配置寄存器配置寄存器 X GPXDAT 0x560000x4 R/W 端口端口X数据寄存器数据寄存器X GPXUP0x560000x8 R/W 端口端口X上拉寄存器上拉寄存器X RESERVED0x560000xC R/W 端口端口X保留寄存器保留寄存器-GPADAT寄存器为准备输出的数据寄存器为准备输出的数据其值为其值为23位位22:0注意注意: (1)当当A口引脚配置为非输出功能时,其输出口引脚配置为非输出功能时,其输出无意义;无意义; (2)从引脚输入没有意义。)从引脚输入没有意义。1、端口、端口A寄存器及引脚配置寄存器及引脚配置Register Add

102、ress R/W Description Reset Value GPACON0x56000000 R/W 端口端口A引脚配置寄存器引脚配置寄存器 0x7FFFFF GPADAT 0x56000004 R/W 端口端口A数据寄存器数据寄存器- RESERVED 0x56000008 -端口端口A保留寄存器保留寄存器- RESERVED 0x5600000C-端口端口A保留寄存器保留寄存器-1、端口、端口A寄存器及引脚配置寄存器及引脚配置位号位号 位位 名名 位值位值:0 1位号位号 位位 名名 位值位值:0 122GPA22输出输出nFCE10GPA10输出输出ADDR2521GPA21输出输

103、出nRSTOUT9GPA9输出输出ADDR2420GPA20输出输出nFRE8GPA8输出输出ADDR2319GPA19输出输出nFWE7GPA7输出输出ADDR2218GPA18输出输出ALE6GPA6输出输出ADDR2117GPA17输出输出CLE5GPA5输出输出ADDR2016GPA16输出输出nGCS54GPA4输出输出ADDR1915GPA15输出输出nGCS43GPA3输出输出ADDR1814GPA14输出输出nGCS32GPA2输出输出ADDR1713GPA13输出输出nGCS21GPA1输出输出ADDR1612GPA12输出输出nGCS10GPA0输出输出ADDR011GPA

104、11输出输出ADDR26FCE:Flash片选片选GPBDAT-为准备输出或输入的数据为准备输出或输入的数据其值为其值为11位位10:0GPBUP-端口端口B上拉寄存器,位上拉寄存器,位10:0有意义。有意义。 0:对应引脚设置为上拉:对应引脚设置为上拉1:无上拉功能:无上拉功能注意注意: 当当B口引脚配置为非输入口引脚配置为非输入/输出功能时,其寄存输出功能时,其寄存器中的值没有意义。器中的值没有意义。2、端口、端口B寄存器及引脚配置寄存器及引脚配置Register Address R/W Description Reset Value GPBCON0x56000010 R/W 端口端口B引

105、脚配置寄存器引脚配置寄存器 0x0 GPBDAT 0x56000014 R/W 端口端口B数据寄存器数据寄存器- GPBUP0x56000018 R/W 端口端口B上拉寄存器上拉寄存器0x0RESERVED 0x5600001C- 端口端口B保留寄存器保留寄存器-端口端口B引脚配置寄存器引脚配置寄存器位号位号位位 名名 位值位值:00 01 10 1121,20GPB10输入输入输出输出nXDREQ0Reserved19,18GPB9输入输入输出输出nXDACK0Reserved17,16GPB8输入输入输出输出nXDREQ1Reserved15,14GPB7输入输入输出输出nXDACK1Re

106、served13,12GPB6输入输入输出输出nXBACKReserved11,10GPB5输入输入输出输出nXBREQReserved9,8GPB4输入输入输出输出TCLK0Reserved7,6GPB3输入输入输出输出TOUT3Reserved5,4GPB2输入输入输出输出TOUT2Reserved3,2GPB1输入输入输出输出TOUT1Reserved1,0GPB0输入输入输出输出TOUT0ReservedGPCDAT-为准备输出或输入的数据为准备输出或输入的数据其值为其值为16位位15:0GPCUP-端口端口C上拉寄存器,位上拉寄存器,位15:0有意义。有意义。 0:对应引脚设置为上拉

107、:对应引脚设置为上拉1:无上拉功能:无上拉功能注意注意: 当当C口引脚配置为非输入口引脚配置为非输入/输出功能时,其寄存输出功能时,其寄存器中的值没有意义。器中的值没有意义。3、端口、端口C寄存器及引脚配置寄存器及引脚配置Register Address R/W Description Reset Value GPCCON0x56000020 R/W 端口端口C引脚配置寄存器引脚配置寄存器 0x0 GPCDAT 0x56000024 R/W 端口端口C数据寄存器数据寄存器- GPCUP0x56000028 R/W 端口端口C上拉寄存器上拉寄存器0x0RESERVED 0x5600002C- 端

108、口端口C保留寄存器保留寄存器-端口端口C引脚配置寄存器引脚配置寄存器位号位号 位位 名名位位 值值位号位号 位名位名位位 值值000110110001101131,30 GPC15 输入输入 输出输出 VD7保留保留 15,14 GPC7 输入输入 输出输出 LCDVF2 保留保留29,28 GPC14 输入输入 输出输出 VD6保留保留 13,12 GPC6 输入输入 输出输出 LCDVF1 保留保留27,26 GPC13 输入输入 输出输出 VD5保留保留 11,10 GPC5 输入输入 输出输出 LCDVF0 保留保留25,24 GPC12 输入输入 输出输出 VD4保留保留9,8 GP

109、C4 输入输入 输出输出VM保留保留23,22 GPC11 输入输入 输出输出 VD3保留保留7,6 GPC3 输入输入 输出输出VFRAME保留保留21,20 GPC10 输入输入 输出输出 VD2保留保留5,4 GPC2 输入输入 输出输出VLINE保留保留19,18 GPC9 输入输入 输出输出 VD1保留保留3,2 GPC1 输入输入 输出输出VCLK保留保留17,16 GPC8 输入输入 输出输出 VD0保留保留1,0 GPC0 输入输入 输出输出VEND保留保留GPDDAT-为准备输出或输入的数据为准备输出或输入的数据其值为其值为16位位15:0GPDUP-端口端口D上拉寄存器,位

110、上拉寄存器,位15:0有意义。有意义。 0:对应引脚设置为上拉:对应引脚设置为上拉1:无上拉功能:无上拉功能初始化时,初始化时,15:12无上拉功能,而无上拉功能,而11:0有上拉有上拉注意注意: 当当D口引脚配置为非输入口引脚配置为非输入/输出功能时,其寄存输出功能时,其寄存器中的值没有意义。器中的值没有意义。4、端口、端口D寄存器及引脚配置寄存器及引脚配置Register Address R/W Description Reset Value GPDCON0x56000030 R/W 端口端口D引脚配置寄存器引脚配置寄存器 0x0 GPDDAT 0x56000034 R/W 端口端口D数据

111、寄存器数据寄存器- GPDUP0x56000038 R/W 端口端口D上拉寄存器上拉寄存器0xF000RESERVED 0x5600003C- 端口端口D保留寄存器保留寄存器-端口端口D引脚配置寄存器引脚配置寄存器位号位号 位位 名名位位 值值位号位号 位名位名位位 值值000110110001101131,30GPD15 输入输入 输出输出 VD23 nSS0 15,14 GPD7 输入输入输出输出 VD15 保留保留29,28GPD14 输入输入 输出输出 VD22 nSS1 13,12 GPD6 输入输入输出输出 VD14 保留保留27,26GPD13 输入输入 输出输出 VD21 保留

112、保留 11,10 GPD5 输入输入输出输出 VD13 保留保留25,24GPD12 输入输入 输出输出 VD20 保留保留9,8 GPD4 输入输入输出输出 VD12 保留保留23,22GPD11 输入输入 输出输出 VD19 保留保留7,6 GPD3 输入输入输出输出 VD11 保留保留21,20GPD10 输入输入 输出输出 VD18 保留保留5,4 GPD2 输入输入输出输出 VD10 保留保留19,18 GPD9 输入输入 输出输出 VD17 保留保留3,2 GPD1 输入输入输出输出VD9保留保留17,16 GPD8 输入输入 输出输出 VD16 保留保留1,0 GPD0 输入输入

113、输出输出VD8保留保留GPEDAT-为准备输出或输入的数据为准备输出或输入的数据其值为其值为16位位15:0GPEUP-端口端口E上拉寄存器,位上拉寄存器,位15:0有意义。有意义。 0:对应引脚设置为上拉:对应引脚设置为上拉1:无上拉功能:无上拉功能初始化时,各个引脚都有上拉功能。初始化时,各个引脚都有上拉功能。注意注意: 当当E口引脚配置为非输入口引脚配置为非输入/输出功能时,其寄存输出功能时,其寄存器中的值没有意义。器中的值没有意义。5、端口、端口E寄存器及引脚配置寄存器及引脚配置Register Address R/W Description Reset Value GPECON0x5

114、6000040 R/W 端口端口E引脚配置寄存器引脚配置寄存器 0x0 GPEDAT 0x56000044 R/W 端口端口E数据寄存器数据寄存器- GPEUP0x56000048 R/W 端口端口E上拉寄存器上拉寄存器0x0RESERVED 0x5600004C- 端口端口E保留寄存器保留寄存器-端口端口E引脚配置寄存器引脚配置寄存器位号位号 位位 名名位位 值值位号位号 位名位名位位 值值000110110001101131,30GPE15 输入输入 输出输出 IICSDA 保留保留 15,14 GPE7 输入输入 输出输出 SDDAT0 保留保留29,28GPE14 输入输入 输出输出

115、IICSCL 保留保留 13,12 GPE6 输入输入 输出输出 SDCMD 保留保留27,26GPE13 输入输入 输出输出SPICLK0保留保留 11,10 GPE5 输入输入 输出输出 SDCLK保留保留25,24GPE12 输入输入 输出输出 SPISI0 保留保留 9,8 GPE4 输入输入 输出输出 IISSDO保留保留23,22 GPE11 输入输入 输出输出 SPISO0 保留保留 7,6 GPE3 输入输入 输出输出IISSDI保留保留21,20GPE10 输入输入 输出输出 SDDAT3 保留保留 5,4 GPE2 输入输入 输出输出 CDCLK 保留保留19,18 GPE

116、9 输入输入 输出输出 SDDAT2 保留保留 3,2 GPE1 输入输入 输出输出 IISSCLK 保留保留17,16 GPE8 输入输入 输出输出 SDDAT1 保留保留 1,0 GPE0 输入输入 输出输出 IISLRCK 保留保留GPFDAT-为准备输出或输入的数据为准备输出或输入的数据其值为其值为8位位7:0GPFUP-端口端口F上拉寄存器,位上拉寄存器,位7:0有意义。有意义。 0:对应引脚设置为上拉:对应引脚设置为上拉1:无上拉功能:无上拉功能初始化时,各个引脚都有上拉功能。初始化时,各个引脚都有上拉功能。注意注意: 当当F口引脚配置为非输入口引脚配置为非输入/输出功能时,其寄存

117、输出功能时,其寄存器中的值没有意义。器中的值没有意义。6、端口、端口F寄存器及引脚配置寄存器及引脚配置Register Address R/W Description Reset Value GPFCON0x56000050 R/W 端口端口F引脚配置寄存器引脚配置寄存器 0x0 GPFDAT 0x56000054 R/W 端口端口F数据寄存器数据寄存器- GPFUP0x56000058 R/W 端口端口F上拉寄存器上拉寄存器0x0RESERVED 0x5600005C- 端口端口F保留寄存器保留寄存器-端口端口F引脚配置寄存器引脚配置寄存器位号位号位位 名名位位 值值0001101115,1

118、4GPF7输入输入输出输出EINT7保留保留13,12GPF6输入输入输出输出EINT6保留保留11,10GPF5输入输入输出输出EINT5保留保留9,8GPF4输入输入输出输出EINT4保留保留7,6GPF3输入输入输出输出EINT3保留保留5,4GPF2输入输入输出输出EINT2保留保留3,2GPF1输入输入输出输出EINT1保留保留1,0GPF0输入输入输出输出EINT0保留保留GPGDAT-为准备输出或输入的数据为准备输出或输入的数据其值为其值为16位位15:0GPGUP-端口端口G上拉寄存器,位上拉寄存器,位15:0有意义。有意义。 0:对应引脚设置为上拉:对应引脚设置为上拉1:无上

119、拉功能:无上拉功能初始化时,初始化时,15:11引脚无上拉功能,其它引脚有。引脚无上拉功能,其它引脚有。注意注意: 当当G口引脚配置为非输入口引脚配置为非输入/输出功能时,其寄存输出功能时,其寄存器中的值没有意义。器中的值没有意义。7、端口、端口G寄存器及引脚配置寄存器及引脚配置Register Address R/W Description Reset Value GPGCON0x56000060 R/W 端口端口G引脚配置寄存器引脚配置寄存器 0x0 GPGDAT 0x56000064 R/W 端口端口G数据寄存器数据寄存器- GPGUP0x56000068 R/W 端口端口G上拉寄存器上

120、拉寄存器0xF800RESERVED 0x5600006C- 端口端口G保留寄存器保留寄存器-端口端口G引脚配置寄存器引脚配置寄存器位号位号 位位 名名位位 值值位号位号 位名位名位位 值值000110110001101131,30GPG15 输入输入 输出输出 EINT23nYPON15,14 GPG7 输入输入 输出输出 EINT15SPICLK129,28GPG14 输入输入 输出输出 EINT22YMON 13,12 GPG6 输入输入 输出输出 EINT14 SPISI127,26GPG13 输入输入 输出输出 EINT21nXPON11,10 GPG5 输入输入 输出输出 EINT

121、13 SPISO125,24GPG12 输入输入 输出输出 EINT20XMON 9,8GPG4 输入输入 输出输出 EINT12LCD-PEN23,22GPG11 输入输入 输出输出 EINT19TCLK1 7,6GPG3 输入输入 输出输出 EINT11nSS121,20GPG10 输入输入 输出输出 EINT18 保留保留5,4GPG2 输入输入 输出输出 EINT10nSS019,18 GPG9 输入输入 输出输出 EINT17 保留保留3,2GPG1 输入输入 输出输出 EINT9保留保留17,16 GPG8 输入输入 输出输出 EINT16 保留保留1,0GPG0 输入输入 输出输

122、出 EINT8保留保留LCD-PEN:POWER_ENABLEnSS0:SPI0_SELECTGPHDAT-为准备输出或输入的数据为准备输出或输入的数据其值为其值为11位位10:0GPHUP-端口端口H上拉寄存器,位上拉寄存器,位10:0有意义。有意义。 0:对应引脚设置为上拉:对应引脚设置为上拉1:无上拉功能:无上拉功能注意注意: 当当H口引脚配置为非输入口引脚配置为非输入/输出功能时,其寄存输出功能时,其寄存器中的值没有意义。器中的值没有意义。8、端口、端口H寄存器及引脚配置寄存器及引脚配置Register Address R/W Description Reset Value GPHCO

123、N0x56000070 R/W 端口端口H引脚配置寄存器引脚配置寄存器 0x0 GPHDAT 0x56000074 R/W 端口端口H数据寄存器数据寄存器- GPHUP0x56000078 R/W 端口端口H上拉寄存器上拉寄存器0x0RESERVED 0x5600007C- 端口端口H保留寄存器保留寄存器-端口端口H引脚配置寄存器引脚配置寄存器位号位号位位 名名 位值位值:00 01 10 1121,20GPH10输入输入输出输出CLKOUT1Reserved19,18GPH9输入输入输出输出CLKOUT0Reserved17,16GPH8输入输入输出输出UCLKReserved15,14GP

124、H7输入输入输出输出RXD2nCTS113,12GPH6输入输入输出输出TXD2nRTS111,10GPH5输入输入输出输出RXD1Reserved9,8GPH4输入输入输出输出TXD1Reserved7,6GPH3输入输入输出输出RXD0Reserved5,4GPH2输入输入输出输出TXD0Reserved3,2GPH1输入输入输出输出nRTS0Reserved1,0GPH0输入输入输出输出nCTS0ReservedUCLK为为USB的的9、端口其它控制寄存器、端口其它控制寄存器Register Address R/W Description Reset Value MISCCR0x5600

125、0080 R/W 混合控制寄存器混合控制寄存器 0x10330 DCLKCON 0x56000084 R/W D时钟控制寄存器时钟控制寄存器0x0 nEN_SCKE-SCLK使能位。在电源关闭模式下对使能位。在电源关闭模式下对SDRAM做做保护保护0: 正常状态正常状态 1:低电平:低电平nEN_SCLKx-SCLKx使能位。在电源关闭模式下对使能位。在电源关闭模式下对SDRAM做保护做保护0:SCLKx= SCLK 1:低电平:低电平nRSTCON-对对nRSTOUT软件复位控制位软件复位控制位0:使:使nRSTOUT为低,为低,0;1:使:使nRSTOUT为高,为高,11514131211

126、10987保留保留USBSUSPND1 USBSUSPND0 保留保留CLKSEL1 保留保留(1)MISCCR-混合控制寄存器混合控制寄存器312019181716保留(为保留(为0 0)nEN_SCKE nEN_SCLK1 nEN_SCLK0 nRSTCON 65432 10CLKSEL0 USBPAD MEM_HZ_CONSPUCR_L SPUCR_H USBSUSPND1-USB端口端口1模式模式0:正常:正常1:浮空:浮空USBSUSPND0-USB端口端口0模式模式0:正常:正常1:浮空:浮空CLKSEL1 - CLKOUT1引脚输出信号源选择引脚输出信号源选择000:MPLL C

127、LK001:UPLL CLK 010:FCLK011:HCLK100:PCLK 101:DCLK111x:保留:保留CLKSEL0 - CLKOUT0引脚输出信号源选择引脚输出信号源选择000:MPLL CLK001:UPLL CLK 010:FCLK011:HCLK100:PCLK 101:DCLK011x:保留:保留151413121110987保留保留USBSUSPND1 USBSUSPND0 保留保留CLKSEL1 保留保留USBPAD-与与USB连接选择连接选择0:与:与USB设备连接设备连接1:与:与USB主机连接主机连接MEM_HZ_CON-MEM高阻控制位高阻控制位0:Hi-Z

128、 1:前一状态:前一状态SPUCR_L-数据口低数据口低16位位15:0上拉控制位上拉控制位0:上拉:上拉1:无上拉:无上拉SPUCR_H-数据口高数据口高16位位31:16上拉控制位上拉控制位0:上拉:上拉1:无上拉:无上拉65432 10CLKSEL0 USBPAD MEM_HZ_CONSPUCR_L SPUCR_H 15 12 11 10 987 6 5 4 3 210保留保留DCLK0CMP DCLK0DIV 保留保留 DCLK0SelCK DCLK0EN(2)DCLKCON-D时钟控制寄存器时钟控制寄存器31 28 27 26 25 24 23 22 21 20 19 181716保

129、留保留DCLK1CMP DCLK1DIV 保留保留 DCLK1SEL DCLK1ENDCLK1(0)CMP-DCLK1(0)低电平时间所占的比例数低电平时间所占的比例数。设该位值为设该位值为m,m DCLK1(0)DIV。则低、高电平持续时间的源周期数分别为:则低、高电平持续时间的源周期数分别为:m+1、DCLK1(0)DIV-m DCLK1(0)DIV-DCLK1(0)分频值分频值 DCLK1(0) frequency = source clock / ( DCLK1(0)DIV + 1 )15 12 11 10 987 6 5 4 3 210保留保留DCLK0CMP DCLK0DIV 保留

130、保留 DCLK0SelCK DCLK0EN(2)DCLKCON-D时钟控制寄存器(续)时钟控制寄存器(续)31 28 27 26 25 24 23 22 21 20 19 181716保留保留DCLK1CMP DCLK1DIV 保留保留 DCLK1SEL DCLK1ENDCLK1(0)SelCK-DCLK1(0) source clock 选择选择0 : 源时钟选择源时钟选择PCLK1:源时钟选择:源时钟选择UCLK ( USB )DCLK1(0)EN-DCLK1(0) Enable0:禁止:禁止1:允许:允许主要设置各个外中断源的触发方式、滤波主要设置各个外中断源的触发方式、滤波10、外中断

131、控制寄存器、外中断控制寄存器Register Address R/W Description Reset Value EXTINT0 0x56000088 R/W 外中断触发方式寄存器外中断触发方式寄存器00x0 EXTINT1 0x5600008C R/W 外中断触发方式寄存器外中断触发方式寄存器10x0 EXTINT2 0x56000090 R/W 外中断控制寄存器外中断控制寄存器20x0EINT07-中断请求信号触发方式选择中断请求信号触发方式选择000:低电平触发:低电平触发001:高电平触发:高电平触发01x:下降沿触发:下降沿触发10x:上升沿触发:上升沿触发11x:双边沿触发:双

132、边沿触发第第3、7、11、15、19、23、27、31位位-保留保留15 14 13 12 11 109876543210XEINT3XEINT2XEINT1XEINT0(1)EXTINT0-外中断触发方式控制寄存器外中断触发方式控制寄存器031 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16XEINT7XEINT6XEINT5XEINT4EINT815-中断请求信号触发方式选择中断请求信号触发方式选择000:低电平触发:低电平触发001:高电平触发:高电平触发01x:下降沿触发:下降沿触发10x:上升沿触发:上升沿触发11x:双边沿触发:双边沿触发第

133、第3、7、11、15、19、23、27、31位位-保留保留15 14 13 12 11 109876543210XEINT11XEINT10XEINT9XEINT8(2)EXTINT1-外中断触发方式控制寄存器外中断触发方式控制寄存器131 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16XEINT15XEINT14XEINT13XEINT12EINT1623-外中断请求信号触发方式选择外中断请求信号触发方式选择000:低电平触发:低电平触发001:高电平触发:高电平触发01x:下降沿触发:下降沿触发10x:上升沿触发:上升沿触发11x:双边沿触发:双边

134、沿触发第第3、7、11、15、19、23、27、31位位-为为FILTEN各引脚滤波控制位各引脚滤波控制位0:禁止滤波:禁止滤波1:使能滤波:使能滤波15 14 13 12 11 109876543210F19EINT19F18EINT18F17EINT17F16EINT16(3)EXTINT2-外中断控制寄存器外中断控制寄存器231 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16F23EINT23F22EINT22F21EINT21F20EINT20主要设置各个外中断源的滤波器设置主要设置各个外中断源的滤波器设置11、外中断滤波控制寄存器、外中断滤波

135、控制寄存器Register Address R/W Description Reset Value EINTFLT0 0x56000094 R/W 保留保留- EINTFLT1 0x56000098 R/W 保留保留- EINTFLT2 0x5600009C R/W 外中断滤波控制寄存器外中断滤波控制寄存器20x0EINTFLT3 0x560000A0 R/W 外中断滤波控制寄存器外中断滤波控制寄存器30x0FLTCLK1619-外中断外中断1619滤波器时钟选择滤波器时钟选择0:PCLK1:外部:外部/振荡时钟(由振荡时钟(由OM引脚选择)引脚选择)EINTFLT1619-外中断外中断161

136、9滤波器宽度滤波器宽度(频带宽度)(频带宽度)15148760FLTCLK17EINTFLT17FLTCLK16EINTFLT16(1)EINTFLT2-外中断滤波控制寄存器外中断滤波控制寄存器2313024232216FLTCLK19EINTFLT19FLTCLK18EINTFLT18FLTCLK2023-外中断外中断2023滤波器时钟选择滤波器时钟选择0:PCLK1:外部:外部/振荡时钟(由振荡时钟(由OM引脚选择)引脚选择)EINTFLT2023-外中断外中断2023滤波器宽度滤波器宽度(频带宽度)(频带宽度)15148760FLTCLK21EINTFLT21FLTCLK20EINTFL

137、T20(2)EINTFLT3-外中断滤波控制寄存器外中断滤波控制寄存器3313024232216FLTCLK23EINTFLT23FLTCLK22EINTFLT2212、外中断屏蔽、标志寄存器、外中断屏蔽、标志寄存器Register Address R/W Description Reset Value EINTMAK 0x560000A4 R/W 外中断屏蔽寄存器外中断屏蔽寄存器0x00FFFFF0 EINTPEND 0x560000A8 R/W 外中断标志寄存器外中断标志寄存器0x0外中断屏蔽寄存器外中断屏蔽寄存器位号位号含含 义义位号位号含含 义义位号位号含含 义义23EINT2315E

138、INT157EINT722EINT2214EINT146EINT621EINT2113EINT135EINT520EINT2012EINT124EINT419EINT1911EINT113保留保留18EINT1810EINT102保留保留17EINT179EINT91保留保留16EINT168EINT80保留保留各位:各位:0:允许中断:允许中断1:禁止中断:禁止中断注意:注意: EINT0- EINT3不能在此被屏蔽,在不能在此被屏蔽,在SRCPND中屏蔽。中屏蔽。外中断标志寄存器外中断标志寄存器位号位号含含 义义位号位号含含 义义位号位号含含 义义23EINT2315EINT157EINT

139、722EINT2214EINT146EINT621EINT2113EINT135EINT520EINT2012EINT124EINT419EINT1911EINT113保留保留18EINT1810EINT102保留保留17EINT179EINT91保留保留16EINT168EINT80保留保留各位:各位:0:无中断请求:无中断请求1:有中断请求:有中断请求注意:对某位写注意:对某位写1,则清除相应标志,即清为,则清除相应标志,即清为0.GSTATUS3、4:复位时被清复位时被清0,其它情况下其数据不变。,其它情况下其数据不变。用户可以用于保存数据。用户可以用于保存数据。13、外中断状态寄存器、

140、外中断状态寄存器Register Address R/W Description Reset Value GSTATUS0 0x560000AC R外部引脚状态寄存器外部引脚状态寄存器不确定不确定 GSTATUS1 0x560000B0 R芯片芯片ID(标识标识)寄存器寄存器0x32410000GSTATUS2 0x560000B4 R/W复位状态寄存器复位状态寄存器0x1GSTATUS3 0x560000B8 R/W信息保存寄存器信息保存寄存器0x0GSTATUS4 0x560000C0 R/W信息保存寄存器信息保存寄存器0x0nWEIT-引脚引脚nWEIT状态状态nCON-引脚引脚nCON

141、状态状态RnB-引脚引脚R/nB状态状态nBATT_FLT-引脚引脚nBATT_FLT状态状态注意:各位的数值注意:各位的数值0、1,随着对应引脚变化。,随着对应引脚变化。3143210保保 留留nWEITnCONRnBnBATT_FLT(1)GSTATUS0-外部引脚状态寄存器外部引脚状态寄存器WDTRST-上电复位控制状态上电复位控制状态1:出现了上电复位:出现了上电复位对该位写,则将该位清对该位写,则将该位清0OFFRST-掉电模式复位状态。掉电模式复位状态。1:系统出现了从掉电模式唤醒复位:系统出现了从掉电模式唤醒复位对该位写,则将该位清对该位写,则将该位清0PWRST-看门狗复位状态

142、看门狗复位状态1:系统出现了看门狗定时器复位:系统出现了看门狗定时器复位对该位写,则将该位清对该位写,则将该位清0313210保保 留留WDTRSTOFFRSTPWRST(2)GSTATUS2-复位状态寄存器复位状态寄存器第第13次到此次到此外中断举例外中断举例static void _irq Eint0Int(void) ClearPending(BIT_EINT0); Uart_Printf(EINT0 interrupt is occurred.n);static void _irq Eint1Int(void) ClearPending(BIT_EINT1); Uart_Printf(

143、EINT1 interrupt is occurred.n);void Test_Eint(void) int i; int extintMode;/选择外中断触发方式变量选择外中断触发方式变量 Uart_Printf(External Interrupt Testn); Uart_Printf(1.L-LEVEL 2.H-LEVEL 3.F-EDGE 4.R-EDGE 5.B-EDGEn); Uart_Printf(Select the external interrupt type.n); extintMode=Uart_Getch(); /extintMode=3; rGPFCON =

144、(rGPFCON & 0xfffa)|(13)|(11);/ 设置引脚配置,设置引脚配置,F0、F1配置为配置为EINT0/1 switch(extintMode) case 1: rEXTINT0 = (rEXTINT0 & (74) | (0x70) | 0x04 | 0x00; /EINT0/1=low level triggered break; case 2: rEXTINT0 = (rEXTINT0 & (74) | (0x70) | 0x14 | 0x10; /EINT0/1=high level triggered break; case 3: rEXTINT0 = (rEXT

145、INT0 & (74) | (0x70) | 0x24 | 0x20; /EINT0/1=falling edge triggeredbreak; case 4: rEXTINT0 = (rEXTINT0 & (74) | (0x70) | 0x44 | 0x40; /EINT0/1=rising edge triggered break; case 5: rEXTINT0 = (rEXTINT0 & (74) | (0x70) | 0x64 | 0x60; /EINT0/1=both edge triggered break; default: break; Uart_Printf(“Pre

146、ss the EINT0/1 buttons or Press any key to exit.n”);/设置中断向量设置中断向量 pISR_EINT0=(U32)Eint0Int;/将中断处理程序的开始将中断处理程序的开始 pISR_EINT1=(U32)Eint1Int;/地址送到中断向量表地址送到中断向量表 rEINTPEND = 0xffffff; /清除清除EINTPND需要向其中写入数需要向其中写入数 据。因此这句代码的含义是清除据。因此这句代码的含义是清除EINTPND。 rSRCPND = BIT_EINT0|BIT_EINT1; /to clear the previous

147、pending states rINTPND = BIT_EINT0|BIT_EINT1; rINTMSK=(BIT_EINT0|BIT_EINT1); Uart_Getch(); rEINTMASK=0xffffff; rINTMSK=BIT_ALLMSK;( void Test_Eint(void)函数结束函数结束)注释:注释:#define BIT_ALLMSK (0xffffffff)4.7 定时器定时器主要内容主要内容概述概述结构结构寄存器寄存器应用举例应用举例一、概一、概 述述1、S3C2410X定时器的主要特性定时器的主要特性5个个16位定时器;位定时器;2个个8位预分频器和位预

148、分频器和2个个4位分频器;位分频器;可编程可编程PWM输出占空比;输出占空比;具有初值自动重装连续输出模式和单脉冲输出模式;具有初值自动重装连续输出模式和单脉冲输出模式;具有死区生成器。具有死区生成器。S3C2410有有5个个16位的定时器位的定时器,定时器,定时器03具有具有PWM(脉宽调制)功能。定时器(脉宽调制)功能。定时器4是一个内部定时器,没有输出是一个内部定时器,没有输出引脚,供内部使用。定时器引脚,供内部使用。定时器0有死区产生器,通常用于大电有死区产生器,通常用于大电流设备控制。流设备控制。有有2个个8位预分频器和位预分频器和2个个4位分频器位分频器。定时器。定时器0 和定时器

149、和定时器1 分享同一个分享同一个8 位的预分频器和分频器,定时器位的预分频器和分频器,定时器2、3、4 分分享另一个预分频器和分频器,分频器有享另一个预分频器和分频器,分频器有1/2、1/4、1/8、1/16这这4种分频值。定时器从分频器接收自己的时钟信号,时钟种分频值。定时器从分频器接收自己的时钟信号,时钟分频器从相应的预分频器接收时钟信号。分频器从相应的预分频器接收时钟信号。2、 PWM(脉宽调制)概念(脉宽调制)概念 PWM(脉宽调制):(脉宽调制):就是只对一方波序列信号的占空就是只对一方波序列信号的占空比按照要求进行调制,而不改变方波信号的其它参数,即比按照要求进行调制,而不改变方波

150、信号的其它参数,即不改变幅度和周期,因此脉宽调制信号的产生和传输,都不改变幅度和周期,因此脉宽调制信号的产生和传输,都是数字式的。是数字式的。用脉宽调制技术可以实现模拟信号:用脉宽调制技术可以实现模拟信号:如果调制信号的如果调制信号的频率远远大于信号接受者的分辨率,则接收者获得的是信频率远远大于信号接受者的分辨率,则接收者获得的是信号的平均效果,不能感知数字信号的号的平均效果,不能感知数字信号的0和和1,其信号大小的,其信号大小的平均值与信号的占空比有关,信号的占空比越大,平均信平均值与信号的占空比有关,信号的占空比越大,平均信号越强,其平均值与占空比成正比。只要带宽足够(频率号越强,其平均值

151、与占空比成正比。只要带宽足够(频率足够高或周期足够短),任何模拟信号都可以使用足够高或周期足够短),任何模拟信号都可以使用PWM 来实现。来实现。 PWM技术的应用:技术的应用:借助于微处理器,使用脉宽调制方借助于微处理器,使用脉宽调制方法实现模拟信号是一种非常有效的技术,广泛应用在从测法实现模拟信号是一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。量、通信到功率控制与变换的许多领域中。 二、结构与工作原理二、结构与工作原理1、定时器结构、定时器结构(1)时钟控)时钟控制:制:系统为每个系统为每个定时器设置有:定时器设置有: 预分频器、分频预分频器、分频器。器。(2)定

152、时器)定时器组成(组成(5部分):部分):减法计数器、减法计数器、初值寄存器、比初值寄存器、比较寄存器、观察较寄存器、观察寄存器、控制逻寄存器、控制逻辑等部分构成。辑等部分构成。定时器结构图定时器结构图预分频器预分频器8位位分频器分频器1/21/41/81/16TCLK0/1计数器计数器观观察察寄寄存存器器比较寄存器比较寄存器PCLK五五选选一一开开关关初初值值寄寄存存器器控控制制逻逻辑辑TOUT中断中断2、工作原理、工作原理(1)定时器工作过程)定时器工作过程装入初值、启动计数,计数结束产生中断请求,并且可装入初值、启动计数,计数结束产生中断请求,并且可以重装初值连续计数。如下图所示。以重装

153、初值连续计数。如下图所示。(2)PWM输出输出寄存器寄存器TCMPB的作用:当计数器的作用:当计数器TCNT中的值减到与中的值减到与TCMPB的值相同时,的值相同时,TOUT的输出值取反。的输出值取反。改变改变TCMPB的的值,便改变了输出方波的占空比值,便改变了输出方波的占空比。TOUT的输出可以设置为反相输出,如下图所示。的输出可以设置为反相输出,如下图所示。正向输出正向输出正向输出正向输出反相输出反相输出周期开始周期开始(3)死区产生器)死区产生器死区的概念:死区的概念:是一小段时间间隔,在这个时间间隔内,是一小段时间间隔,在这个时间间隔内,禁止两个开关同时处于开启状态。死区是在功率设备

154、控制中禁止两个开关同时处于开启状态。死区是在功率设备控制中常采用的一种技术,防止两个开关同时打开起反作用。常采用的一种技术,防止两个开关同时打开起反作用。S3C2410的的timer0具有死区发生器功能,可用于控制大具有死区发生器功能,可用于控制大功率设备。功率设备。死区发生器开启前后输出波形对比死区发生器开启前后输出波形对比(4)DMA请求模式请求模式S3C2410中定时器的中定时器的DMA功能:功能:系统中的系统中的5个定时器都个定时器都有有DMA请求功能,但是在同一时刻只能设置一个使用请求功能,但是在同一时刻只能设置一个使用DMA功能,通过设置其功能,通过设置其DMA模式位来实现。模式位

155、来实现。 DMA请求过程:请求过程:定时器可以在任意时间产生定时器可以在任意时间产生DMA请请求,并且保持求,并且保持DMA请求信号(请求信号(nDMA_REQ)为低直到定)为低直到定时器收到时器收到ACK信号。当定时器收到信号。当定时器收到ACK信号时,它使请求信号时,它使请求信号变得无效。信号变得无效。DMA请求与中断的关系:请求与中断的关系:如果一个定时器被配置为如果一个定时器被配置为DMA模式,该定时器不会产生中断请求了。其他的定时器模式,该定时器不会产生中断请求了。其他的定时器会正常的产生中断。会正常的产生中断。 3、计数时钟和输出计算、计数时钟和输出计算1)定时器输入时钟频率)定时

156、器输入时钟频率f Tclk (即计数时钟频率)(即计数时钟频率) :f Tclk=f pclk(Prescaler+1) 分频值分频值式中:式中:Prescaler,预分频值,预分频值,0-255;分频值为;分频值为1/2、1/4、1/8、1/16。 2)PWM输出时钟频率输出时钟频率 :PWM输出时钟频率输出时钟频率= f Tclk TCNTBn3)PWM输出信号占空比输出信号占空比(即高电平持续时间所占信号周期(即高电平持续时间所占信号周期的比例)的比例):PWM输出信号占空比输出信号占空比 = TCMPBn TCNTBn定时器最大、最小输出周期定时器最大、最小输出周期设设PCLK的频率为

157、的频率为50MHz,经过预分频和分频器后,送,经过预分频和分频器后,送给定时器的可能计数时钟频率由表给定时器的可能计数时钟频率由表4-7-1给出。给出。 表表4-7-1 定时器最大、最小输出周期定时器最大、最小输出周期分频值分频值最小输出周期最小输出周期( (预分频器预分频器=0=0、TCNTBn=1)TCNTBn=1)最大输出周期最大输出周期( (预分频器预分频器=255=255、TCNTBn=65535)TCNTBn=65535)最小输出周期最小输出周期( (预分频器预分频器=0=0、TCNTBn=65535)TCNTBn=65535)最小输出周期最小输出周期( (预分频器预分频器=0=0

158、、TCNTBn=255)TCNTBn=255)1/225.00MHz(0.04s)0.6710s381Hz976561/412.50MHz(0.08s)1.3421s191Hz488281/86.250MHz(0.16s)2.6843s95Hz244141/163.125MHz(0.32s)5.3686s48Hz12207三、定时器专用寄存器三、定时器专用寄存器共有共有6种、种、17个寄存器个寄存器TCNTBn-Timern计数初值寄存器(计数缓冲寄存器)。计数初值寄存器(计数缓冲寄存器)。16位位TCMPBn-Timern比较寄存器(比较缓比较寄存器(比较缓冲寄存器冲寄存器)。)。16位位T

159、CNTOn-Timern计数读出寄存器。计数读出寄存器。16位位Register Address R/W Description Reset Value TCFG00x51000000 R/W 配置寄存器配置寄存器 00x00000000 TCFG10x51000004 R/W 配置寄存器配置寄存器 10x00000000 TCON 0x51000008 R/W 控制寄存器控制寄存器0x00000000TCNTBn0x510000xx R/W 计数初值寄存器计数初值寄存器(5个个)0x0000TCMPBn0x510000xxR/W比较寄存器比较寄存器(4个个)0x0000TCNTOn0x510

160、000xxR观察寄存器观察寄存器(5个个)0x0000Dead zone length-死区宽度设置位死区宽度设置位其值其值N为:为: 0255,以,以timer0的定时时间为单位的定时时间为单位死区宽度为:(死区宽度为:(N+1)timer0的定时时间的定时时间Prescaler1-timer2、3、4的预分频值的预分频值其值其值N为:为: 0255输出频率为:输出频率为:PCLK (N+1)Prescaler0- timer0、1的预分频值的预分频值其值其值N为:为: 0255输出频率为:输出频率为:PCLK (N+1)1、TCFG0-预分频器配置寄存器预分频器配置寄存器3124 2316

161、 158 70保留(为保留(为0)Dead zone lengthPrescaler1Prescaler02、TCFG1-DMA模式与分频选择寄存器模式与分频选择寄存器DMA mode-DMA通道选择设置位通道选择设置位0000:不使用:不使用DMA方式,所有通道都用中断方式方式,所有通道都用中断方式0001:选择:选择timer00010:选择选择timer10011:选择:选择timer20100:选择选择timer30101:选择:选择timer4011X:保留保留MUX4 MUX0-timer4timer0分频值选择分频值选择0000:1/20001:1/40010:1/8 0011:

162、1/1601XX:选择外部:选择外部TCLK0、1(对(对timer0、1是选是选TCLK0,对,对timer4、3、2是选是选TCLK1)31 2423 20 1916 1512 1187 43 0保留(为保留(为0) DMA mode MUX4 MUX3 MUX2 MUX1 MUX0TL4TL0-计数初值自动重装控制位计数初值自动重装控制位 0:单次计数:单次计数1:计数器值减到:计数器值减到0时,自动重新装入初值连续计数。时,自动重新装入初值连续计数。TUP4TUP0-计数初值手动装载控制位。计数初值手动装载控制位。0:不操作:不操作1:立即将:立即将TCNTBn中的计中的计数初值装载到

163、计数寄存器数初值装载到计数寄存器TCNTn中。中。说明:说明:如果没有执行手动装载初值,则计数器启动时如果没有执行手动装载初值,则计数器启动时无初值。无初值。121110987543210TR2 TL1 TO1 TUP1 TR1 保留保留 DZE TL0 TO0 TUP0 TR03、TCON-定时器控制寄存器定时器控制寄存器312322212019181716151413保留保留TL4 TUP4 TR4 TL3 TO3 TUP3 TR3 TL2 TO2 TUP2TR4TR0-TIMER4TIMER0运行控制位运行控制位0:停止:停止1:启动对应的:启动对应的TIMERTO3TO0- TIMER

164、4TIMER0输出控制位输出控制位0:正相输出:正相输出1:反相输出:反相输出DZE-TIMER0死区操作控制位死区操作控制位0:禁止死区操作:禁止死区操作1:使能死区操作:使能死区操作121110987543210TR2 TL1 TO1 TUP1 TR1 保留保留 DZE TL0 TO0 TUP0 TR03、TCON-定时器控制寄存器(续)定时器控制寄存器(续)312322212019181716151413保留保留TL4 TUP4 TR4 TL3 TO3 TUP3 TR3 TL2 TO2 TUP2四、定时器的使用四、定时器的使用1、定时器初始化方法、定时器初始化方法(1)写)写TCFG0,

165、设置计数时钟的预分频值和,设置计数时钟的预分频值和Timer0死区宽度;死区宽度;(2)写)写TCFG1,选择各个定时器的分频值和,选择各个定时器的分频值和DMA、中断服务;中断服务;(3)对)对TCNTBn和和TCMPBn分别写入计数初值和比较分别写入计数初值和比较初值;初值;(4)写)写TCON,设置计数初值自动重装、手动装载初,设置计数初值自动重装、手动装载初值、设置反相输出;值、设置反相输出;(5)再写)再写TCON,清除手动装载初值位、设置正相输,清除手动装载初值位、设置正相输出、启动计数。出、启动计数。2、定时器停止运行方法、定时器停止运行方法写写TCON,禁止计数初值自动重装。(

166、一般不使用运行,禁止计数初值自动重装。(一般不使用运行控制位停止运行)控制位停止运行)3、定时器操作例子、定时器操作例子(1)按照前面初始化定时器;设置)按照前面初始化定时器;设置TCNTBn=160(50+110),TCMPBn=110;手动装入初值后,;手动装入初值后,又重设又重设TCNTBn=80, TCMPBn=40;(2)启动定时器)启动定时器,按第一个初值计数;按第一个初值计数;(3)与第一个比较值相同,输出取反;)与第一个比较值相同,输出取反;(4)第一次计数结束,自动重装初值)第一次计数结束,自动重装初值80、40;(5)在第一次中断处理程序又重设)在第一次中断处理程序又重设T

167、CMPBn=60;(8)在第二次中断处理程序禁止自动重装初值,准备)在第二次中断处理程序禁止自动重装初值,准备结束计数;结束计数;(10)第三次计数结束,不再计数。)第三次计数结束,不再计数。50 110 40 40 20 60 1 2 3 4 6 7 9 105 8TOUTn定时器应用举例定时器应用举例int variable0,variable1,variable2,variable3,variable4;void _irq Timer0Done(void) rSRCPND = BIT_TIMER0; /Clear pending bit rINTPND = BIT_TIMER0;/Cle

168、ar serve bit variable0+; void _irq Timer1Done(void) rSRCPND = BIT_TIMER1; /Clear pending bit rINTPND = BIT_TIMER1; variable1+; rINTPND; /Prevent an double interrupt pendingvoid Test_TimerInt(void) variable0 = 0;variable1 = 0;variable2 = 0; variable3 = 0;variable4 = 0; rINTMSK = (BIT_TIMER4 | BIT_TIM

169、ER3 | BIT_TIMER2 | BIT_TIMER1 | BIT_TIMER0);/将各个中断向量写入中断向量表中将各个中断向量写入中断向量表中 pISR_TIMER0 = (int)Timer0Done; pISR_TIMER1 = (int)Timer1Done; pISR_TIMER2 = (int)Timer2Done; pISR_TIMER3 = (int)Timer3Done; pISR_TIMER4 = (int)Timer4Done; Uart_Printf(n Timer 0,1,2,3,4 Interrupt Test nn); rTCFG0 = rTCFG0 & (

170、0xffffff) | 0x000f0f; /Dead zone=0,/Prescaler1=15(0x0f),Prescaler0=15(0x0f) rTCFG1 =rTCFG1 & (0xffffff) | 0x001233; /All interrupt,/Mux4=1/2,Mux3=1/4,Mux2=1/8,Mux1=1/16,Mux0=1/16 /Timer input clock frequency = PCLK/(prescaler value+1)/(divider value) rTCNTB0 = 0xffff; / (1/(50MHz/16/16) * 0xffff (65

171、535) = 0.334s rTCNTB1 = 0xffff; / (1/(50MHz/16/16) * 0xffff (65535) = 0.334s rTCNTB2 = 0xffff; / (1/(50MHz/16/8 ) * 0xffff (65535) = 0.163s rTCNTB3 = 0xffff; / (1/(50MHz/16/4 ) * 0xffff (65535) = 0.078s rTCNTB4 = 0xffff; / (1/(50MHz/16/2 ) * 0xffff (65535) = 0.039s rTCON = rTCON & (0xffffff) | 0x6aa

172、a0a; /Auto reload, Inverter off, Manual update, Dead zone disable, Stop rTCON = rTCON & (0xffffff) | 0x599901; /Auto reload(T0=One-shot),Inverter off,No operation,Dead zone disable,Start while(variable0 = 0); Delay(1); /To compensate timer error( OKn);elseUart_Printf(Timer 0,1,2,3,4 Interrupt Test -

173、 Fail.n); Uart_Printf(Press any key to exit Timer interrupt testn); while(!Uart_GetKey(); rTCON = 0x0; /One-shot, Inverter off, No operation, Dead zone disable, Stop Uart_Printf(Timers interrupt number is as below:n); Uart_Printf(Timer0 - %d ,Timer1 - %d ,Timer2 - %d ,Timer3 - %d ,Timer4 - %d n, var

174、iable0,variable1,variable2,variable3,variable4); rINTMSK |= (BIT_TIMER4 | BIT_TIMER3 | BIT_TIMER2 | BIT_TIMER1 | BIT_TIMER0);#define BIT_TIMER0 (0x110)#define BIT_TIMER1 (0x111)#define BIT_TIMER2 (0x112)#define BIT_TIMER3 (0x113)#define BIT_TIMER4 (0x114)4.8 UART通用异步串行接口通用异步串行接口主要内容主要内容概述概述结构结构寄存器寄存

175、器应用举例应用举例一、概一、概 述述S3C2410 的的UART(通用异步串行口)(通用异步串行口)有三个独立的异有三个独立的异步串行步串行I/O 端口端口:UART0、UART1、UART2,每个串口都,每个串口都可以在中断和可以在中断和DMA 两种模式下进行收发。两种模式下进行收发。UART支持的最支持的最高波特率达高波特率达230.4kbps。每个每个UART 包含:包含:波特率发生器、接收器、发送器和波特率发生器、接收器、发送器和控制单元。波特率发生器以控制单元。波特率发生器以PCLK或或UCLK为时钟源。发送为时钟源。发送器和接收器各包含器和接收器各包含1个个16 字节的字节的FIF

176、O 寄存器和移位寄存器。寄存器和移位寄存器。 S3C2410 的的3个个UART都有都有遵从遵从1.0规范的红外传输功能,规范的红外传输功能, UART0、UART1有完整的握手信号,可以连接有完整的握手信号,可以连接MODEM。当发送数据的时候,数据先写到当发送数据的时候,数据先写到FIFO 然后拷贝到发送然后拷贝到发送移位寄存器,然后从数据输出端口(移位寄存器,然后从数据输出端口(TxDn)依次被移位输)依次被移位输出。被接收的数据也同样从接收端口(出。被接收的数据也同样从接收端口(RxDn)移位输入到)移位输入到移位寄存器,然后拷贝到移位寄存器,然后拷贝到FIFO 中。中。二、串行口结构

177、和工作原理二、串行口结构和工作原理1、串行口结构、串行口结构主要有主要有4部分构成:部分构成:接收器、发接收器、发送器、波特送器、波特率发生器、率发生器、控制逻辑等。控制逻辑等。2、工作原理、工作原理(1)串行口的操作串行口的操作数据帧格式:数据帧格式:可编程,包含可编程,包含1个开始位、个开始位、5 到到8 个数据个数据位、位、1个可选的奇偶校验位、个可选的奇偶校验位、1个或个或2个停止位,通过线路控个停止位,通过线路控制器(制器(ULCONn)来设置。)来设置。发送中止信号:迫使串口输出逻辑发送中止信号:迫使串口输出逻辑0 ,这种状态保持一,这种状态保持一个传输帧的时间长度。通常在一帧传输

178、数据完整地传输完个传输帧的时间长度。通常在一帧传输数据完整地传输完之后,再通过这个全之后,再通过这个全0 状态将中止信号发送给对方。中止信状态将中止信号发送给对方。中止信号发送之后,传送数据连续放到号发送之后,传送数据连续放到FIFO 中(在不使用中(在不使用FIFO 模式下,将被放到输出保持寄存器)。模式下,将被放到输出保持寄存器)。接收器具有错误检测功能:可以检测出溢出错误,奇接收器具有错误检测功能:可以检测出溢出错误,奇偶校验错误,帧错误和中止状况,每种情况下都会将一个偶校验错误,帧错误和中止状况,每种情况下都会将一个错误标志在接收状态寄存器置位。错误标志在接收状态寄存器置位。 (2)串

179、行口的波特率发生器)串行口的波特率发生器每个每个UART 的波特率发生器为传输提供了串行移位时的波特率发生器为传输提供了串行移位时钟。波特率产生器的时钟源可以从钟。波特率产生器的时钟源可以从S3C2410 的内部系统时的内部系统时钟钟PCLK或或UCLK 中来选择。波特率数值决定于波特率除中来选择。波特率数值决定于波特率除数寄存器(数寄存器(UBRDIVn)的值,波特率数与)的值,波特率数与UBRDIVn 的关的关系为:系为:UBRDIVn=(int)(CLK/(bps*16) 1 其中其中CLK为所选择的时钟频率,为所选择的时钟频率,bps为波特率。为波特率。例如,如果波特率为例如,如果波特

180、率为115200bps 且且PCLK 或或UCLK 为为40MHz,则则UBRDIVn 为:为:UBRDIVn =(int)(40000000)(115200*16)-1 = (int)(21.7)-1 = 21-1 = 20 (3)串行口波特率误差极限)串行口波特率误差极限在应用中,实际波特率往往与理想波特率有差别,其在应用中,实际波特率往往与理想波特率有差别,其误差不能超过一定的范围,误差不能超过一定的范围,其极限为:其极限为:UART传输传输10bit数数据的时间误差应该小于据的时间误差应该小于1.87(3/160)。)。t_true = (UBRDIVn + 1)1610 / PCLK

181、实际的传输实际的传输10bit所需时间所需时间 t_ideal = 10 / baud-rate理想情况下传输理想情况下传输10位需要的时间位需要的时间UART error( ( t_true t_ideal ) / t_ideal )100% (4)串行口的自动流控制功能)串行口的自动流控制功能UART0和和UART1不仅有完整的握手信号,而且有自动不仅有完整的握手信号,而且有自动流控制功能,在寄存器流控制功能,在寄存器UMCONn中设置实现。自动流控制中设置实现。自动流控制是利用信号是利用信号nRTS、nCTS来实现的。在接收数据时,只要来实现的。在接收数据时,只要接收接收FIFO中有两个空字节就会使中有两个空字节就会使nRTS有效,使对方发送有效,使对方发送数据;在发送数据时,只要数据;在发送数据时,只要nCTS有效,就会发送数据。其有效,就会发送数据。其实现过程如下图所示。实现过程如下图所示。nRTS:请求对方发送:请求对方发送nCTS:清除请求发送:清除请求发送注意:这种自动流控制应用于对方也是注意:这种自动流控制应用于对方也是UART设备,不设备,不能应用于能应用于MODEM设备。设备。结束语结束语谢谢大家聆听!谢谢大家聆听!179

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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