ARMS3C2410X系统结构课件

上传人:re****.1 文档编号:567307353 上传时间:2024-07-19 格式:PPT 页数:415 大小:2.81MB
返回 下载 相关 举报
ARMS3C2410X系统结构课件_第1页
第1页 / 共415页
ARMS3C2410X系统结构课件_第2页
第2页 / 共415页
ARMS3C2410X系统结构课件_第3页
第3页 / 共415页
ARMS3C2410X系统结构课件_第4页
第4页 / 共415页
ARMS3C2410X系统结构课件_第5页
第5页 / 共415页
点击查看更多>>
资源描述

《ARMS3C2410X系统结构课件》由会员分享,可在线阅读,更多相关《ARMS3C2410X系统结构课件(415页珍藏版)》请在金锄头文库上搜索。

1、嵌入式系统讲义嵌入式系统讲义第第4章章 S3C2410X系统结构系统结构第第4章章 S3C2410X系统结构系统结构4.1 S3C2410X概述概述4.2 存储器配置存储器配置4.3 DMA4.4 ADC和触摸屏接口和触摸屏接口4.5 中断控制器中断控制器4.6 I/O端口端口4.7 PWM4.8 UART接口接口4.9 SPI接口接口4.10 IIC接口接口4.11 RTC4.12时钟和电源管理时钟和电源管理4.13看门狗看门狗4.14 其它接口其它接口主要内容主要内容4.14 其它接口其它接口1、 USB接口接口2、 LCD控制器控制器3、 SD接口接口4、 IIS接口接口4.1 S3C2

2、410X概述概述主要内容主要内容主要特性主要特性系统结构系统结构引脚信号引脚信号4.1 S3C2410X概述概述S3C2410X是韩国三星公司推出的是韩国三星公司推出的16/32位位RISC微控制器,其微控制器,其CPU采用的是采用的是ARM920T内核,加上内核,加上丰富的片内外设,为手持设备和其它应用,提供了丰富的片内外设,为手持设备和其它应用,提供了低价格、低功耗、高性能微控制器的解决方案。低价格、低功耗、高性能微控制器的解决方案。一、主要特性一、主要特性具有具有16KB指令指令Cache、 16KB数据数据Cache和存储器和存储器管理单元管理单元MMU。外部存储器控制器,可扩展外部存

3、储器控制器,可扩展8组,每组组,每组128MB,总,总容量达容量达1GB;支持从;支持从Nand flash存储器启动。存储器启动。55个中断源,可以设定个中断源,可以设定1个为快速中断,有个为快速中断,有24个外个外部中断,并且触发方式可以设定。部中断,并且触发方式可以设定。4通道的通道的DMA,并且有外部请求引脚。,并且有外部请求引脚。3个通道的个通道的UART,带有,带有16字节的字节的TX/RX FIFO,支,支持持IrDA1.0功能。功能。具有具有2通道的通道的SPI、1个通道的个通道的IIC串行总线接口和串行总线接口和1个通道的个通道的IIS音频总线接口。音频总线接口。有有2个个U

4、SB主机总线的端口,主机总线的端口,1个个USB设备总线的端设备总线的端口。口。有有4个具有个具有PWM功能的功能的16位定时器和位定时器和1个个16位内部位内部定时器。定时器。8通道的通道的10位位A/D转换器,最高速率可达转换器,最高速率可达500kB/s;提供有触摸屏接口。提供有触摸屏接口。具有具有117个通用个通用I/O口和口和24通道的外部中断源。通道的外部中断源。兼容兼容MMC的的SD卡接口。卡接口。具有电源管理功能,可以使系统以普通方式、慢速具有电源管理功能,可以使系统以普通方式、慢速方式、空闲方式和掉电方式工作。方式、空闲方式和掉电方式工作。看门狗定时器。看门狗定时器。具有日历

5、功能的具有日历功能的RTC。有有LCD控制器,支持控制器,支持4K色的色的STN和和256K色的色的TFT,配置有,配置有DMA通道。通道。具有具有PLL功能的时钟发生器,时钟频率高达功能的时钟发生器,时钟频率高达203MHz。双电源系统:双电源系统:1.8/2.0V内核供电,内核供电,3.3V存储器和存储器和I/O供电。供电。二、系统结构二、系统结构主要由两大部分主要由两大部分构成:构成:ARM920T内核内核片内外设。片内外设。1、ARM920T内核内核由三部分:由三部分:ARM9内核内核ARM9TDMI、32KB的的Cache、MMU。2、片内外设、片内外设分为高速外设和低速外设,分别用

6、分为高速外设和低速外设,分别用AHB总线和总线和APB总线。总线。三、引脚信号三、引脚信号S3C微控制器是微控制器是272-FBGA封装。封装。其信号可以分成其信号可以分成addr0-addr26、Data0-data31、GPA0-GPA22GPB10、GPC15、GPD15、GPE15、GPF7、GPG15、GPH10、EINT23、nGCS0nGCS7、AIN7、IIC、SPI、OM0-OM3等,大部分都是复用的等,大部分都是复用的4.2 S3C2410X的存储器的存储器主要内容主要内容存储器配置存储器配置存储器概述存储器概述控制寄存器控制寄存器Flash及控制器及控制器Flash控制器

7、概述控制器概述控制器主要特性控制器主要特性控制器的寄存器控制器的寄存器控制器的工作原理控制器的工作原理4.2 存储器配置存储器配置4.2.1 S3C2410X的存储器配置的存储器配置一、概一、概 述述S3C2410X的存储器管理器的存储器管理器提供访问外部存储器的所有提供访问外部存储器的所有控制信号:控制信号:27位地址信号、位地址信号、32位数据信号、位数据信号、8个片选信号、个片选信号、以及读以及读/写控制信号等。写控制信号等。S3C2410X的存储空间分成的存储空间分成8组组,最大容量是,最大容量是1GB,bank0-bank5为固定为固定128MB,bank6和和bank7的容量可编的

8、容量可编程改变,可以是程改变,可以是2、4、8、16、32、64、128MB,并且,并且bank7的开始地址与的开始地址与bank6的结束地址相连接,但是二者的的结束地址相连接,但是二者的容量必须相等。容量必须相等。bank0可以作为引导可以作为引导ROM,其数据线宽只能是,其数据线宽只能是16位和位和32位,复位时由位,复位时由OM0、OM1引脚确定;其它存储器的数据引脚确定;其它存储器的数据线宽可以是线宽可以是8位、位、16位和位和32位。位。S3C2410X的存储器格式,的存储器格式,可以编程设置为大端格式,可以编程设置为大端格式,也可以设置为小端格式。也可以设置为小端格式。二、存储器的

9、控制寄存器二、存储器的控制寄存器内存控制器为访问外部存储空间提供存储器控制信号,内存控制器为访问外部存储空间提供存储器控制信号, S3C2410X存储器控制器共有存储器控制器共有13个寄存器。个寄存器。寄存器寄存器地地 址址功功 能能操作操作复位值复位值BWSCON0x48000000总线宽度和等待控制总线宽度和等待控制读读/写写0x0BANKCON00x48000004BANK0控制控制读读/写写0x0700BANKCON10x48000008BANK1控制控制读读/写写0x0700BANKCON20x4800000CBANK2控制控制读读/写写0x0700BANKCON30x4800001

10、0BANK3控制控制读读/写写0x0700BANKCON40x48000014BANK4控制控制读读/写写0x0700BANKCON50x48000018BANK5控制控制读读/写写0x0700BANKCON60x4800001CBANK6控制控制读读/写写0x18008BANKCON70x48000020BANK7控制控制读读/写写0x18008REFRESH0x48000024SDRAM刷新控制刷新控制读读/写写0xAC0000BANKSIZE0x48000028可变的组大小设置可变的组大小设置读读/写写0x0MRSRB60x4800002CBANK6模式设置模式设置读读/写写xxxMRS

11、RB70x48000030BANK7模式设置模式设置读读/写写xxx1、总线宽度和等待控制寄存器总线宽度和等待控制寄存器BWSCON用于设定各存储块的数据宽度以及是否使能用于设定各存储块的数据宽度以及是否使能nwait3130 29 28 27 26 25 24 23 22 21 20 19 18 17 16ST7 WS7DW7ST6 WS6DW6ST5 WS5DW5ST4 WS4DW415 14 13 12 11 109876543210ST3 WS3DW3ST2 WS2DW2ST1 WS1DW1XDW0XSTn:控制存储器组:控制存储器组n的的UB/LB引脚输出信号引脚输出信号。1:使:使

12、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个个;01:1个;个;10:2个;个;11:4个时钟周期个时钟周期Tcos:设置:设置nOE有效前片选信号的建立时间有效前片选信号的建立时间00:0个个;01:1个;个;10:2个;个;11:4个时钟周

13、期个时钟周期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 24 23 22 21 20 19 18 17 16Tcoh:nOE无效后片选信号的保持时间无效后片选信号的保持时间00:0个个;01:1个;个;10:2个;个;11:4个时钟个时钟Tcah: n

14、GCSn无效后地址信号的保持时间无效后地址信号的保持时间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为通常模式。为通常模式。注:紫色为实验箱上的配置注:紫色为实验箱上的配置,其值为,其值为0x0700MT:设置存储器类型设置存储器类型00:ROM或者或者SRAM,3:0为为Tacp和和PMC;11:SDRAM, 3:0为为T

15、rcd和和SCAN; 01、10:保留:保留Trcd:由行地址信号切换到列地址信号的延时时钟数:由行地址信号切换到列地址信号的延时时钟数00:2个时钟;个时钟;01:3个时钟;个时钟;10:4个时钟个时钟 SCAN:列地址位数:列地址位数00:8位;位;01:9位;位;10:10位位 14 13 12 11 109876543210TacsTcosTaccTcohTcahTacp/TrcdPMC/SCAN3、BANK6/7-存储器组存储器组6/7控制寄存器控制寄存器3117 16 15保留保留MTREFEN:刷新控制:刷新控制。1:使能刷新;使能刷新;0:禁止刷新:禁止刷新TREFMD:刷新方

16、式:刷新方式。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。Refresh_count:刷新计数值:刷新计数值15 14 13 12 11 109876543210保保 留留Refresh_count4、REFRESH-刷新控制寄存器刷新控制寄存器3124

17、232221 20 19 18 17 16保保 留留REFEN TREFMDTrpTsrc保留保留Refresh_count:刷新计数器值:刷新计数器值计算公式:计算公式:刷新周期刷新周期=(211- Refresh_count+1)/HCLK例子:设刷新周期例子:设刷新周期=15.6s,HCLK=60MHz则则刷新计数器值刷新计数器值=211+1-6015.6=11131113=0x459=0b10001011001高高24位未用。位未用。BURST_EN:ARM突发操作控制突发操作控制0:禁止突发操作;:禁止突发操作;1:可突发操作:可突发操作SCKE_EN:SCKE使能控制使能控制SDR

18、AM省电模式省电模式0:关闭省电模式;:关闭省电模式;1:使能省电模式:使能省电模式SCLK_EN:SCLK省电控制省电控制,使其只在,使其只在SDRAM访问周期内访问周期内使能使能SCLK0:SCLK一直有效;一直有效;1:SCLK只在访问期间有效只在访问期间有效BK76MAP:控制:控制BANK6/7的大小及映射的大小及映射76543210BURST_ENXSCKE_EN SCLK_ENXBK76MAP5、BANKSIZE-BANK6/7组大小控制寄存器组大小控制寄存器BK76MAP:控制:控制BANK6/7的大小及映射的大小及映射100:2MB;101:4MB;110:8MB 111:1

19、6MB;000:32MB;001:64MB010:128MBWBL:突发写的长度:突发写的长度。0:固定长度;:固定长度;1:保留:保留TM:测试模式:测试模式。00:模式寄存器集;其它保留:模式寄存器集;其它保留CL:列地址反应时间:列地址反应时间000:1个时钟;个时钟;010:2个时钟;个时钟;011:3个时钟;其它保留个时钟;其它保留BT:猝发类型:猝发类型0:连续;:连续;1:保留:保留BL:猝发时间:猝发时间000:1个时钟;其它保留个时钟;其它保留6、MRSRB6/7-BANK6/7模式设置寄存器模式设置寄存器15 14 13 12 11 109876543210WBLTMCLB

20、TBL4.2.2 Nand Flash及其控制器及其控制器主要内容主要内容1、Nand Flash控制器概述控制器概述2、控制器主要特性、控制器主要特性3、控制器的寄存器、控制器的寄存器4、控制器的工作原理、控制器的工作原理4.2.2 Nand Flash及其控制器及其控制器Nor flash存储器:存储器:读速度高,而擦、写速度低,容量读速度高,而擦、写速度低,容量小,价格高。小,价格高。 Nand flash存储器:存储器:读速度不如读速度不如Nor flash,而擦、写速,而擦、写速度高,容量大,价格低。有取代磁盘的趋势。度高,容量大,价格低。有取代磁盘的趋势。因此,现在不少用户从因此,

21、现在不少用户从Nand flash启动和引导系统,而启动和引导系统,而在在SDRAM上执上执 行主程序代码。行主程序代码。一、一、Nand Flash控制器概述控制器概述S3C2410X微控制器从微控制器从Nand flash的引导功能:的引导功能:其内部其内部有一个叫做有一个叫做“起步石(起步石(Steppingstone)”的的 SRAM缓冲器缓冲器,系统系统 启动时,启动时,Nand flash存储器的前面存储器的前面4KByte字节将被自字节将被自动载入到动载入到起步石起步石中,然后系统自动执行这些载入的引导代中,然后系统自动执行这些载入的引导代码。引导代码。引导代 码执行完毕后,自动

22、跳转到码执行完毕后,自动跳转到SDRAM执行。执行。Nand flash操作的校验功能:操作的校验功能:使用使用S3C2410X内部硬件内部硬件ECC功能可以对功能可以对Nand flash的数据进行有效性的检测。的数据进行有效性的检测。 二、二、 Nand Flash控制器主要特性控制器主要特性 Nand Flash模式:模式:支持读支持读/擦擦/编程编程Nand flash存储器。存储器。 自动导入模式:自动导入模式:复位后,引导代码被送入复位后,引导代码被送入Steppingstone,传送后,引导代码在,传送后,引导代码在 Steppingstone中执行。中执行。 具有硬件具有硬件E

23、CC(纠错码)功能:(纠错码)功能:硬件产生纠错硬件产生纠错代码。代码。内部内部4KB的的SRAM缓冲器缓冲器Steppingstone,在,在Nand flash引导后可以作为其他用途使用。引导后可以作为其他用途使用。 Nand Flash控制器功能框图控制器功能框图主要由主要由6部分组成引脚信号:部分组成引脚信号:三、三、Nand Flash 控制器的寄存器控制器的寄存器寄存器寄存器地地 址址功功 能能操作操作复位值复位值NFCONF 0x4E000000Nand Flash配置配置读读/写写-NFCMD0x4E000004Nand Flash命令命令读读/写写-NFADDR 0x4E00

24、0008Nand Flash地址地址读读/写写-NFDATA 0x4E00000CNand Flash数据数据读读/写写-NFSTAT0x4E000010Nand Flash状态状态读读/写写-NFECC0x4E000014Nand Flash纠错纠错读读/写写-NFEN:NF控制器使能控制控制器使能控制0:禁止使用;:禁止使用;1:允许使用:允许使用IECC:初始化:初始化ECC编码编码/解码器控制位解码器控制位0:不初始化:不初始化ECC;1:初始化:初始化ECCNFCE:NF片选信号片选信号nFCE控制位持续时间设置控制位持续时间设置0: nFCE为低有效;为低有效;1: nFCE为高有

25、效为高有效TACLE:CLE/ALE持续时间设置值(持续时间设置值(0-7)持续时间持续时间 HCLK * (TACLS + 1)CLE/ALE :命令:命令/地址锁存允许地址锁存允许151413 121110 9876543210NFENXIECC NFCETACLEXTWRPH0XPWRPH10-000-0-01、NFCONF-Flash配置寄存器配置寄存器TWRPH0:写信号:写信号持续时间设置值持续时间设置值(07)持续时间持续时间 HCLK * (TWRPH01) TWRPH1:写信号无效后:写信号无效后CLE/ALE保保持时间设置值持时间设置值(07)持续时间持续时间 HCLK *

26、 (TWRPH11)15 14 13 12 11 109876543210保保 留留命令字命令字2、NFCMD-Flash命令寄存器命令寄存器高高24位未用,低位未用,低8位为读入或者写出的数据位为读入或者写出的数据15 14 13 12 11 109876543210保保 留留地址值地址值3、NFADDR-Flash地址寄存器地址寄存器15 14 13 12 11 109876543210保保 留留输入输入/ /输出数据输出数据4、NFDATA-Flash数据寄存器数据寄存器高高24位未用,低位未用,低8位为位为Flash存储器地址值存储器地址值RnB:Nand Flash存储器状态位存储器

27、状态位0:存储器忙;:存储器忙;1:存储器准备好:存储器准备好15 14 13 12 11 109876543210保保 留留RnB5、NFSTAT-Flash状态寄存器状态寄存器15 14 13 12 11 109876543210错误校正码错误校正码#1#1错误校正码错误校正码#0#06、NFECC-Flash错误校正码寄存器错误校正码寄存器31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16保保 留留错误校正码错误校正码#2#2四、四、Nand Flash 控制器的工作原理控制器的工作原理 1、自动导入启动代码步骤、自动导入启动代码步骤完成复位。

28、完成复位。 如果自动导入模式使能,如果自动导入模式使能,Nand flash存储器的前面存储器的前面4K字字节被自动拷贝到节被自动拷贝到Steppingstone 内部缓冲器中。内部缓冲器中。 Steppingstone被映射到被映射到nGCS0对应的对应的BANK0存储空间。存储空间。 CPU在在Steppingstone的的4-KB内部缓冲器中开始执行引内部缓冲器中开始执行引导代码。导代码。 注意:注意: 在自动导入模式下,不进行在自动导入模式下,不进行ECC检测。因此,检测。因此,Nand flash的前的前4KB应确保不能有位错误(一应确保不能有位错误(一 般般Nandflash厂家都

29、确保)。厂家都确保)。 2、Nand FLASH模式配置模式配置 通过通过NFCONF寄存器配置寄存器配置Nand flash;写写Nand flash命令到命令到NFCMD寄存器;寄存器;写写Nand flash地址到地址到NFADDR寄存器;寄存器;在读写数据时,通过在读写数据时,通过NFSTAT寄存器来获得寄存器来获得Nand flash的状态信息。应该在读操作前或写入的状态信息。应该在读操作前或写入 之之后检查后检查R/nB信号(准备好信号(准备好/忙信号)。忙信号)。 在读写操作后要查询校验错误代码,对错误进在读写操作后要查询校验错误代码,对错误进行纠正。行纠正。3、系统引导和、系统

30、引导和 Nand FLASH 配置配置 OM1:0 = 00b:使能使能Nand flash控制器自动导控制器自动导入模式;入模式; OM3:0为芯片引脚,设置引导模式、存储器为芯片引脚,设置引导模式、存储器bank0的数据宽度、时钟模式等。的数据宽度、时钟模式等。 OM1:0 = 01b、10b:bank0数据宽度为数据宽度为16位、位、32位位OM1:0=11b:测试模式:测试模式Nand flash的存储页面大小的存储页面大小应该为应该为512字节。字节。 NCON :Nand flash 寻址步骤数选择寻址步骤数选择 0:3步寻址;步寻址;1:4步寻址步寻址4、Nand Flash操作

31、的校验问题操作的校验问题S3C2410A在写在写/读操作时,每读操作时,每512字节数据自字节数据自动产生动产生3字节的字节的ECC奇偶代码奇偶代码(24位位)。 24位位 ECC 奇偶代码奇偶代码18位行奇偶位行奇偶 6位列奇偶位列奇偶ECC产生模块执行以下步骤:产生模块执行以下步骤: 当当MCU写数据到写数据到Nand时,时,ECC产生模块生成产生模块生成ECC代代码。码。 当当MCU从从Nand读数据时,读数据时,ECC产生模块生成产生模块生成ECC代代码同时用户程序将它与先前写入时产码同时用户程序将它与先前写入时产 生的生的ECC代码比较代码比较。 4.3 DMA控制器控制器主要内容主

32、要内容1、概述、概述2、工作原理、工作原理3、寄存器、寄存器一、概一、概 述述S3C2410X有有4 个通道的个通道的DMA 控制器,其位于控制器,其位于在系统总线和外设总线之间。在系统总线和外设总线之间。每个每个DMA 通道都能没有约束的实现系统总线或通道都能没有约束的实现系统总线或者外设总线之间的数据传输,即每个通道都能处理者外设总线之间的数据传输,即每个通道都能处理下面四种情况:下面四种情况:(1) 源器件和目的器件都在系统总线源器件和目的器件都在系统总线(2) 源器件在系统总线,目的器件在外设总线源器件在系统总线,目的器件在外设总线(3) 源器件在外设总线,目的器件在系统总线源器件在外

33、设总线,目的器件在系统总线(4) 源器件和目的器件都在外设总线源器件和目的器件都在外设总线DMA的主要优点是的主要优点是:可以不通过:可以不通过CPU的中断来的中断来实现数据的传输,实现数据的传输,DMA的运行可以通过软件或者通的运行可以通过软件或者通过外围设备的中断和请求来初始化。过外围设备的中断和请求来初始化。 二、二、DMA工作原理工作原理1、DMA的服务对象的服务对象每个每个DMA通道都有通道都有4个个DMA请求源,通过设置,可以从请求源,通过设置,可以从中挑选一个服务。每个通道的中挑选一个服务。每个通道的DMA 请求源如表请求源如表4-1所示。所示。 通道通道 源源请求源请求源0请求

34、源请求源1请求源请求源2请求源请求源3请求源请求源4通道通道0nXDREQ0UART0SDITimerUSB设备设备EP1通道通道1nXDREQ1UART1IIS/SDISPI0USB设备设备EP2通道通道2IISSDOIISSDISDITimerUSB设备设备EP3通道通道3UART2SDISPI1TimerUSB设备设备EP4表表4-1 各通道的各通道的DMA 请求源请求源2、DMA的工作过程的工作过程一般一般DMA的工作过程如下面所示的工作过程如下面所示 (1) 外设向外设向DMAC 发出请求发出请求 (2)DMAC通通过过HOLD 向向CPU 发出总线请求;发出总线请求;(3)CPU响

35、应响应释放三总线,并释放三总线,并且发应答且发应答HLDA(4)DMAC向向外设发外设发DMA应答应答 (5)DMAC发出地址、控制信号,为外设传送数据;发出地址、控制信号,为外设传送数据;(6)传送完规定的数据后,)传送完规定的数据后,DMAC撤销撤销HOLD信号,信号,CPU也也撤销撤销HLDA信号,并且恢复对三总线的控制。信号,并且恢复对三总线的控制。124532、DMA的工作过程的工作过程S3C2410X的的DMA工作过程可以分为三个状态:工作过程可以分为三个状态:状态状态1:等待状态。:等待状态。DMA 等待一个等待一个DMA请求。请求。如果有请求到来,将转到状态如果有请求到来,将转

36、到状态2。在这个状态下,。在这个状态下,DMA ACK和和INT REQ为为0。 状态状态2:准备状态。:准备状态。DMA ACK变为变为1,计数器,计数器(CURR_TC)装入)装入DCON19:0寄存器。寄存器。注意:注意:DMA ACK保持为保持为1直至它被清除。直至它被清除。状态状态3:传输状态。:传输状态。DMA控制器从源地址读入数控制器从源地址读入数据并将它写到目的地址,每传输一次,据并将它写到目的地址,每传输一次,CURR_TC数器(在数器(在DSTAT中)减中)减1,并且可能做以下操作:,并且可能做以下操作:重复传输:重复传输:在全服务模式下,将重复传输,直到计数器在全服务模式

37、下,将重复传输,直到计数器CURR_TC变为变为0;在单服务模式下,仅传输一次。;在单服务模式下,仅传输一次。 设置中断请求信号:设置中断请求信号:当当CURR_TC变为变为0时,时,DMAC发出发出INT REQ信号,而且信号,而且DCON29即中断设定位被设为即中断设定位被设为1。 清除清除DMA ACK信号:信号:对单服务模式,或者全服务模式对单服务模式,或者全服务模式 CURR_TC变为变为0。注意:注意:在单服务模式下,在单服务模式下,DMAC的的3个状态被执个状态被执行一遍,然后停止,等待下一个行一遍,然后停止,等待下一个DMA REQ的到来。的到来。如果如果DMA REQ到来,则

38、这些状态被重复操作,直到来,则这些状态被重复操作,直到到CURR_TC减为减为0 。 说明:说明:DMA传输分为一个单元传输和传输分为一个单元传输和4个单元个单元突发式传输。突发式传输。3、外部、外部DMA请求请求/响应规则响应规则DMAC有有3种类型的外部种类型的外部DMA请求请求/响应规则:响应规则:(1)single service demand,单服务请求单服务请求(对应于需求模式)(对应于需求模式)(2)single service handshake,单服务握手单服务握手(握手模式)(握手模式)(3)whole service handshake,全服务握手全服务握手(全服务模式)

39、(全服务模式)每种类型都定义了像每种类型都定义了像DMA请求和请求和DMA响应这些信号怎样响应这些信号怎样与这些规则相联系。与这些规则相联系。demand 与与 handshake模式的比较:模式的比较:在一次传输结束时,在一次传输结束时,DMA检查检查xnxDREQ(DMA请求)信请求)信号的状态:号的状态:在在demand模式下:如果模式下:如果DMA请求(请求(xnxDREQ)信号仍然有效,则传)信号仍然有效,则传输马上再次开始。否则等待。输马上再次开始。否则等待。在在handshake模式下:如果模式下:如果DMA请求信号无效,请求信号无效,DMA在两个时钟周期在两个时钟周期后将后将D

40、MA响应(响应(xnxDACK)信号变得无效。否则,)信号变得无效。否则,DMA等待直到等待直到DMA请求信号变得无效。每请求一次传输一次。请求信号变得无效。每请求一次传输一次。 4、DMA时序要求时序要求基本时序要求:基本时序要求:DMA请求信号和响应信号的请求信号和响应信号的Setup时间与时间与delay时间在所有时间在所有的模式下是相同的。的模式下是相同的。 如果如果DMA请求信号的请求信号的setup时间满足要求,则在两个周期时间满足要求,则在两个周期内实现同步,然后内实现同步,然后DMA响应信号变得有效。响应信号变得有效。在在DMA响应信号有效后,响应信号有效后,DMA向向CPU请

41、求总线。如果它请求总线。如果它得到总线就执行操作。得到总线就执行操作。DMA操作完成后,操作完成后,DMA响应信号变得响应信号变得无效。无效。 三、三、DMA控制器的相关寄存器控制器的相关寄存器每个每个DMA 通道有通道有9 个控制寄存器(个控制寄存器(4 个通道共计个通道共计36 个个寄存器),寄存器),6 个用来控制个用来控制DMA 传输,其它传输,其它3 个监视个监视DMA 控控制器的状态。制器的状态。Register Address R/W Description Reset Value DISRCn 0x4B0000x0 R/W 初始源基地址寄存器初始源基地址寄存器 0x000000

42、00 DISRCCn 0x4B0000x4 R/W 初始源控制寄存器初始源控制寄存器0x00000000 DIDSTn 0x4B0000x8 R/W 初始目的基地址寄存器初始目的基地址寄存器0x00000000 DIDSTCn 0x4B0000xC R/W初始目的控制寄存器初始目的控制寄存器0x00000000DCONn 0x4B0000y0 R/W DMA控制寄存器控制寄存器0x00000000 DSTATn 0x4B0000y4 R状态状态/计数寄存器计数寄存器0x00000000 DCSRCn 0x4B0000y8 R当前源地址寄存器当前源地址寄存器0x00000000 DCDSTn 0

43、x4B0000yC R当前目的地址寄存器当前目的地址寄存器0x00000000 SKTRIGn 0x4B0000z0 R/W DMA掩码掩码/触发寄存器触发寄存器0b0001、DISRCn-DMA源基地址寄存器源基地址寄存器原名:原名: DMA初始源寄存器初始源寄存器寄存器寄存器 地地 址址 R/W 意意 义义 初初 值值 DISRC0 0x4B000000 R/W DMA0源基地址寄存器源基地址寄存器 0x00000000 DISRC1 0x4B000040 R/W DMA1源基地址寄存器源基地址寄存器 0x00000000 DISRC2 0x4B000080 R/W DMA2源基地址寄存器

44、源基地址寄存器 0x00000000 DISRC3 0x4B0000C0 R/W DMA3源基地址寄存器源基地址寄存器 0x00000000 3130 00S_ADDR-源数据基地址源数据基地址(在(在CURR_SRC为为0、并且、并且DMA ACK为为1时装载入时装载入CURR_SRC)第10次到此LOC-源所在总线选择源所在总线选择0:AHB;1:APBINC-源地址变化设置源地址变化设置0:源地址增加;:源地址增加;1:源地址不变:源地址不变2、DISRCCn-DMA源控制寄存器源控制寄存器寄存器寄存器 地地 址址 R/W 意意 义义 初初 值值 DISRCC0 0x4B000004 R

45、/W DMA0初始源控制寄存器初始源控制寄存器 0x00000000 DISRCC1 0x4B000044 R/W DMA1初始源控制寄存器初始源控制寄存器 0x00000000 DISRCC2 0x4B000084 R/W DMA2初始源控制寄存器初始源控制寄存器 0x00000000 DISRCC3 0x4B0000C4 R/W DMA3初始源控制寄存器初始源控制寄存器 0x00000000 31 21 0保留(为保留(为0)LOC-源总线选择源总线选择INC-源地址变化设置源地址变化设置3、DIDSTn-DMA目的基地址寄存器目的基地址寄存器原名:原名: DMA初始目的寄存器初始目的寄存

46、器寄存器寄存器 地地 址址 R/W 意意 义义 初初 值值 DIDST0 0x4B000008 R/W DMA0目的基地址寄存器目的基地址寄存器 0x00000000 DIDST1 0x4B000048 R/W DMA1目的基地址寄存器目的基地址寄存器 0x00000000 DIDST2 0x4B000088 R/W DMA2目的基地址寄存器目的基地址寄存器 0x00000000 DIDST3 0x4B0000C8 R/W DMA3目的基地址寄存器目的基地址寄存器 0x00000000 3130 00D_ADDR-目标基地址,目标基地址,会被载入会被载入CURR_DST(当(当CURR_DST

47、的值为的值为0、并且、并且 DMA ACK 的值为的值为1时)时)4、DIDSTCn-DMA初始目的控制寄存器初始目的控制寄存器寄存器寄存器 地地 址址 R/W 意意 义义 初初 值值 DIDSTC0 0x4B00000C R/W DMA0初始目的控制寄存器初始目的控制寄存器 0x00000000 DIDSTC1 0x4B00004C R/W DMA1初始目的控制寄存器初始目的控制寄存器 0x00000000 DIDSTC2 0x4B00008C R/W DMA2初始目的控制寄存器初始目的控制寄存器 0x00000000 DIDSTC3 0x4B0000CC R/W DMA3初始目的控制寄存器

48、初始目的控制寄存器 0x00000000 LOC-目的地址所在总线选择目的地址所在总线选择0:AHB;1:APBINC-目的地址地址变化设置目的地址地址变化设置0:目的地址增加;:目的地址增加;1:目的地址不变:目的地址不变31 21 0保留(为保留(为0)LOC-目的总线选择目的总线选择 INC-目的地址变化设置目的地址变化设置5、DCONn-DMA控制控制寄存器寄存器寄存器寄存器 地地 址址 R/W 意意 义义 初初 值值 DCON0 0x4B000010 R/W DMA 0 控制寄存器控制寄存器 0x00000000 DCON1 0x4B000050 R/W DMA 1 控制寄存器控制寄

49、存器0x00000000 DCON2 0x4B000090 R/W DMA 2 控制寄存器控制寄存器0x00000000 DCON3 0x4B0000D0 R/W DMA 3 控制寄存器控制寄存器0x00000000 3130292827262524232221 20DMD_HSSYNC INTTSZSERVMODEHWSRCSELSWHW_SELRELOADDSZ19 18 17 16 15 14 13 12 11 10 98876543210TC-传输次数初值传输次数初值DMD_HS-DMA与外设握手模式选择与外设握手模式选择0:需求模式。为单服务,但只要:需求模式。为单服务,但只要DRE

50、Q信号有效便传输信号有效便传输1:握手模式。为单服务,要等待:握手模式。为单服务,要等待DREQ信号变为无效,信号变为无效, DREQ再有效时才传输。再有效时才传输。SYNC-DREQ 和和DACK信号与系统总线时钟同步选择信号与系统总线时钟同步选择0:DREQ和和DACK与与PCLK(APB clock)同步。慢速外设同步。慢速外设 1:DREQ和和DACK与与HCLK(AHB clock)同步。高速外设同步。高速外设 INT-CURR_TC的中断请求控制的中断请求控制0:禁止:禁止CURR_TC产生中断请求产生中断请求1:当所有的传输结束时,:当所有的传输结束时,CURR_TC产生中断请求

51、产生中断请求 TSZ-传输长度类型选择传输长度类型选择0:执行单数据传输:执行单数据传输 1:执行四数据长的突发传输:执行四数据长的突发传输 3130292827262524232221 20DMD_HSSYNC INTTSZSERVMODEHWSRCSELSWHW_SELRELOADDSZSERVMODE-传输模式选择传输模式选择0:单服务传输模式,每传输一次都要查询:单服务传输模式,每传输一次都要查询DREQ1:全服务传输模式,不查询:全服务传输模式,不查询DREQ,但传输一次也要释,但传输一次也要释 放总线。放总线。HWSRCSEL -各各DMA通道请求源设置通道请求源设置3130292

52、827262524232221 20DMD_HSSYNC INTTSZSERVMODEHWSRCSELSWHW_SELRELOADDSZHWSRCSEL000001010011100通道通道0nXDREQ0UART0SDITimerUSB设备设备EP1通道通道1nXDREQ1UART1IISSDISPI0USB设备设备EP2通道通道2IISSDOIISSDISDITimerUSB设备设备EP3通道通道3UART2SDISPI1TimerUSB设备设备EP4SWHW_SEL- DMA源选择方式源选择方式(软件或硬件)(软件或硬件)设置设置0:以软件:以软件software方式产生方式产生DMA请

53、求,需要用请求,需要用DMASKTRIG控制寄存器中的控制寄存器中的SW_TRIG位设置触发。位设置触发。1:由位:由位26:24提供的提供的DMA源触发源触发DMA操作操作RELOAD-再装载选择再装载选择0:自动再装载,当传输次数减为:自动再装载,当传输次数减为0时自动装载时自动装载DMA初值初值1:不自动再装载,传输结束关闭:不自动再装载,传输结束关闭DMA通道。通道。DSZ-传输数据类型设置传输数据类型设置00:字节;:字节;01:半字;:半字;10:字;:字;11:保留:保留3130292827262524232221 20DMD_HSSYNC INTTSZSERVMODEHWSRC

54、SELSWHW_SELRELOADDSZSTAT-DMA状态状态00:就绪态,可进行传输;:就绪态,可进行传输;01:DMA正在传输;正在传输;1X:保留:保留CURRTC-当前传输计数值当前传输计数值每传输一次其值减每传输一次其值减1。其初值在。其初值在DCONn中低中低20位。位。6、DSTATn-DMA状态状态/计数计数寄存器寄存器原名:原名:DMA状态寄存器状态寄存器寄存器寄存器 地地 址址 R/W 意意 义义 初初 值值 DSTAT0 0x4B000014 RDMA0状态状态/计数寄存器计数寄存器 0x00000000 DSTAT1 0x4B000054 RDMA1状态状态/计数寄存

55、器计数寄存器0x00000000 DSTAT2 0x4B000094 RDMA2状态状态/计数寄存器计数寄存器0x00000000 DSTAT3 0x4B0000D4 RDMA3状态状态/计数寄存器计数寄存器0x00000000 21 20 19 18 17 16 15 14 13 12 11 10 98876543210STATCURRTC-当前传输次数计数值当前传输次数计数值CURR_SRC-当前数据源地址当前数据源地址 注意:(注意:(1)DMA每传输一次,其地址可能增加每传输一次,其地址可能增加(1、2、4)、可能不变;(可能不变;(2)在在CURR_SRC为为0、且、且DMA ACK

56、为为1时,将时,将S_ADDR源基地址的值装入。源基地址的值装入。寄存器寄存器 地地 址址 R/W 意意 义义 初初 值值 DCSRC0 0x4B000018 RDMA0当前源地址寄存器当前源地址寄存器 0x00000000 DCSRC1 0x4B000058 RDMA1当前源地址寄存器当前源地址寄存器0x00000000 DCSRC2 0x4B000098 RDMA2当前源地址寄存器当前源地址寄存器0x00000000 DCSRC3 0x4B0000D8 RDMA3当前源地址寄存器当前源地址寄存器0x00000000 3130 00CURR_SRC-当前数据源地址当前数据源地址7、DCSRC

57、n-DMA当前当前源地址寄存器源地址寄存器CURR_DST-当前数据目的地址当前数据目的地址注意:(注意:(1)DMA每传输一次,其地址可能增加每传输一次,其地址可能增加(1、2、4) ;(2)在在CURR_DST为为0、且、且DMA ACK为为1时,时,将将D_ADDR的值装入。的值装入。寄存器寄存器 地地 址址 R/W 意意 义义 初初 值值 DCDST0 0x4B00001C RDMA0当前目的地址寄存器当前目的地址寄存器 0x00000000 DCDST1 0x4B00005C RDMA1当前目的地址寄存器当前目的地址寄存器 0x00000000 DCDST2 0x4B00009C R

58、DMA2当前目的地址寄存器当前目的地址寄存器 0x00000000 DCDST3 0x4B0000DC RDMA3当前目的地址寄存器当前目的地址寄存器 0x00000000 3130 00CURR_DST-当前数据目的地址当前数据目的地址8、DCDSTn-DMA当前目的地址寄存器当前目的地址寄存器寄存器寄存器 地地 址址 R/W 意意 义义 初初 值值 DMASKTRIG0 0x4B000020 R/W DMA0掩码触发寄存器掩码触发寄存器 0x00000000 DMASKTRIG1 0x4B000060 R/W DMA1掩码触发寄存器掩码触发寄存器 0x00000000 DMASKTRIG2

59、 0x4B0000A0 R/W DMA2掩码触发寄存器掩码触发寄存器 0x00000000 DMASKTRIG3 0x4B0000E0 R/W DMA3掩码触发寄存器掩码触发寄存器 0x00000000 9、DMASKTRIGn-DMA掩码掩码(Mask)触发寄存器触发寄存器31 321 0保留(为保留(为0)STOP ON/OFF SW_TRIG STOP-DMA运行停止位运行停止位1:DMA将当前数据传输完立即停止,并且将当前数据传输完立即停止,并且CURR_TC变变为为0。注意注意:如果如果ON/OFF设置为设置为OFF,则,则DMA也停止传输。也停止传输。ON/OFF-DMA通道屏蔽位

60、通道屏蔽位0:关闭通道;:关闭通道;1:开放通道:开放通道如果如果DCONn22设为非自动重装,设为非自动重装,DMA则传输完成后则传输完成后STOP位置位置1、并且关闭通道。、并且关闭通道。注意:注意:在在DMA运行期间,不要改变其值,并且也不要使运行期间,不要改变其值,并且也不要使用该位停止用该位停止DMA传输,正确的方法应该使用传输,正确的方法应该使用STOP位。位。SW_TRIG: DMA软件触发位软件触发位设为设为1时,实现软件触发时,实现软件触发DMA请求。请求。注意:注意:只有当只有当DCONn23设为软件触发设为软件触发DMA请求时,其请求时,其软件触发才有效。软件触发才有效。

61、对对DMA应用注意:应用注意:在在DMA运行中改变运行中改变DISRCn、DIDSTn寄存器寄存器以及改变以及改变DCONn中中TC的值,对的值,对DMA当前的整个当前的整个传输没有影响。而其它寄存器或位值的改变,将立传输没有影响。而其它寄存器或位值的改变,将立即影响传输。即影响传输。 4.4 A/D转换与触摸屏转换与触摸屏主要内容主要内容1、概述、概述2、结构与工作原理、结构与工作原理3、寄存器、寄存器4、应用举例、应用举例一、一、S3C2410X的的A/D 转换器概述转换器概述S3C2410X中集成了一个通道中集成了一个通道10 位位A/D 转换转换器,器,A/D 转换器自身具有采样保持功

62、能。并且转换器自身具有采样保持功能。并且S3C2410X的的A/D 转换器支持触摸屏接口。转换器支持触摸屏接口。A/D转换器的主要特性:转换器的主要特性:分辨率:分辨率:10位;位;精度:精度:1LSB 线性度误差:线性度误差: 1.5-2.0LSB;最大转换速率:最大转换速率:500KSPS;输入电压范围:输入电压范围:03.3v;系统具有采样保持功能;系统具有采样保持功能;常规转换和低能源消耗功能;常规转换和低能源消耗功能;独立独立/自动的自动的X/Y 坐标转换模式。坐标转换模式。二、二、A/D转换器结构与工作原理转换器结构与工作原理下图为下图为S3C2410 A/D 转换器和触摸屏接口的

63、功能块图。转换器和触摸屏接口的功能块图。1、结构、结构主要由主要由6部部分构成:分构成:信号输入通道信号输入通道8转转1切换开关切换开关A/D转换器转换器控制逻辑控制逻辑中断信号发生器中断信号发生器触摸屏接口触摸屏接口2、引脚信号(需要补充)、引脚信号(需要补充)0:正常工作模式;:正常工作模式;3、工作原理、工作原理(1)A/D 转换时间计算和分辨率转换时间计算和分辨率当当PCLK 频率为频率为50MHz,预分频值是,预分频值是49,10 位数字量位数字量的转换时间如下:的转换时间如下:A/D 转换频率转换频率=50MHz /(49+1)=1MHz转换时间转换时间=1/(1MHz/5 个周期

64、)个周期)=1/200KHz=5usA/D 转换器最大可以工作在转换器最大可以工作在2.5MHz 时钟下,所以转换时钟下,所以转换速率可以达到速率可以达到500KSPS。(2)触摸屏的结构及工作原理)触摸屏的结构及工作原理原理:原理:对于电阻式触摸屏,由对于电阻式触摸屏,由3层透明薄膜构成,有一层透明薄膜构成,有一层是电阻层,还有一层是导电层,它们中间有一隔离层,层是电阻层,还有一层是导电层,它们中间有一隔离层,当某一点被按压时,在按压点电阻层与导电层接触,如果当某一点被按压时,在按压点电阻层与导电层接触,如果在电阻层的一边接电源,另一边接地,便可测量出按压点在电阻层的一边接电源,另一边接地,

65、便可测量出按压点的电压,从而可算出其坐标。的电压,从而可算出其坐标。实现方法:实现方法:测量测量X坐标:坐标:从从XP输出电压给输出电压给X+端,从端,从XM输输出地电位给出地电位给X-端;从端;从YP脚输入按压点电压。脚输入按压点电压。控制信号:控制信号:nYPON=1;nYMON=0nXPON=0;nXMON=1测测Y测测X测量测量Y坐标:坐标:从从YP输出电压给输出电压给Y+端,从端,从YM输输出地电位给出地电位给Y-端;从端;从XP脚输入按压点电压。脚输入按压点电压。控制信号:控制信号:nYPON=0;nYMON=1nXPON=1;nXMON=0测测Y测测X3、S3C24120X A/

66、D转换器的工作模式转换器的工作模式有有5种:普通转换模式、分离的种:普通转换模式、分离的X/Y坐标转换模式、连续坐标转换模式、连续的的X/Y坐标转换模式、等待中断模式、静态模式。第坐标转换模式、等待中断模式、静态模式。第2-4种种是用于触摸屏。是用于触摸屏。(1)普通转换模式)普通转换模式用于一般用于一般A/D转换,不是用于触摸屏。转换结束后,其转换,不是用于触摸屏。转换结束后,其数据在数据在ADCDAT0中的中的XPDATA域。域。(2)分离的)分离的X/Y坐标转换模式坐标转换模式分两步进行分两步进行X/Y坐标转换,其转换结果分别存于坐标转换,其转换结果分别存于ADCDAT0中的中的XPDA

67、TA域中和域中和ADCDAT1中的中的YPDATA域域中,并且均会产生中,并且均会产生INT_ADC中断请求。中断请求。(3)自动(连续)的)自动(连续)的X/Y坐标转换模式坐标转换模式X坐标转换结束启动坐标转换结束启动Y坐标转换,其转换结果分别存于坐标转换,其转换结果分别存于ADCDAT0中的中的XPDATA域中和域中和ADCDAT1中的中的YPDATA域域中,然后产生中,然后产生INT_ADC中断请求。中断请求。(4)等待中断转换模式)等待中断转换模式在该模式下,转换器等待使用者按压触摸屏,一在该模式下,转换器等待使用者按压触摸屏,一旦触摸屏被按压,则产生旦触摸屏被按压,则产生INT_TC

68、触摸屏中断请求。触摸屏中断请求。中断后,在中断处理程序中再将转换器设置为分中断后,在中断处理程序中再将转换器设置为分离的离的X/Y坐标转换模式、或者连续的坐标转换模式、或者连续的X/Y坐标转换模坐标转换模式进行处理。式进行处理。触摸屏接口信号:触摸屏接口信号:XP=上拉上拉XM=高阻高阻YP=AIN5YM=接地接地(5)静态模式)静态模式当当ADCCON中的中的STDBM设为设为1时,转换器进入时,转换器进入静态模式,停止静态模式,停止A/D转换。其数据域的数据保持不变。转换。其数据域的数据保持不变。三、三、ADC和触摸屏专用寄存器和触摸屏专用寄存器有有5个专用寄存器个专用寄存器Registe

69、r Address R/W Description Reset Value ADCCON 0x58000000 R/W ADC控制寄存器控制寄存器 0x3FC4 ADCTSC 0x58000004 R/W 触摸屏控制寄存器触摸屏控制寄存器0x058 ADCDLY0x58000008 R/W ADC起始延迟寄存器起始延迟寄存器0x00FF ADCDAT0 0x5800000CRADC转换数据转换数据0寄存器寄存器-ADCDAT1 0x58000010 RADC转换数据转换数据1寄存器寄存器- ECFLG-转换结束标志转换结束标志(只读)(只读)0:转换操作中;:转换操作中;1:转换结束:转换结束

70、PRSCEN-转换器预分频器使能转换器预分频器使能0:停止预分频器;:停止预分频器;1:使能预分频器:使能预分频器PRSCVL-转换器预分频器数值转换器预分频器数值数值数值N范围:范围:1-255注意注意:(:(1)实际除数值为)实际除数值为N+1 (2)对)对N数值的要求:转换速率应该数值的要求:转换速率应该PCLK/51、ADCCON-ADC控制控制寄存器寄存器151413 6ECFLGPRSCENPRSCVL543210SEL_MUXSTDBM READ_START ENABLE_STARTSEL_MUX -模拟输入通道选择模拟输入通道选择000:AIN0;001:AIN1010:AIN

71、2011:AIN3111:AIN7STDBM-备用模式设置备用模式设置0:正常工作模式;:正常工作模式;1:备用模式,不做:备用模式,不做A/D转换转换READ_START-通过读取启动转换通过读取启动转换0:停止通过读取启动转换;:停止通过读取启动转换;1:使能通过读取启动转换:使能通过读取启动转换ENABLE_START-通过设置该位启动转换通过设置该位启动转换0:无效;:无效;1:启动:启动A/D转换(启动后被清转换(启动后被清0)注意注意:如果:如果READ_START为为1,则该位无效,则该位无效543210SEL_MUXSTDBM READ_START ENABLE_STARTYM

72、_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: 输出输出1(XM=GND)XP_SEN-选择选择nXP的输出值的输出值0:输出:输出0(XP=外部电压);外部电压);1:输出:输出1(XP连接连接AIN7)2、ADCTSC-ADC触摸屏控制寄存器触摸屏控制寄存器876543210保留保留0 YM_S

73、ENYP_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-手动测量手动测量X轴和轴和Y轴坐标模式选择轴坐标模式选择00:无操作模式;:无操作模式;01:对:对X坐标测量;坐标测量;10:对:对Y坐标测量;坐标测量;11:等待中断模式:等待中断模式876543210保留保留0 YM_SENYP_SENXM_SENX

74、P_SEN PULL_UP AUTO_PST XY_PST31 1615 14 13 12 11 10 98876543210保留为保留为0起始延迟数值起始延迟数值-分两种情况分两种情况第一情况:第一情况:对普通转换模式、分离的对普通转换模式、分离的X/Y轴坐标转换模式、轴坐标转换模式、连续的连续的X/Y轴坐标转换模式,轴坐标转换模式,为转换延时数值为转换延时数值。第二种情况:第二种情况:对中断转换模式对中断转换模式,为按压触摸屏后到产生中断,为按压触摸屏后到产生中断请求的延迟时间数值,请求的延迟时间数值,其时间单位为其时间单位为ms。3、ADCDLY-ADC起始延迟寄存器起始延迟寄存器UPD

75、OWN-等待中断模式的按压状态等待中断模式的按压状态0:触笔点击;:触笔点击;1:触笔提起:触笔提起AUTO_PST-自动自动X/Y轴转换模式指示轴转换模式指示0:普通转换模式;:普通转换模式;1:X/Y轴坐标连续转换轴坐标连续转换XY_PST-手动手动X/Y轴转换模式指示轴转换模式指示00:无操作;:无操作;01:为:为X轴坐标转换轴坐标转换10:为:为Y轴坐标转换轴坐标转换11:为等待中断转换:为等待中断转换XPDATA9:0:为:为X轴坐标转换数值、或普通轴坐标转换数值、或普通ADC转换数值转换数值具体意义由其它位指示。其值为:具体意义由其它位指示。其值为:0-0x3FF4、ADCDAT

76、0-ADC转换数据转换数据0寄存器寄存器1514131211109 0UPDOWN AUTO_PST XY_PST 保留(保留(0) XPDATA或普通或普通ADC值值第11次到此UPDOWN-等待中断模式的按压状态等待中断模式的按压状态0:触笔点击;:触笔点击;1:触笔提起:触笔提起AUTO_PST-自动自动X/Y轴转换模式指示轴转换模式指示0:普通转换模式;:普通转换模式;1:X/Y轴坐标连续转换轴坐标连续转换XY_PST-手动手动X/Y轴转换模式指示轴转换模式指示00:无操作;:无操作;01:为:为X轴坐标转换轴坐标转换11:为:为Y轴坐标转换轴坐标转换11:为等待中断转换:为等待中断转

77、换YPDATA9:0:为:为10位位Y轴坐标转换结果轴坐标转换结果其值为:其值为:0-0x3FF 5、ADCDAT1-ADC转换数据转换数据1寄存器寄存器1514131211109 0UPDOWN AUTO_PST XY_PST 保留(保留(0)YPDATA例题:例题:编写程序,对编写程序,对3通道的模拟量连续做通道的模拟量连续做10次转换,用查询方式读取转换结果,其数据存于次转换,用查询方式读取转换结果,其数据存于0x400000开始的区域。开始的区域。AREA ADC,CODE,READONLYENTRYSTART#define rADCCON (*(volatile unsigned *

78、)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;i10;i+)while(rADCCON&0x8000=0); /查询转换结束查询转换结束否否adc_datai=rADCDAT0&0x3ff; /读取转换结果读取转换结果 rADCCON|=1; /再次启动转换再次启动转换4.5 中断中断主要内容主要内容

79、概述概述结构与工作原理结构与工作原理寄存器寄存器应用举例应用举例一、概一、概 述述S3C2410X中断控制器有中断控制器有56个中断源个中断源,对外提,对外提供供24个外中断输入引脚,内部所有设备都有中断请个外中断输入引脚,内部所有设备都有中断请求信号,例如求信号,例如DMA控制器、控制器、UART、IIC等等。等等。S3C2410X的的ARM920T内核有两个中断内核有两个中断,IRQ中断和快速中断中断和快速中断FIQ。中断仲裁:中断仲裁:当中断控制器接收到多个中断请求当中断控制器接收到多个中断请求时,其内的优先级仲裁器裁决后向时,其内的优先级仲裁器裁决后向CPU发出优先级发出优先级最高的中

80、断请求信号或快速中断请求信号。最高的中断请求信号或快速中断请求信号。二、二、S3C2410X中断系统结构中断系统结构1、中断系统结构、中断系统结构主要由中断源和控制寄存器两大部分构成,其主要由中断源和控制寄存器两大部分构成,其寄存器主要有寄存器主要有4种:模式、屏蔽、优先级、挂起种:模式、屏蔽、优先级、挂起(标志)寄存器等。(标志)寄存器等。中断源中断源(有子寄存器有子寄存器)子中断源子中断源挂起寄存器挂起寄存器中断源中断源(无子寄存器无子寄存器)子中断源子中断源屏蔽寄存器屏蔽寄存器中断屏蔽中断屏蔽中断模式中断模式优先级仲裁优先级仲裁FIQIRQ中断源挂起中断源挂起中中断断挂挂起起2、中断优先

81、级仲裁器及工作原理、中断优先级仲裁器及工作原理中断系中断系统有统有6个分个分仲裁器和仲裁器和1个总仲裁器,个总仲裁器,每一个仲裁每一个仲裁器可以处理器可以处理6路中断。路中断。三、中断控制器专用寄存器三、中断控制器专用寄存器有有8个专用寄存器个专用寄存器Register Address R/W Description Reset Value SRCPND0x4A000000 R/W 中断标志寄存器中断标志寄存器 0x00000000 INTMOD 0x4A000004 R/W 中断模式寄存器中断模式寄存器0x00000000 INTMSK0x4A000008 R/W 中断屏蔽寄存器中断屏蔽寄存

82、器0xFFFFFFFF PRIORITY0x4A00000C R/W 中断优先级寄存器中断优先级寄存器0x7FINTPND0x4A000010 R/W 中断服务寄存器中断服务寄存器0x00000000 INTOFFSET 0x4A000014R中断偏移寄存器中断偏移寄存器0x00000000 SUBSRCPND 0x4A000018 R/W 子源挂起寄存器子源挂起寄存器0x00000000INTSUBMSK 0x4A00001C R/W 中断子源屏蔽寄存器中断子源屏蔽寄存器0x7FF主要使用前主要使用前5个寄存器个寄存器该寄存器也就是中断标志寄存器该寄存器也就是中断标志寄存器各位:各位:1:对

83、应中断源:对应中断源有有中断请求中断请求0:对应中断源:对应中断源无无中断请求中断请求注意:必须在中断处理程序中对其标志位清注意:必须在中断处理程序中对其标志位清0。其方法为写。其方法为写1.1、SRCPND-中断源挂起(标志)寄存器中断源挂起(标志)寄存器位号位号中断源中断源位号位号中断源中断源位号位号中断源中断源位号位号中断源中断源31INT_ADC23INT_UART115INT_UART27nBATT_FLT30INT_RTC22INT_SPI014INT_TIM46保留保留29INT_SPI121INT_SDI13INT_TIM35EINT8_2328INT_UART020INT_D

84、MA312INT_TIM24EINT4_727INT_IIC19INT_DMA211INT_TIM13EINT326INT_USBH18INT_DMA110INT_TIM02EINT225INT_USBD17INT_DMA09INT_WDT1EINT124保留保留16INT_LCD8INT_TICK0EINT0该寄存器是设置各中断源是该寄存器是设置各中断源是FIQ中断还是中断还是IRQ中断中断各位:各位:1:对应中断源设为:对应中断源设为FIQ中断模式中断模式0:对应中断源设为:对应中断源设为IRQ中断模式中断模式2、INTMOD-中断模式寄存器中断模式寄存器位号位号中断源中断源位号位号中断源

85、中断源位号位号中断源中断源位号位号中断源中断源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_

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

87、26INT_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, 3, 4, 1, 2, 5 11:REQ0, 4, 1, 2, 3, 5ARB_MODEn-n组优先级循环控制位组优先级循环控制位0:优先顺序固定不变:优先顺序固定不变 1:优先顺序

88、循环,每响应一次中断,其顺序循环改变一次,:优先顺序循环,每响应一次中断,其顺序循环改变一次,但但REQ0、REQ5位置不变。位置不变。位号位号含含 义义位号位号含含 义义位号位号含含 义义31:21保保 留留12:11ARB_SEL24ARB_MODE420:19ARB_SEL610:9ARB_SEL13ARB_MODE318:17ARB_SEL58:7ARB_SEL02ARB_MODE216:15ARB_SEL46ARB_MODE61ARB_MODE114:13ARB_SEL35ARB_MODE50ARB_MODE0各位:各位:1:对应的中断源被响应,且正在执行中断服务:对应的中断源被响应

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

90、_SPI121INT_SDI13INT_TIM35EINT8_2328INT_UART020INT_DMA312INT_TIM24EINT4_727INT_IIC19INT_DMA211INT_TIM13EINT326INT_USBH18INT_DMA110INT_TIM02EINT225INT_USBD17INT_DMA09INT_WDT1EINT124保留保留16INT_LCD8INT_TICK0EINT0该寄存器的偏移值指示在该寄存器的偏移值指示在INTPND中显示的中断源中显示的中断源各位:各位:1:对应的中断源,在:对应的中断源,在INTPND中被置位中被置位说明:说明:当在中断服务

91、程序中对当在中断服务程序中对SRCPND、INTPND中的中的标志位清标志位清0时,该寄存器的对应位自动清时,该寄存器的对应位自动清0。6、INTOFFSET-中断偏移寄存器中断偏移寄存器中断源中断源偏移偏移值值中断源中断源偏移偏移值值中断源中断源偏移偏移值值中断源中断源偏移偏移值值INT_ADC31INT_UART123INT_UART215nBATT_FLT7INT_RTC30INT_SPI022INT_TIM414保留保留6INT_SPI129INT_SDI21INT_TIM313EINT8_235INT_UART028INT_DMA320INT_TIM212EINT4_74INT_II

92、C27INT_DMA219INT_TIM111EINT33INT_USBH26INT_DMA118INT_TIM010EINT22INT_USBD25INT_DMA017INT_WDT9EINT11保留保留24INT_LCD16INT_TICK8EINT007、SUBSRCPND-子中断源请求标志寄存器子中断源请求标志寄存器对有多个中断源的外设,显示其具体的中断请求对有多个中断源的外设,显示其具体的中断请求各位:各位:1:对应的子中断源有请求:对应的子中断源有请求0:对应的子中断源无请求:对应的子中断源无请求注意:注意:在中断服务程序中,需要对其置在中断服务程序中,需要对其置1的标志位清的标志

93、位清0。位号位号中断源中断源位号位号中断源中断源位号位号中断源中断源31:11保保 留留7INT_TXD23INT_RXD110INT_ADC6INT_RXD22INT_ERR09INT_TC5INT_ERR11INT_TXD08INT_ERR24INT_TXD10INT_RXD08、INTSUBMSK-子中断源屏蔽寄存器子中断源屏蔽寄存器对有多个中断源的外设,对具体的中断源进行屏蔽对有多个中断源的外设,对具体的中断源进行屏蔽各位:各位:1:屏蔽对应的子中断源:屏蔽对应的子中断源0:开放对应的子中断源:开放对应的子中断源位号位号中断源中断源位号位号中断源中断源位号位号中断源中断源31:11保保

94、 留留7INT_TXD23INT_RXD110INT_ADC6INT_RXD22INT_ERR09INT_TC5INT_ERR11INT_TXD08INT_ERR24INT_TXD10INT_RXD0在在2410init.s文件中与的中断初始化部分文件中与的中断初始化部分程序开始及中断入口程序开始及中断入口bResetHandler bHandlerUndef;handler for Undefined modebHandlerSWI;handler for SWI interruptbHandlerPabort;handler for PAbortbHandlerDabort;handler

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

96、 HandleUndefHandlerSWI HANDLER HandleSWIHandlerDabort HANDLER HandleDabortHandlerPabort HANDLER HandlePabort本段意义:本段意义:利用后面定义的宏来展开上面各行,使利用后面定义的宏来展开上面各行,使其进入它们所对应的中断服务子程序其进入它们所对应的中断服务子程序;本宏意义:本宏意义:转到相应中断服务子程序去执行转到相应中断服务子程序去执行 MACRO$HandlerLabel HANDLER $HandleLabel;如如Label=IRQ , ( HandlerIRQ )$Handler

97、Labelsub 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,=HandleEINT0;中断向量表首地址中断向量表首地址add r8,r8,r9,lsl #2ldr r8,r8str r8,sp,#8ldmfdsp!,r8-r9,pc本段意义:本段意义

98、:根据中断服务号,转去执行相应的中断处根据中断服务号,转去执行相应的中断处理程序段。理程序段。;中断向量表中断向量表IntVectorTableHandleEINT0 # 4HandleEINT1 # 4HandleEINT2 # 4HandleEINT3 # 4HandleEINT4_7# 4HandleEINT8_23# 4HandleRSV6# 4HandleBATFLT # 4HandleTICK # 4HandleWDT# 4HandleTIMER0 # 4HandleTIMER1 # 44.6 输入输入/输出端口输出端口主要内容主要内容概述概述寄存器寄存器应用举例应用举例一、概述一

99、、概述S3C2410X有有117个输入个输入/输出端口输出端口。这些端口是:。这些端口是:A口(口(GPA):):23个输出口个输出口B口(口(GPB):):11个输入个输入/输出口输出口C口(口(GPC):):16个输入个输入/输出口输出口D口(口(GPD):):16个输入个输入/输出口输出口E口(口(GPE):):16个输入个输入/输出口输出口F口(口(GPF):):8个输入个输入/输出口输出口G口(口(GPG):):16个输入个输入/输出口输出口H口(口(GPH):):11个输入个输入/输出口输出口这些端口都具有多功能,通过引脚配置寄存器,可以这些端口都具有多功能,通过引脚配置寄存器,可

100、以将其设置为所需要的功能,如:将其设置为所需要的功能,如:I/O功能、中断功能等等。功能、中断功能等等。二、端口寄存器及引脚配置二、端口寄存器及引脚配置每一个端口都有每一个端口都有4个寄存器,它们是:引脚配个寄存器,它们是:引脚配置寄存器、数据寄存器、引脚上拉寄存器等。置寄存器、数据寄存器、引脚上拉寄存器等。Register Address R/W Description Reset Value GPXCON0x560000x0 R/W 端口端口X配置寄存器配置寄存器 X GPXDAT 0x560000x4 R/W 端口端口X数据寄存器数据寄存器X GPXUP0x560000x8 R/W 端口

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

102、x56000004 R/W 端口端口A数据寄存器数据寄存器- RESERVED 0x56000008 -端口端口A保留寄存器保留寄存器- RESERVED 0x5600000C-端口端口A保留寄存器保留寄存器-1、端口、端口A寄存器及引脚配置寄存器及引脚配置位号位号 位位 名名 位值位值:0 1位号位号 位位 名名 位值位值:0 122GPA22输出输出nFCE10GPA10输出输出ADDR2521GPA21输出输出nRSTOUT9GPA9输出输出ADDR2420GPA20输出输出nFRE8GPA8输出输出ADDR2319GPA19输出输出nFWE7GPA7输出输出ADDR2218GPA18输

103、出输出ALE6GPA6输出输出ADDR2117GPA17输出输出CLE5GPA5输出输出ADDR2016GPA16输出输出nGCS54GPA4输出输出ADDR1915GPA15输出输出nGCS43GPA3输出输出ADDR1814GPA14输出输出nGCS32GPA2输出输出ADDR1713GPA13输出输出nGCS21GPA1输出输出ADDR1612GPA12输出输出nGCS10GPA0输出输出ADDR011GPA11输出输出ADDR26FCE:Flash片选片选GPBDAT-为准备输出或输入的数据为准备输出或输入的数据其值为其值为11位位10:0GPBUP-端口端口B上拉寄存器,位上拉寄存器

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

105、器0x0RESERVED 0x5600001C- 端口端口B保留寄存器保留寄存器-端口端口B引脚配置寄存器引脚配置寄存器位号位号位位 名名 位值位值:00 01 10 1121,20GPB10输入输入输出输出nXDREQ0Reserved19,18GPB9输入输入输出输出nXDACK0Reserved17,16GPB8输入输入输出输出nXDREQ1Reserved15,14GPB7输入输入输出输出nXDACK1Reserved13,12GPB6输入输入输出输出nXBACKReserved11,10GPB5输入输入输出输出nXBREQReserved9,8GPB4输入输入输出输出TCLK0Res

106、erved7,6GPB3输入输入输出输出TOUT3Reserved5,4GPB2输入输入输出输出TOUT2Reserved3,2GPB1输入输入输出输出TOUT1Reserved1,0GPB0输入输入输出输出TOUT0ReservedGPCDAT-为准备输出或输入的数据为准备输出或输入的数据其值为其值为16位位15:0GPCUP-端口端口C上拉寄存器,位上拉寄存器,位15:0有意义。有意义。 0:对应引脚设置为上拉:对应引脚设置为上拉1:无上拉功能:无上拉功能注意注意: 当当C口引脚配置为非输入口引脚配置为非输入/输出功能时,其寄存输出功能时,其寄存器中的值没有意义。器中的值没有意义。3、端口

107、、端口C寄存器及引脚配置寄存器及引脚配置Register Address R/W Description Reset Value GPCCON0x56000020 R/W 端口端口C引脚配置寄存器引脚配置寄存器 0x0 GPCDAT 0x56000024 R/W 端口端口C数据寄存器数据寄存器- GPCUP0x56000028 R/W 端口端口C上拉寄存器上拉寄存器0x0RESERVED 0x5600002C- 端口端口C保留寄存器保留寄存器-端口端口C引脚配置寄存器引脚配置寄存器位号位号 位位 名名位位 值值位号位号 位名位名位位 值值000110110001101131,30 GPC15

108、输入输入 输出输出 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 GPC4 输入输入 输出输出VM保留保留23,22 GPC11 输入输入 输出输出 VD3保留保留7,6 GPC3 输入输入 输出输出VFRAME保留保留21,20 GPC10 输入输入

109、 输出输出 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上拉寄存器,位上拉寄存器,位15:0有意义。有意义。 0:对应引脚设置为上拉:对应引脚设置为上拉1:无上拉功能:无上拉功能初始化时,初始化时,15:12无上拉功能,而无上拉功能,而11:0有上拉有

110、上拉注意注意: 当当D口引脚配置为非输入口引脚配置为非输入/输出功能时,其寄存输出功能时,其寄存器中的值没有意义。器中的值没有意义。4、端口、端口D寄存器及引脚配置寄存器及引脚配置Register Address R/W Description Reset Value GPDCON0x56000030 R/W 端口端口D引脚配置寄存器引脚配置寄存器 0x0 GPDDAT 0x56000034 R/W 端口端口D数据寄存器数据寄存器- GPDUP0x56000038 R/W 端口端口D上拉寄存器上拉寄存器0xF000RESERVED 0x5600003C- 端口端口D保留寄存器保留寄存器-端口端

111、口D引脚配置寄存器引脚配置寄存器位号位号 位位 名名位位 值值位号位号 位名位名位位 值值000110110001101131,30GPD15 输入输入 输出输出 VD23 nSS0 15,14 GPD7 输入输入输出输出 VD15 保留保留29,28GPD14 输入输入 输出输出 VD22 nSS1 13,12 GPD6 输入输入输出输出 VD14 保留保留27,26GPD13 输入输入 输出输出 VD21 保留保留 11,10 GPD5 输入输入输出输出 VD13 保留保留25,24GPD12 输入输入 输出输出 VD20 保留保留9,8 GPD4 输入输入输出输出 VD12 保留保留23

112、,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 输入输入输出输出VD8保留保留GPEDAT-为准备输出或输入的数据为准备输出或输入的数据其值为其值为16位位15:0GPEUP-端口端口E上拉寄存器,位上拉寄存器,位15:0有意义。有意义。

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

114、R/W 端口端口E上拉寄存器上拉寄存器0x0RESERVED 0x5600004C- 端口端口E保留寄存器保留寄存器-端口端口E引脚配置寄存器引脚配置寄存器位号位号 位位 名名位位 值值位号位号 位名位名位位 值值000110110001101131,30GPE15 输入输入 输出输出 IICSDA 保留保留 15,14 GPE7 输入输入 输出输出 SDDAT0 保留保留29,28GPE14 输入输入 输出输出 IICSCL 保留保留 13,12 GPE6 输入输入 输出输出 SDCMD 保留保留27,26GPE13 输入输入 输出输出SPICLK0保留保留 11,10 GPE5 输入输入

115、输出输出 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 GPE9 输入输入 输出输出 SDDAT2 保留保留 3,2 GPE1 输入输入 输出输出 IISSCLK 保留保留17,16 GPE8 输入输入 输出输出 SDDAT1 保留保留 1,0

116、 GPE0 输入输入 输出输出 IISLRCK 保留保留GPFDAT-为准备输出或输入的数据为准备输出或输入的数据其值为其值为8位位7:0GPFUP-端口端口F上拉寄存器,位上拉寄存器,位7:0有意义。有意义。 0:对应引脚设置为上拉:对应引脚设置为上拉1:无上拉功能:无上拉功能初始化时,各个引脚都有上拉功能。初始化时,各个引脚都有上拉功能。注意注意: 当当F口引脚配置为非输入口引脚配置为非输入/输出功能时,其寄存输出功能时,其寄存器中的值没有意义。器中的值没有意义。6、端口、端口F寄存器及引脚配置寄存器及引脚配置Register Address R/W Description Reset V

117、alue GPFCON0x56000050 R/W 端口端口F引脚配置寄存器引脚配置寄存器 0x0 GPFDAT 0x56000054 R/W 端口端口F数据寄存器数据寄存器- GPFUP0x56000058 R/W 端口端口F上拉寄存器上拉寄存器0x0RESERVED 0x5600005C- 端口端口F保留寄存器保留寄存器-端口端口F引脚配置寄存器引脚配置寄存器位号位号位位 名名位位 值值0001101115,14GPF7输入输入输出输出EINT7保留保留13,12GPF6输入输入输出输出EINT6保留保留11,10GPF5输入输入输出输出EINT5保留保留9,8GPF4输入输入输出输出EI

118、NT4保留保留7,6GPF3输入输入输出输出EINT3保留保留5,4GPF2输入输入输出输出EINT2保留保留3,2GPF1输入输入输出输出EINT1保留保留1,0GPF0输入输入输出输出EINT0保留保留GPGDAT-为准备输出或输入的数据为准备输出或输入的数据其值为其值为16位位15:0GPGUP-端口端口G上拉寄存器,位上拉寄存器,位15:0有意义。有意义。 0:对应引脚设置为上拉:对应引脚设置为上拉1:无上拉功能:无上拉功能初始化时,初始化时,15:11引脚无上拉功能,其它引脚有。引脚无上拉功能,其它引脚有。注意注意: 当当G口引脚配置为非输入口引脚配置为非输入/输出功能时,其寄存输出

119、功能时,其寄存器中的值没有意义。器中的值没有意义。7、端口、端口G寄存器及引脚配置寄存器及引脚配置Register Address R/W Description Reset Value GPGCON0x56000060 R/W 端口端口G引脚配置寄存器引脚配置寄存器 0x0 GPGDAT 0x56000064 R/W 端口端口G数据寄存器数据寄存器- GPGUP0x56000068 R/W 端口端口G上拉寄存器上拉寄存器0xF800RESERVED 0x5600006C- 端口端口G保留寄存器保留寄存器-端口端口G引脚配置寄存器引脚配置寄存器位号位号 位位 名名位位 值值位号位号 位名位名位

120、位 值值000110110001101131,30GPG15 输入输入 输出输出 EINT23nYPON15,14 GPG7 输入输入 输出输出 EINT15SPICLK129,28GPG14 输入输入 输出输出 EINT22YMON 13,12 GPG6 输入输入 输出输出 EINT14 SPISI127,26GPG13 输入输入 输出输出 EINT21nXPON11,10 GPG5 输入输入 输出输出 EINT13 SPISO125,24GPG12 输入输入 输出输出 EINT20XMON 9,8GPG4 输入输入 输出输出 EINT12LCD-PEN23,22GPG11 输入输入 输出输

121、出 EINT19TCLK1 7,6GPG3 输入输入 输出输出 EINT11nSS121,20GPG10 输入输入 输出输出 EINT18 保留保留5,4GPG2 输入输入 输出输出 EINT10nSS019,18 GPG9 输入输入 输出输出 EINT17 保留保留3,2GPG1 输入输入 输出输出 EINT9保留保留17,16 GPG8 输入输入 输出输出 EINT16 保留保留1,0GPG0 输入输入 输出输出 EINT8保留保留LCD-PEN:POWER_ENABLEnSS0:SPI0_SELECTGPHDAT-为准备输出或输入的数据为准备输出或输入的数据其值为其值为11位位10:0G

122、PHUP-端口端口H上拉寄存器,位上拉寄存器,位10:0有意义。有意义。 0:对应引脚设置为上拉:对应引脚设置为上拉1:无上拉功能:无上拉功能注意注意: 当当H口引脚配置为非输入口引脚配置为非输入/输出功能时,其寄存输出功能时,其寄存器中的值没有意义。器中的值没有意义。8、端口、端口H寄存器及引脚配置寄存器及引脚配置Register Address R/W Description Reset Value GPHCON0x56000070 R/W 端口端口H引脚配置寄存器引脚配置寄存器 0x0 GPHDAT 0x56000074 R/W 端口端口H数据寄存器数据寄存器- GPHUP0x56000

123、078 R/W 端口端口H上拉寄存器上拉寄存器0x0RESERVED 0x5600007C- 端口端口H保留寄存器保留寄存器-端口端口H引脚配置寄存器引脚配置寄存器位号位号位位 名名 位值位值:00 01 10 1121,20GPH10输入输入输出输出CLKOUT1Reserved19,18GPH9输入输入输出输出CLKOUT0Reserved17,16GPH8输入输入输出输出UCLKReserved15,14GPH7输入输入输出输出RXD2nCTS113,12GPH6输入输入输出输出TXD2nRTS111,10GPH5输入输入输出输出RXD1Reserved9,8GPH4输入输入输出输出TX

124、D1Reserved7,6GPH3输入输入输出输出RXD0Reserved5,4GPH2输入输入输出输出TXD0Reserved3,2GPH1输入输入输出输出nRTS0Reserved1,0GPH0输入输入输出输出nCTS0ReservedUCLK为为USB的的9、端口其它控制寄存器、端口其它控制寄存器Register Address R/W Description Reset Value MISCCR0x56000080 R/W 混合控制寄存器混合控制寄存器 0x10330 DCLKCON 0x56000084 R/W D时钟控制寄存器时钟控制寄存器0x0 nEN_SCKE-SCLK使能位。

125、在电源关闭模式下对使能位。在电源关闭模式下对SDRAM做做保护保护0: 正常状态正常状态 1:低电平:低电平nEN_SCLKx-SCLKx使能位。在电源关闭模式下对使能位。在电源关闭模式下对SDRAM做保护做保护0:SCLKx= SCLK 1:低电平:低电平nRSTCON-对对nRSTOUT软件复位控制位软件复位控制位0:使:使nRSTOUT为低,为低,0;1:使:使nRSTOUT为高,为高,1151413121110987保留保留USBSUSPND1 USBSUSPND0 保留保留CLKSEL1 保留保留(1)MISCCR-混合控制寄存器混合控制寄存器312019181716保留(为保留(为

126、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 CLK001:UPLL CLK 010:FCLK011:HCLK100:PCLK 101:DCLK111x:保留:保留CLKSEL0 - CLKOUT0引脚输出信号源选择引脚输出信号源

127、选择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 1:前一状态:前一状态SPUCR_L-数据口低数据口低16位位15:0上拉控制位上拉控制位0:上拉:上拉1:无上拉:无上拉SPUCR_H-数据口高数据口高16位位31:16上拉控制

128、位上拉控制位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保留保留DCLK1CMP DCLK1DIV 保留保留 DCLK1SEL DCLK1ENDCLK1(0)CMP-DCLK1(0)低电平时间所占的比例数低电平时间所占的比例数。设该位值为设

129、该位值为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 保留保留 DCLK0SelCK DCLK0EN(2)DCLKCON-D时钟控制寄存器(续)时钟控制寄存器(续)31 28 27 26 25 24 23 22 21 20 19 18171

130、6保留保留DCLK1CMP DCLK1DIV 保留保留 DCLK1SEL DCLK1ENDCLK1(0)SelCK-DCLK1(0) source clock 选择选择0 : 源时钟选择源时钟选择PCLK1:源时钟选择:源时钟选择UCLK ( USB )DCLK1(0)EN-DCLK1(0) Enable0:禁止:禁止1:允许:允许主要设置各个外中断源的触发方式、滤波主要设置各个外中断源的触发方式、滤波10、外中断控制寄存器、外中断控制寄存器Register Address R/W Description Reset Value EXTINT0 0x56000088 R/W 外中断触发方式寄存

131、器外中断触发方式寄存器00x0 EXTINT1 0x5600008C R/W 外中断触发方式寄存器外中断触发方式寄存器10x0 EXTINT2 0x56000090 R/W 外中断控制寄存器外中断控制寄存器20x0EINT07-中断请求信号触发方式选择中断请求信号触发方式选择000:低电平触发:低电平触发001:高电平触发:高电平触发01x:下降沿触发:下降沿触发10x:上升沿触发:上升沿触发11x:双边沿触发:双边沿触发第第3、7、11、15、19、23、27、31位位-保留保留15 14 13 12 11 109876543210XEINT3XEINT2XEINT1XEINT0(1)EXT

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

133、1-外中断触发方式控制寄存器外中断触发方式控制寄存器131 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16XEINT15XEINT14XEINT13XEINT12EINT1623-外中断请求信号触发方式选择外中断请求信号触发方式选择000:低电平触发:低电平触发001:高电平触发:高电平触发01x:下降沿触发:下降沿触发10x:上升沿触发:上升沿触发11x:双边沿触发:双边沿触发第第3、7、11、15、19、23、27、31位位-为为FILTEN各引脚滤波控制位各引脚滤波控制位0:禁止滤波:禁止滤波1:使能滤波:使能滤波15 14 13 12 11 1

134、09876543210F19EINT19F18EINT18F17EINT17F16EINT16(3)EXTINT2-外中断控制寄存器外中断控制寄存器231 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16F23EINT23F22EINT22F21EINT21F20EINT20主要设置各个外中断源的滤波器设置主要设置各个外中断源的滤波器设置11、外中断滤波控制寄存器、外中断滤波控制寄存器Register Address R/W Description Reset Value EINTFLT0 0x56000094 R/W 保留保留- EINTFLT1 0x

135、56000098 R/W 保留保留- EINTFLT2 0x5600009C R/W 外中断滤波控制寄存器外中断滤波控制寄存器20x0EINTFLT3 0x560000A0 R/W 外中断滤波控制寄存器外中断滤波控制寄存器30x0FLTCLK1619-外中断外中断1619滤波器时钟选择滤波器时钟选择0:PCLK1:外部:外部/振荡时钟(由振荡时钟(由OM引脚选择)引脚选择)EINTFLT1619-外中断外中断1619滤波器宽度滤波器宽度(频带宽度)(频带宽度)15148760FLTCLK17EINTFLT17FLTCLK16EINTFLT16(1)EINTFLT2-外中断滤波控制寄存器外中断滤

136、波控制寄存器2313024232216FLTCLK19EINTFLT19FLTCLK18EINTFLT18FLTCLK2023-外中断外中断2023滤波器时钟选择滤波器时钟选择0:PCLK1:外部:外部/振荡时钟(由振荡时钟(由OM引脚选择)引脚选择)EINTFLT2023-外中断外中断2023滤波器宽度滤波器宽度(频带宽度)(频带宽度)15148760FLTCLK21EINTFLT21FLTCLK20EINTFLT20(2)EINTFLT3-外中断滤波控制寄存器外中断滤波控制寄存器3313024232216FLTCLK23EINTFLT23FLTCLK22EINTFLT2212、外中断屏蔽、

137、标志寄存器、外中断屏蔽、标志寄存器Register Address R/W Description Reset Value EINTMAK 0x560000A4 R/W 外中断屏蔽寄存器外中断屏蔽寄存器0x00FFFFF0 EINTPEND 0x560000A8 R/W 外中断标志寄存器外中断标志寄存器0x0外中断屏蔽寄存器外中断屏蔽寄存器位号位号含含 义义位号位号含含 义义位号位号含含 义义23EINT2315EINT157EINT722EINT2214EINT146EINT621EINT2113EINT135EINT520EINT2012EINT124EINT419EINT1911EINT

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

139、INT1810EINT102保留保留17EINT179EINT91保留保留16EINT168EINT80保留保留各位:各位:0:无中断请求:无中断请求1:有中断请求:有中断请求注意:对某位写注意:对某位写1,则清除相应标志,即清为,则清除相应标志,即清为0.GSTATUS3、4:复位时被清复位时被清0,其它情况下其数据不变。,其它情况下其数据不变。用户可以用于保存数据。用户可以用于保存数据。13、外中断状态寄存器、外中断状态寄存器Register Address R/W Description Reset Value GSTATUS0 0x560000AC R外部引脚状态寄存器外部引脚状态寄存

140、器不确定不确定 GSTATUS1 0x560000B0 R芯片芯片ID(标识标识)寄存器寄存器0x32410000GSTATUS2 0x560000B4 R/W复位状态寄存器复位状态寄存器0x1GSTATUS3 0x560000B8 R/W信息保存寄存器信息保存寄存器0x0GSTATUS4 0x560000C0 R/W信息保存寄存器信息保存寄存器0x0nWEIT-引脚引脚nWEIT状态状态nCON-引脚引脚nCON状态状态RnB-引脚引脚R/nB状态状态nBATT_FLT-引脚引脚nBATT_FLT状态状态注意:各位的数值注意:各位的数值0、1,随着对应引脚变化。,随着对应引脚变化。31432

141、10保保 留留nWEITnCONRnBnBATT_FLT(1)GSTATUS0-外部引脚状态寄存器外部引脚状态寄存器WDTRST-上电复位控制状态上电复位控制状态1:出现了上电复位:出现了上电复位对该位写,则将该位清对该位写,则将该位清0OFFRST-掉电模式复位状态。掉电模式复位状态。1:系统出现了从掉电模式唤醒复位:系统出现了从掉电模式唤醒复位对该位写,则将该位清对该位写,则将该位清0PWRST-看门狗复位状态看门狗复位状态1:系统出现了看门狗定时器复位:系统出现了看门狗定时器复位对该位写,则将该位清对该位写,则将该位清0313210保保 留留WDTRSTOFFRSTPWRST(2)GST

142、ATUS2-复位状态寄存器复位状态寄存器第第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(EINT1 interrupt is occurred.n); #define ClearPending(bit) rSRCPND = bit; rINTPND = bit; rIN

143、TPND; 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 = (rGPFCON & 0xfffa)|(13)|(

144、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 = (rEXTINT0 & (74) | (0x70) | 0x

145、24 | 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(“Press the EINT0/1 buttons or

146、 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 pending states rINTPND =

147、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位预分频器和位预分频器和2个个4位分频器;位分频器;可编程可编程P

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

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

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

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

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

153、装载和双缓冲)初值自动重装、手动装载和双缓冲初值自动重装功能:初值自动重装功能: 5个定时器都具有此功能。个定时器都具有此功能。当计数器中值减到当计数器中值减到0后,若设置了自动重装功能,后,若设置了自动重装功能,则在下一计数周期开始前将初值装入计数器重新计则在下一计数周期开始前将初值装入计数器重新计数。数。初值手动装载功能:初值手动装载功能:在启动计数前,必须使用在启动计数前,必须使用手动装载功能将初值装入计数器,而初值自动重装手动装载功能将初值装入计数器,而初值自动重装仅是一次计数结束后重新装入初值。仅是一次计数结束后重新装入初值。双缓冲功能:双缓冲功能:如果定时器正在工作,此时写入如果定

154、时器正在工作,此时写入新的数据到新的数据到TCNTBn、或者到、或者到TCMPBn,该写入,该写入的数据不影响本次定时器的操作。当定时器到达的数据不影响本次定时器的操作。当定时器到达0后下一次运行定时器时,新写入的后下一次运行定时器时,新写入的TCNTBn、或者、或者TCMPBn才生效。才生效。 (3)PWM输出输出寄存器寄存器TCMPB的作用:当计数器的作用:当计数器TCNT中的值减到与中的值减到与TCMPB的值相同时,的值相同时,TOUT的输出值取反。的输出值取反。改变改变TCMPB的的值,便改变了输出方波的占空比值,便改变了输出方波的占空比。TOUT的输出可以设置为反相输出,如下图所示。

155、的输出可以设置为反相输出,如下图所示。正向输出正向输出正向输出正向输出反相输出反相输出周期开始周期开始(4)死区产生器)死区产生器死区的概念:死区的概念:是一小段时间间隔,在这个时间间隔内,是一小段时间间隔,在这个时间间隔内,禁止两个开关同时处于开启状态。死区是在功率设备控制中禁止两个开关同时处于开启状态。死区是在功率设备控制中常采用的一种技术,防止两个开关同时打开起反作用。常采用的一种技术,防止两个开关同时打开起反作用。S3C2410的的timer0具有死区发生器功能,可用于控制大具有死区发生器功能,可用于控制大功率设备。功率设备。死区发生器开启前后输出波形对比死区发生器开启前后输出波形对比

156、(5)DMA请求模式请求模式S3C2410中定时器的中定时器的DMA功能:功能:系统中的系统中的5个定时器都个定时器都有有DMA请求功能,但是在同一时刻只能设置一个使用请求功能,但是在同一时刻只能设置一个使用DMA功能,通过设置其功能,通过设置其DMA模式位来实现。模式位来实现。 DMA请求过程:请求过程:定时器可以在任意时间产生定时器可以在任意时间产生DMA请请求,并且保持求,并且保持DMA请求信号(请求信号(nDMA_REQ)为低直到定)为低直到定时器收到时器收到ACK信号。当定时器收到信号。当定时器收到ACK信号时,它使请求信号时,它使请求信号变得无效。信号变得无效。DMA请求与中断的关

157、系:请求与中断的关系:如果一个定时器被配置为如果一个定时器被配置为DMA模式,该定时器不会产生中断请求了。其他的定时器模式,该定时器不会产生中断请求了。其他的定时器会正常的产生中断。会正常的产生中断。 3、计数时钟和输出计算、计数时钟和输出计算1)定时器输入时钟频率)定时器输入时钟频率f f Tclk (即计数时钟频率)(即计数时钟频率) :f f Tclk=f f pclk(Prescaler+1) 分频值分频值式中:式中:Prescaler,预分频值,预分频值,0-255;分频值为;分频值为1/2、1/4、1/8、1/16。 2)PWM输出时钟频率输出时钟频率 :PWM输出时钟频率输出时钟

158、频率= f f Tclk TCNTBn3)PWM输出信号占空比输出信号占空比(即高电平持续时间所占信号周期(即高电平持续时间所占信号周期的比例)的比例):PWM输出信号占空比输出信号占空比 = TCMPBn TCNTBn定时器最大、最小输出周期定时器最大、最小输出周期设设PCLK的频率为的频率为50MHz,经过预分频和分频器后,送,经过预分频和分频器后,送给定时器的可能计数时钟频率由表给定时器的可能计数时钟频率由表4-7-1给出。给出。 表表4-7-1 定时器最大、最小输出周期定时器最大、最小输出周期分频值分频值最小输出周期最小输出周期( (预分频器预分频器=0=0、TCNTBn=1)TCNT

159、Bn=1)最大输出周期最大输出周期( (预分频器预分频器=255=255、TCNTBn=6553TCNTBn=65535)5)最小输出周期最小输出周期( (预分频器预分频器=0=0、TCNTBn=6553TCNTBn=65535)5)最小输出周期最小输出周期( (预分频器预分频器=0=0、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.3686s48H

160、z12207三、定时器专用寄存器三、定时器专用寄存器共有共有6种、种、17个寄存器个寄存器TCNTBn-Timern计数初值寄存器(计数缓冲寄存器),计数初值寄存器(计数缓冲寄存器),16位位TCMPBn-Timern比较寄存器(比较缓比较寄存器(比较缓冲寄存器冲寄存器),),16位位TCNTOn-Timern计数读出寄存器,计数读出寄存器,16位位Register Address R/W Description Reset Value TCFG00x51000000 R/W 配置寄存器配置寄存器 00x00000000 TCFG10x51000004 R/W 配置寄存器配置寄存器 10x00

161、000000 TCON 0x51000008 R/W 控制寄存器控制寄存器0x00000000TCNTBn0x510000xx R/W 计数初值寄存器计数初值寄存器(5个个)0x0000TCMPBn0x510000xxR/W比较寄存器比较寄存器(4个个)0x0000TCNTOn0x510000xxR观察寄存器观察寄存器(5个个)0x0000Dead zone length-死区宽度设置位死区宽度设置位其值其值N为:为: 0255,以,以timer0的定时时间为单位的定时时间为单位死区宽度为:(死区宽度为:(N+1)timer0的定时时间的定时时间Prescaler1-timer2、3、4的预分

162、频值的预分频值其值其值N为:为: 0255输出频率为:输出频率为:PCLK (N+1)Prescaler0- timer0、1的预分频值的预分频值其值其值N为:为: 0255输出频率为:输出频率为:PCLK (N+1)1、TCFG0-预分频器配置寄存器预分频器配置寄存器3124 2316 158 70保留(为保留(为0)Dead zone lengthPrescaler1Prescaler02、TCFG1-DMA模式与分频选择寄存器模式与分频选择寄存器DMA mode-DMA通道选择设置位通道选择设置位0000:不使用:不使用DMA方式,所有通道都用中断方式方式,所有通道都用中断方式0001:

163、选择:选择timer00010:选择选择timer10011:选择:选择timer20100:选择选择timer30101:选择:选择timer4011X:保留保留MUX4 MUX0-timer4timer0分频值选择分频值选择0000:1/20001:1/40010:1/8 0011: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 MUX0第第1414讲到讲到此此

164、TL4TL0-计数初值自动重装控制位计数初值自动重装控制位 0:单次计数:单次计数1:计数器值减到:计数器值减到0时,自动重新装入初值连续计数。时,自动重新装入初值连续计数。TUP4TUP0-计数初值手动装载控制位。计数初值手动装载控制位。0:不操作:不操作1:立即将:立即将TCNTBn中的计中的计数初值装载到计数寄存器数初值装载到计数寄存器TCNTn中。中。说明:说明:如果没有执行手动装载初值,则计数器启动时如果没有执行手动装载初值,则计数器启动时无初值。无初值。121110987543210TR2 TL1 TO1 TUP1 TR1 保留保留 DZE TL0 TO0 TUP0 TR03、TC

165、ON-定时器控制寄存器定时器控制寄存器312322212019181716151413保留保留TL4 TUP4 TR4 TL3 TO3 TUP3 TR3 TL2 TO2 TUP2TR4TR0-TIMER4TIMER0运行控制位运行控制位0:停止:停止1:启动对应的:启动对应的TIMERTO3TO0- TIMER4TIMER0输出控制位输出控制位0:正相输出:正相输出1:反相输出:反相输出DZE-TIMER0死区操作控制位死区操作控制位0:禁止死区操作:禁止死区操作1:使能死区操作:使能死区操作121110987543210TR2 TL1 TO1 TUP1 TR1 保留保留 DZE TL0 TO

166、0 TUP0 TR03、TCON-定时器控制寄存器(续)定时器控制寄存器(续)312322212019181716151413保留保留TL4 TUP4 TR4 TL3 TO3 TUP3 TR3 TL2 TO2 TUP2四、定时器的使用四、定时器的使用1、定时器初始化方法、定时器初始化方法(1)写)写TCFG0,设置计数时钟的预分频值和,设置计数时钟的预分频值和Timer0死区宽度;死区宽度;(2)写)写TCFG1,选择各个定时器的分频值和,选择各个定时器的分频值和DMA、中断服务;中断服务;(3)对)对TCNTBn和和TCMPBn分别写入计数初值和比较分别写入计数初值和比较初值;初值;(4)写

167、)写TCON,设置计数初值自动重装、手动装载初,设置计数初值自动重装、手动装载初值、设置反相输出;值、设置反相输出;(5)再写)再写TCON,清除手动装载初值位、设置正相输,清除手动装载初值位、设置正相输出、启动计数。出、启动计数。2、定时器停止运行方法、定时器停止运行方法写写TCON,禁止计数初值自动重装。(一般不使用运行,禁止计数初值自动重装。(一般不使用运行控制位停止运行)控制位停止运行)3、定时器操作例子、定时器操作例子(1)按照前面初始化定时器;设置按照前面初始化定时器;设置TCNTBn=160(50+110),TCMPBn=110;手动装入初值后,;手动装入初值后,又重设又重设TC

168、NTBn=80, TCMPBn=40;(2)启动定时器启动定时器,按第一个初值计数;按第一个初值计数;(3)与第一个比较值相同,输出取反;)与第一个比较值相同,输出取反;(4)第一次计数结束,自动重装初值)第一次计数结束,自动重装初值80、40;(5)在第一次中断处理程序又重设在第一次中断处理程序又重设TCMPBn=60;(8)在第二次中断处理程序禁止自动重装初值,准备在第二次中断处理程序禁止自动重装初值,准备结束计数;结束计数;(10)第三次计数结束,不再计数。)第三次计数结束,不再计数。50 110 40 40 20 60 1 2 3 4 6 7 9 105 8TOUTn定时器应用举例定时

169、器应用举例#define BIT_TIMER0 (0x110)int variable0,variable1,variable2,variable3,variable4;void _irq Timer0Done(void) rSRCPND = BIT_TIMER0; /Clear pending bit rINTPND = BIT_TIMER0;/Clear serve bit variable0+; void _irq Timer1Done(void) rSRCPND = BIT_TIMER1; /Clear pending bit rINTPND = BIT_TIMER1; variabl

170、e1+; rINTPND; /Prevent an double interrupt pending#define pISR_TIMER0 (*(unsigned *)(_ISR_STARTADDRESS+0x48)#define pISR_TIMER1 (*(unsigned *)(_ISR_STARTADDRESS+0x4c)void Test_TimerInt(void) variable0 = 0;variable1 = 0;variable2 = 0; variable3 = 0;variable4 = 0; rINTMSK = (BIT_TIMER4 | BIT_TIMER3 |

171、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 & (0xffff

172、ff) | 0x000f0f; /死区宽度死区宽度=0,/T1预分频预分频=0x0f,T0预分频预分频=0x0f rTCFG1 =rTCFG1 & (0xffffff) | 0x001233; /全部使用中断全部使用中断/T4-T0分频值为:分频值为:1/2,1/4,1/8,1/16,1/16 /设置设置T0-T4计数初值计数初值 rTCNTB0 = 0xffff; / (1/(50MHz/16/16) * 0xffff (65535) = 0.334s rTCNTB1 = 0xffff; / (1/(50MHz/16/16) * 0xffff (65535) = 0.334s rTCNTB2

173、 = 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) | 0x6aaa0a; /Auto reload, /Inverter off, Manual update, Dead zone disable, Stop rTCON = rTC

174、ON & (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 - Fail.n); Uart_Printf(Press any key to exit Timer interrupt testn); while(!Uart_Ge

175、tKey(); 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, variable0,variable1,variable2,variable3,variable4); rINTMSK |= (BIT_TIMER4 | BIT_TIME

176、R3 | 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 (0x10-四、四、UART应用举例应用举例 编写一程序,使用编写一程序,使用S3C2410X的的UART2进行串行数据收进行串行数据收发,要求用脉冲请求中断的方式、使用收发,要求用脉冲请求中断的方式、使用收/发发FIFO,8个数个数据位、据位、1个停止位、不校验,波

177、特率为个停止位、不校验,波特率为125kb/s。设。设Pclk为为50MHz。(提示:主程序对。(提示:主程序对UART2初始化、引脚配置、中初始化、引脚配置、中断初始化等,并进行一次发送;中断服务程序进行数据收断初始化等,并进行一次发送;中断服务程序进行数据收发,标签清除中断请求标志和中断服务标志)发,标签清除中断请求标志和中断服务标志)解:解:(1)计算波特率除数:)计算波特率除数:由公式:由公式: UBRDIVn=(int)(CLK/( f f B*16) 1 这里:这里:Pclk=50MHz, f f B = 125kb/s计算得:计算得: UBRDIVn=25 -1=24(2)UAR

178、T2控制寄存器:控制寄存器:线路控制寄存器:线路控制寄存器: ULCON2=0b 0 000 0 11=0x03含义:非红外、不校验、含义:非红外、不校验、 1个停止位、个停止位、 8个数据位个数据位控制寄存器:控制寄存器: UCON2=0b 0 0 0 0 0 0 0 01 01=0x05含义:含义:选选Pclk、发、发/收中断脉冲请求、关闭接收超时中断、收中断脉冲请求、关闭接收超时中断、允许接收错误中断允许接收错误中断、不回送、不发送暂停信号、不回送、不发送暂停信号、发发/收用中收用中断方式。断方式。FIFO控制寄存器:控制寄存器:UFCON2=0b 10 01 0 0 0 1=0x91含

179、义:含义:发发/收收FIFO选选8字节触发、保留位为字节触发、保留位为0、不复位发、不复位发/收收FIFO、使能、使能FIFO。(3)引脚配置)引脚配置 需要设置需要设置TxD2、RxD2,它们对应,它们对应GPH6、GPH7,在,在GPH配置寄存器配置寄存器GPHCON中的位置为:中的位置为:0b 1 0 1 0 方法:方法:GPHCON= GPHCON&(0xF12)|(0xA12) (4)中断寄存器设置)中断寄存器设置中断模式寄存器:中断模式寄存器:INTMOD&=(115)INT_UART2位于第位于第15位,将位,将UART2设置为设置为IRQ中断中断中断屏蔽寄存器:中断屏蔽寄存器:

180、INTMSK&=(115) 中断优先级寄存器中断优先级寄存器PRIORITY:不设置不设置,使用固定优先级。,使用固定优先级。子中断屏蔽寄存器:子中断屏蔽寄存器:INTSUBMSK&=(76) INT_ERR2、INT_TXD2、INT_RXD2位于子中断屏蔽寄存位于子中断屏蔽寄存器中的器中的8、7、6位。位。(5)在中断服务程序中对寄存器的操作)在中断服务程序中对寄存器的操作清除中断标志寄存器相应位:清除中断标志寄存器相应位:SRCPND&=(115)清除中断服务寄存器相应位:清除中断服务寄存器相应位:INTPND&=(115)第第16讲到此讲到此4.9 SPI接口接口主要内容主要内容概述概

181、述结构结构寄存器寄存器应用举例应用举例重点:重点:(1)控制寄存器、线路控制寄存器、)控制寄存器、线路控制寄存器、发发/收状态寄存器;收状态寄存器;(2)RTC应用应用一、一、SPI接口概述接口概述SPI接口:接口:SPI(Serial Peripheral Interface,串行外设,串行外设接口接口)是)是Motorola公司开发的一种同步串行外设接口标准。公司开发的一种同步串行外设接口标准。SPI接口信号:接口信号:有有4个信号:数据发送、数据接收、时个信号:数据发送、数据接收、时钟和片选。在时钟信号的作用下,发送的同时,接收对方钟和片选。在时钟信号的作用下,发送的同时,接收对方发来的

182、数据;也可以只发送、或者只接收。发来的数据;也可以只发送、或者只接收。SPI的波特率可的波特率可以达到以达到20Mb/s以上。以上。S3C2410 ARM9有有2个个SPI接口,既可以作为主接口,既可以作为主SPI使用,使用,也可以作为从也可以作为从SPI使用。使用。主要特点:主要特点:与与SPI 协议协议 (ver. 2.11) 兼容;兼容;8位发送移位寄存器;位发送移位寄存器; 8位接收移位寄存器;位接收移位寄存器;8位预分频器;位预分频器;具有查询、中断、具有查询、中断、DMA传输模式。传输模式。二、二、S3C2410 SPI结构与工作原理结构与工作原理1、SPI结构结构SPI主要由主要

183、由4部分构成:时钟分频器、发送移位寄存器、部分构成:时钟分频器、发送移位寄存器、接收移位寄存器、控制逻辑等。如下图所示。接收移位寄存器、控制逻辑等。如下图所示。2、SPI设备系统组成设备系统组成系统可以多个系统可以多个SPI设备组成,任何一个设备都可以为主设备组成,任何一个设备都可以为主SPI,但是任一时刻只能有一个主,但是任一时刻只能有一个主SPI设备。如下图所示。设备。如下图所示。主主SPI设设备备从从SPI 1从从SPI 2从从SPI nSCKMOSIMISOnSS3、SPI工作时序工作时序下图为时序的一部分。下图为时序的一部分。图图(A)图图(B)Format CPOL和和CPHA第一

184、位数据输出第一位数据输出 其它位数据输出其它位数据输出 数据采样数据采样 ACPOL=0,CPHA=0 第第1个个SCK上升沿前上升沿前SCK下降沿下降沿SCK上升沿上升沿BCPOL=0,CPHA=1 第第1个个SCK上升沿上升沿SCK上升沿上升沿SCK下降沿下降沿ACPOL=1,CPHA=0 第第1个个SCK下降沿前下降沿前SCK上升沿上升沿SCK下降沿下降沿BCPOL=1,CPHA=1 第第1个个SCK下降沿下降沿SCK下降沿下降沿SCK上升沿上升沿三、三、SPI专用寄存器专用寄存器2个个UART,每个都有,每个都有6个专用寄存器,共个专用寄存器,共12个寄存器个寄存器Register A

185、ddress R/W Description Reset Value SPCONn0x590000x0 R/W SPI控制寄存器控制寄存器0x00SPSTAn0x590000x4 RSPI状态寄存器状态寄存器0x01SPPINn 0x590000x8 R/W SPI引脚控制寄存器引脚控制寄存器0x02SPPREn0x590000xC R/W SPI预分频寄存器预分频寄存器0x00SPTDATn0x590000x0R/WSPI数据发送寄存器数据发送寄存器0x00SPRDATn0x590000x4 RSPI数据接收寄存器数据接收寄存器0x001、SPI控制寄存器(控制寄存器(SPCON)Regis

186、ter Address R/W Description Reset Value SPCON00x59000000 R/W SPI0 控制寄存器控制寄存器0x00SPCON10x59000020 R/WSPI1 控制寄存器控制寄存器0x00字段名字段名 位位意意 义义 初值初值 SMOD6:5 SPI模式选择。模式选择。00:查询模式;:查询模式; 01:中断;:中断; 10:DMA模式;模式; 11:保留:保留00ENSCK4 时钟时钟SCK控制。控制。 0:禁止;:禁止;1:允许。:允许。0MSTR3 SPI主、从选择。主、从选择。 0:从:从SPI;1:主:主SPI0CPOL2 时钟极性选

187、择。时钟极性选择。0:高电平有效;:高电平有效;1:低:低0CPHA1 时钟相位选择。时钟相位选择。0:格式:格式A;1:格式:格式B0Tx Auto Garbage Data Mode Enable (TAGD)0 仅接收模式控制。仅接收模式控制。0:正常收发;:正常收发; 1:仅接收(此时:仅接收(此时(自动自动)发送任意数据)发送任意数据)02、SPI状态寄存器(状态寄存器(SPSTA)Register Address R/W Description Reset Value SPSTA00x59000004RSPI0 状态寄存器状态寄存器0x01SPSTA10x59000024 RSPI

188、1 状态寄存器状态寄存器0x01字段名字段名 位位意意 义义 初值初值 reserved7:3 保保 留留Data Collision Error Flag (DCOL)2 数据写碰撞数据写碰撞(正在发送时写正在发送时写SPTDAT) 错误标志。错误标志。 0:无错;:无错;1:碰撞错误:碰撞错误0Multi Master Error Flag (MULF)1 多主多主SPI错误标志。错误标志。 0:无错;:无错;1:多主:多主SPI错误。错误。0Transfer Ready Flag (REDY)0 收发就绪收发就绪标志标志。 0:未就绪;:未就绪; 1:收或发就绪。:收或发就绪。 写写SP

189、TDAT后该位自动清后该位自动清013、SPI引脚控制寄存器(引脚控制寄存器(SPPIN)Register Address R/W Description Reset Value SPPIN00x59000008 R/WSPI0 引脚控制寄存器引脚控制寄存器0x02SPPIN10x59000028 R/WSPI1 引脚控制寄存器引脚控制寄存器0x02字段名字段名 位位意意 义义 初值初值 reserved7:3 保保 留留Multi Master error detect Enable (ENMUL)2 引脚多主引脚多主SPI错误测试设置。错误测试设置。 0:禁测;:禁测;1:允许多主错误测试

190、。:允许多主错误测试。 测试结果在测试结果在SPSTAn中的中的MULF位位0reserved1 该位应该为该位应该为11Master Out Keep(KEEP)0 1字节发完后字节发完后MOSI的控制与释放的控制与释放 0:释放;:释放;1:保持:保持MOSI原电平原电平04、SPI预分频寄存器(预分频寄存器(SPPRE)Register Address R/W Description Reset Value SPPRE00x5900000C R/WSPI0 预分频寄存器预分频寄存器0x00SPPRE10x5900002C R/WSPI1 预分频寄存器预分频寄存器0x00字段名字段名 位位

191、意意 义义 初值初值 Prescaler value7:0 预分频值预分频值波特率计算:波特率计算:Baud tate = Pclk/2/( Prescaler value + 1 )提示:提示:SPI的波特率必须的波特率必须25MHz。5、SPI发送数据寄存器(发送数据寄存器(SPTDAT)Register Address R/W Description Reset Value SPTDAT00x59000010 R/WSPI0 发送数据寄存器发送数据寄存器0x00SPTDAT10x59000030 R/WSPI1 发送数据寄存器发送数据寄存器0x00字段名字段名 位位意意 义义 初值初值

192、Tx data7:0 SPI所发送的所发送的8位数据位数据0x00提示:提示:在同时双向传输时,从在同时双向传输时,从SPI设备必须先把所发送设备必须先把所发送的数据写到的数据写到“发送数据寄存器发送数据寄存器”SPTDATn中,然后再写主中,然后再写主SPI设备的设备的“发送数据寄存器发送数据寄存器”SPTDATn。6、SPI接收数据寄存器(接收数据寄存器(SPRDAT)Register Address R/W Description Reset Value SPRDAT00x59000014RSPI0 接收数据寄存器接收数据寄存器0x00SPRDAT10x59000034 RSPI1 接收

193、数据寄存器接收数据寄存器0x00字段名字段名 位位意意 义义 初值初值 Tx data7:0 SPI所接收的所接收的8位数据位数据0x00提示:提示:在同时双向传输时,启动发送后,应该先读取在同时双向传输时,启动发送后,应该先读取数据,然后再发送数据。数据,然后再发送数据。四、四、SPI应用方法应用方法1、一般操作步骤、一般操作步骤如果如果SPI控制寄存器控制寄存器SPCON已经设置过,则写数据发已经设置过,则写数据发送寄存器送寄存器SPTDAT启动发送。对启动发送。对SPI卡操作步骤如下:卡操作步骤如下:(1)设置预分频寄存器)设置预分频寄存器SPPRE;(2)设置控制寄存器)设置控制寄存器

194、SPCON;(3)设置一个)设置一个GPIO引脚,使选中的引脚,使选中的MMC或或SD卡的卡的片选信号片选信号nSS有效;有效;(4)向数据发送寄存器)向数据发送寄存器SPTDAT写写10次次0xFF,对,对MMC或或SD卡初始化;卡初始化;(5)发送数据:)发送数据:先要查询先要查询Tx/Rx REDY是否为是否为1,然后,然后向数据发送寄存器向数据发送寄存器SPTDAT写数据;写数据;(6)接收数据:)接收数据:一般方式(一般方式(同时收发,同时收发,TAGD=0):向数据发送寄存器):向数据发送寄存器SPTDAT写写0xFF,查询并确认,查询并确认Rx REDY为为1,然后从数据,然后从

195、数据接收寄存器中读取数据。接收寄存器中读取数据。仅接收方式仅接收方式(TAGD=1):并确认):并确认Rx REDY为为1,然后,然后从数据接收寄存器中读取数据。读取数据的同时启动一次从数据接收寄存器中读取数据。读取数据的同时启动一次发送。发送。(7)设置)设置GPIO引脚,使选中的引脚,使选中的MMC或或SD卡的片选卡的片选信号信号nSS无效,结束传输。无效,结束传输。2、DMA模式发送模式发送对对SPI的的DMA模式发送操作步骤如下:模式发送操作步骤如下:(1)设置预分频寄存器)设置预分频寄存器SPPRE;(2)设置控制寄存器)设置控制寄存器SPCON,并且设为,并且设为DMA模式;模式;

196、(3)SPI请求请求DMA服务;服务;(4)DMA发送发送1字节数据给字节数据给SPI;(5)SPI给卡发送数据;给卡发送数据;(6)返回到()返回到(3),直到),直到DMA的计数器为的计数器为0;3、DMA模式接收模式接收对对SPI的的DMA模式接收操作步骤如下:模式接收操作步骤如下:(1)设置预分频寄存器)设置预分频寄存器SPPRE;(2)设置控制寄存器)设置控制寄存器SPCON,并且设为,并且设为DMA模式;模式;(3)将)将SPI设置为仅接收模式,设置引脚控制寄存器设置为仅接收模式,设置引脚控制寄存器SPPIN中的中的TAGD为为1;(4)当)当SPI从卡接收到从卡接收到1字节数据后

197、,请求字节数据后,请求DMA服务;服务;(5)DMA从从SPI读取数据;读取数据;(6)SPI自动启动一次无用数据自动启动一次无用数据(0xFF)的发送;的发送;(7)返回到()返回到(4),直到),直到DMA的计数器为的计数器为0;(8)设置控制寄存器)设置控制寄存器SPCON,改设为其它模式,如查,改设为其它模式,如查询、中断模式;询、中断模式;(9)如果)如果Rx REDY被设置为被设置为1,则需要读取最后接收,则需要读取最后接收的数据。的数据。注意:注意:DMA第第1次接收的是数据的无效的。次接收的是数据的无效的。4、 SPI从设备以格式从设备以格式B接收的问题接收的问题当当SPI从设

198、备以格式从设备以格式B接收,接收,DMA的读信号比数据接收的读信号比数据接收的锁存信号早,在数据未锁存之前,读信号就出现了。因的锁存信号早,在数据未锁存之前,读信号就出现了。因此使用此使用DMA模式不能够正确接收。如下图所示。模式不能够正确接收。如下图所示。对于中断和查询模式,可以延时半个时钟,能够正确对于中断和查询模式,可以延时半个时钟,能够正确读取数据。读取数据。五、五、SPI接口应用举例接口应用举例把把S3C2410的的SPI0设为主设备,同时把设为主设备,同时把SPI1设为从设备,设为从设备,将二者的将二者的MOSI、MISO交叉相连,二者的交叉相连,二者的SCL对连,对连, 用用GP

199、G0引脚控制引脚控制nSS1。编写程序,。编写程序, SPI0用中断方式、用中断方式、 SPI1用查询方式,采用格式用查询方式,采用格式B、1Mb/s的波特率,的波特率,SPI0和和SPI1在在发送的同时接收数据,双方都发送、接收发送的同时接收数据,双方都发送、接收100个字节的数据。个字节的数据。设系统设系统Pclk=50MHz。解:解:(1)SPI计算预分频值:计算预分频值:由由 Baud tate = Pclk/2/( Prescaler value + 1 )Prescaler value = Pclk/2/Baud tate 1=24(2)SPI控制寄存器值控制寄存器值SPCON0=

200、0b 01 1 1 0 1 0 = 0x3A 含义:中断模式、使用时钟、主设备、含义:中断模式、使用时钟、主设备、0极性、格式极性、格式B、一般收发传输。一般收发传输。SPCON1=0b 01 0 0 0 1 0 = 0x22 含义:中断、不用时钟、从设备、含义:中断、不用时钟、从设备、0极性、格式极性、格式B、收发、收发(3)SPI引脚控制寄存器引脚控制寄存器SPPIN0=0b 0 1 1 = 0x03含义:不检测多主错误、保留含义:不检测多主错误、保留1、输出引脚保持输出。、输出引脚保持输出。SPPIN1=0b 0 1 1 = 0x03(4)SPI引脚配置引脚配置GPECON=0b * *

201、 10 10 10 * 先清先清0:&(0xFC20);再设置:;再设置:|(0xA820)GPGCON=0b 11 11 11 * 11 11 * 01 先清先清0:&0xFCF3);再设置:;再设置:|(0xFCF1)SPI0引脚引脚29282726252423222120GPECON*101010*CLK0MOSI0MISO0SPI0引脚引脚 15 14 13 12 11 109876543210GPGCON111111*1111*01CLK1 MOSI1MISO1*nSS1nSS0*输出输出(4)中断寄存器设置)中断寄存器设置中断模式寄存器:中断模式寄存器:INTMOD &=(122)

202、INT_UART2位于第位于第15位,将位,将UART2设置为设置为IRQ中断中断中断屏蔽寄存器:中断屏蔽寄存器:INTMSK&= (122)中断优先级寄存器中断优先级寄存器PRIORITY:不设置不设置,用复位值,用复位值0x7F,优先级为循环方式。,优先级为循环方式。(5)在中断服务程序中对寄存器的操作)在中断服务程序中对寄存器的操作清除中断标志寄存器相应位:清除中断标志寄存器相应位:SRCPND&= (122)清除中断服务寄存器相应位:清除中断服务寄存器相应位:INTPND&= (122)#include 2410header.hvoid Main(void) sysinit(); wh

203、ile(1) Uart_Printf(n 2410 Board SPI TEST!n); Test_SPI( ); char tran_data0100, rec_data0100, num0=0;char tran_data1100, rec_data1100, num1=0;voidTest_SPI(void)rSPPRE0=24; rSPPRE1=24;rSPCON0=0x3A;rSPCON1=0x22; rSPPIN0=0x03; rSPPIN1=0x03; rGPECON = rGPECON & (0xFC20)|(0xa820);rGPGCON = rGPGCON & 0xFCF3

204、 | 0xFCF1;rGPGDAT = rGPGCON & 1;/使使GPG0输出输出0INTMOD &=(122);INTMSK &=(122);pISR_SPI0=(U32)spi0_int;rSPTDAT1=tan_data1num1;rSPTDAT0=tan_data0num0;for(;num1100;)while(rSPSTA1&1=0); INTMSK |=(122); /关闭关闭SPI0中断中断rec_datanum1 = rSPRDAT1;num1+;if(num1100) rSPTDAT1=tan_data1num1;INTMSK &=(122); /打开打开SPI0中断中

205、断INTMSK |=(122); /关闭关闭SPI0中断中断rGPGDAT |= 1;/使使GPG0输出输出1,nSS1为高为高void _irq spi_int(void)rec_datanum0=rSPRDAT0;num0+;if(num100)rSPTDAT0 = tran_datanum0;SRCPND &= (122);/清除中断标志寄存器相应位清除中断标志寄存器相应位INTPND &= (122); /清除中断服务寄存器相应位清除中断服务寄存器相应位#define rSPTDAT0 (*(volatile unsigned *)0x59000010) /SPI0 Tx data#d

206、efine rSPRDAT0 (*(volatile unsigned *)0x59000014) /SPI0 Rx data#define rSPTDAT1 (*(volatile unsigned *)0x59000030) /SPI1 Tx data#define rSPRDAT1 (*(volatile unsigned *)0x59000034) /SPI1 Rx data4.9 SPI串行总线接口串行总线接口主要内容主要内容1、概述、概述2、结构与工作原理、结构与工作原理3、寄存器、寄存器4、应用方法、应用方法5、SPI应用举例应用举例重点:重点:工作原理时序;控制寄存器;应用工作

207、原理时序;控制寄存器;应用一、一、SPI接口概述接口概述SPI接口:接口:SPI(Serial Peripheral Interface,串行外设,串行外设接口接口)是)是Motorola公司开发的一种同步串行外设接口标准。公司开发的一种同步串行外设接口标准。SPI接口信号:接口信号:有有4个信号:数据发送、数据接收、时个信号:数据发送、数据接收、时钟和片选。在时钟信号的作用下,发送的同时,接收对方钟和片选。在时钟信号的作用下,发送的同时,接收对方发来的数据;也可以只发送、或者只接收。发来的数据;也可以只发送、或者只接收。SPI的波特率可的波特率可以达到以达到20Mb/s以上。以上。S3C24

208、10 ARM9有有2个个SPI接口,既可以作为主接口,既可以作为主SPI使用,使用,也可以作为从也可以作为从SPI使用。使用。主要特点:主要特点:与与SPI 协议协议 (ver. 2.11) 兼容;兼容;8位发送移位寄存器;位发送移位寄存器; 8位接收移位寄存器;位接收移位寄存器;8位预分频器;位预分频器;具有查询、中断、具有查询、中断、DMA传输模式。传输模式。二、二、S3C2410 SPI结构与工作原理结构与工作原理1、SPI结构结构SPI主要由主要由4部分构成:时钟分频器、发送移位寄存器、部分构成:时钟分频器、发送移位寄存器、接收移位寄存器、控制逻辑等。如下图所示。接收移位寄存器、控制逻

209、辑等。如下图所示。2、SPI设备系统组成设备系统组成系统可以多个系统可以多个SPI设备组成,任何一个设备都可以为主设备组成,任何一个设备都可以为主SPI,但是任一时刻只能有一个主,但是任一时刻只能有一个主SPI设备,并且主设备,并且主SPI设备设备发出时钟信号和片选控制信号,选择通信的从发出时钟信号和片选控制信号,选择通信的从SPI设备。如设备。如下图所示。下图所示。主主SPI设设备备从从SPI 1从从SPI 2从从SPI nSCKMOSIMISOnSS3、SPI工作时序工作时序下图为时序的一部分。下图为时序的一部分。图图(A)图图(B)Format CPOL和和CPHA第一位数据输出第一位数

210、据输出 其它位数据输出其它位数据输出 数据采样数据采样 ACPOL=0,CPHA=0 第第1个个SCK上升沿前上升沿前SCK下降沿下降沿SCK上升沿上升沿BCPOL=0,CPHA=1 第第1个个SCK上升沿上升沿SCK上升沿上升沿SCK下降沿下降沿ACPOL=1,CPHA=0 第第1个个SCK下降沿前下降沿前SCK上升沿上升沿SCK下降沿下降沿BCPOL=1,CPHA=1 第第1个个SCK下降沿下降沿SCK下降沿下降沿SCK上升沿上升沿三、三、SPI专用寄存器专用寄存器2个个UART,每个都有,每个都有6个专用寄存器,共个专用寄存器,共12个寄存器个寄存器Register Address R/

211、W Description Reset Value SPCONn0x590000x0 R/W SPI控制寄存器控制寄存器0x00SPSTAn0x590000x4 RSPI状态寄存器状态寄存器0x01SPPINn 0x590000x8 R/W SPI引脚控制寄存器引脚控制寄存器0x02SPPREn0x590000xC R/W SPI预分频寄存器预分频寄存器0x00SPTDATn0x590000x0R/WSPI数据发送寄存器数据发送寄存器0x00SPRDATn0x590000x4 RSPI数据接收寄存器数据接收寄存器0x001、SPI控制寄存器(控制寄存器(SPCON)Register Addre

212、ss R/W Description Reset Value SPCON00x59000000 R/W SPI0 控制寄存器控制寄存器0x00SPCON10x59000020 R/WSPI1 控制寄存器控制寄存器0x00字段名字段名 位位意意 义义 初值初值 SMOD6:5 SPI模式选择。模式选择。00:查询模式;:查询模式; 01:中断;:中断; 10:DMA模式;模式; 11:保留:保留00ENSCK4 时钟时钟SCK控制。控制。 0:禁止;:禁止;1:允许。:允许。0MSTR3 SPI主、从选择。主、从选择。 0:从:从SPI;1:主:主SPI0CPOL2 时钟极性选择。时钟极性选择。

213、0:高电平有效;:高电平有效;1:低:低0CPHA1 时钟相位选择。时钟相位选择。0:格式:格式A;1:格式:格式B0Tx Auto Garbage Data Mode Enable (TAGD)0 仅接收模式控制。仅接收模式控制。0:正常收发;:正常收发; 1:仅接收(此时:仅接收(此时(自动自动)发送任意数据)发送任意数据) 用于主用于主SPI仅接收,读取数据启动发送仅接收,读取数据启动发送0实验:从实验:从SPI仅接收时使仅接收时使TAGD=0,不向,不向SPTDAT写数据的情况写数据的情况2、SPI状态寄存器(状态寄存器(SPSTA)Register Address R/W Descr

214、iption Reset Value SPSTA00x59000004RSPI0 状态寄存器状态寄存器0x01SPSTA10x59000024 RSPI1 状态寄存器状态寄存器0x01字段名字段名 位位意意 义义 初值初值 reserved7:3 保保 留留Data Collision Error Flag (DCOL)2 数据写碰撞数据写碰撞(正在发送时写正在发送时写SPTDAT) 错误标志。错误标志。 0:无错;:无错;1:碰撞错误:碰撞错误0Multi Master Error Flag (MULF)1 多主多主SPI错误标志。错误标志。 0:无错;:无错;1:多主:多主SPI错误。错误

215、。0Transfer Ready Flag (REDY)0 收发就绪收发就绪标志标志。 0:未就绪;:未就绪; 1:收或发就绪。:收或发就绪。 写写SPTDAT后该位自动清后该位自动清013、SPI引脚控制寄存器(引脚控制寄存器(SPPIN)Register Address R/W Description Reset Value SPPIN00x59000008 R/WSPI0 引脚控制寄存器引脚控制寄存器0x02SPPIN10x59000028 R/WSPI1 引脚控制寄存器引脚控制寄存器0x02字段名字段名 位位意意 义义 初值初值 reserved7:3 保保 留留Multi Maste

216、r error detect Enable (ENMUL)2 引脚多主引脚多主SPI错误测试设置。错误测试设置。 0:禁测;:禁测;1:允许多主错误测试。:允许多主错误测试。 测试结果在测试结果在SPSTAn中的中的MULF位位0reserved1 该位应该为该位应该为11Master Out Keep(KEEP)0 1字节发完后字节发完后MOSI的控制与释放的控制与释放 0:释放;:释放;1:保持:保持MOSI原电平原电平04、SPI预分频寄存器(预分频寄存器(SPPRE)Register Address R/W Description Reset Value SPPRE00x5900000

217、C R/WSPI0 预分频寄存器预分频寄存器0x00SPPRE10x5900002C R/WSPI1 预分频寄存器预分频寄存器0x00字段名字段名 位位意意 义义 初值初值 Prescaler value7:0 预分频值预分频值波特率计算:波特率计算:Baud tate f f B = Pclk/2/( Prescaler value + 1 )Prescaler value = Pclk/2/f f B 1 提示:提示:SPI的波特率必须的波特率必须25MHz。5、SPI发送数据寄存器(发送数据寄存器(SPTDAT)Register Address R/W Description Reset

218、 Value SPTDAT00x59000010 R/WSPI0 发送数据寄存器发送数据寄存器0x00SPTDAT10x59000030 R/WSPI1 发送数据寄存器发送数据寄存器0x00字段名字段名 位位意意 义义 初值初值 Tx data7:0 SPI所发送的所发送的8位数据位数据0x00提示:提示:在同时双向传输时,从在同时双向传输时,从SPI设备必须先把所发送设备必须先把所发送的数据写到的数据写到“发送数据寄存器发送数据寄存器”SPTDATn中,然后再写主中,然后再写主SPI设备的设备的“发送数据寄存器发送数据寄存器”SPTDATn。6、SPI接收数据寄存器(接收数据寄存器(SPRD

219、AT)Register Address R/W Description Reset Value SPRDAT00x59000014RSPI0 接收数据寄存器接收数据寄存器0x00SPRDAT10x59000034 RSPI1 接收数据寄存器接收数据寄存器0x00字段名字段名 位位意意 义义 初值初值 Tx data7:0 SPI所接收的所接收的8位数据位数据0x00提示:提示:在同时双向传输时,启动发送后,应该先读取在同时双向传输时,启动发送后,应该先读取数据,然后再发送数据。数据,然后再发送数据。四、四、SPI应用方法应用方法1、查询方式操作步骤、查询方式操作步骤如果如果SPI控制寄存器控制

220、寄存器SPCON已经设置过,则写数据发已经设置过,则写数据发送寄存器送寄存器SPTDAT启动发送。查询方式操作步骤如下:启动发送。查询方式操作步骤如下:(1)设置预分频寄存器)设置预分频寄存器SPPRE;(2)设置控制寄存器)设置控制寄存器SPCON,并且为查询方式;,并且为查询方式;(3)设置一个)设置一个GPIO引脚,使选中的从引脚,使选中的从SPI设备的片选设备的片选信号信号nSS有效;有效;(4)发送数据:)发送数据:第一次发送:第一次发送:向数据发送寄存器向数据发送寄存器SPTDAT写数据。写数据。再发送:再发送:情况情况1只发不收:查询并确认只发不收:查询并确认Rx REDY为为1

221、,然后向数,然后向数据发送寄存器据发送寄存器SPTDAT写数据,再次启动发送;写数据,再次启动发送;情况情况2同时收发:查询并确认同时收发:查询并确认Rx REDY为为1,然后先读,然后先读取数据接收寄存器取数据接收寄存器SPRDAT中的数据,再向数据发送寄存中的数据,再向数据发送寄存器器SPTDAT写数据。写数据。(6)接收数据:)接收数据:一般方式(一般方式(同时收发,同时收发,TAGD=0):查询并确认):查询并确认Rx REDY为为1,然后先从数据接收寄存器中读取数据,再向数,然后先从数据接收寄存器中读取数据,再向数据发送寄存器中写数据(同上面情况据发送寄存器中写数据(同上面情况2)。

222、)。仅接收方式仅接收方式(TAGD=1):查询并确认):查询并确认Rx REDY为为1,然后从数据接收寄存器中读取数据。对于主然后从数据接收寄存器中读取数据。对于主SPI设备,读取设备,读取数据的同时启动一次发送(从数据的同时启动一次发送(从SPI设备发送)。设备发送)。(7)设置)设置GPIO引脚,使选中的从引脚,使选中的从SPI设备的片选信号设备的片选信号nSS无效,结束传输。无效,结束传输。2、DMA模式发送模式发送对对SPI的的DMA模式发送操作步骤如下:模式发送操作步骤如下:(1)设置预分频寄存器)设置预分频寄存器SPPRE;(2)设置控制寄存器)设置控制寄存器SPCON,并且设为,

223、并且设为DMA模式;模式;(3)SPI请求请求DMA服务;服务;(4)DMA发送发送1字节数据给字节数据给SPI;(5)SPI接口发送数据;接口发送数据;(6)返回到()返回到(3),直到),直到DMA的计数器为的计数器为0。3、DMA模式接收模式接收SPI以以DMA模式接收操作步骤如下:模式接收操作步骤如下:(1)设置预分频寄存器)设置预分频寄存器SPPRE;(2)设置控制寄存器)设置控制寄存器SPCON,并且设为,并且设为DMA模式;模式;(3)将)将SPI设置为仅接收模式,设置引脚控制寄存器设置为仅接收模式,设置引脚控制寄存器SPPIN中的中的TAGD为为1;(4)当)当SPI接收到接收

224、到1字节数据后,请求字节数据后,请求DMA服务;服务;(5)DMA从从SPI读取数据;读取数据;(6)SPI自动启动一次无用数据自动启动一次无用数据(0xFF)的发送;的发送;(7)返回到()返回到(4),直到),直到DMA的计数器为的计数器为0;(8)设置控制寄存器)设置控制寄存器SPCON,改设为其它模式,如查,改设为其它模式,如查询、中断模式;询、中断模式;(9)如果)如果Rx REDY被设置为被设置为1,则需要读取最后接收,则需要读取最后接收的数据。的数据。注意:注意:DMA第第1次接收的是数据的无效的。次接收的是数据的无效的。4、 SPI从设备以格式从设备以格式B接收的问题接收的问题

225、当当SPI从设备以格式从设备以格式B接收,接收,DMA的读信号比数据接收的读信号比数据接收的锁存信号早,在数据未锁存之前,读信号就出现了。因的锁存信号早,在数据未锁存之前,读信号就出现了。因此使用此使用DMA模式不能够正确接收。如下图所示。模式不能够正确接收。如下图所示。对于中断和查询模式,可以延时半个时钟,能够正确对于中断和查询模式,可以延时半个时钟,能够正确读取数据。读取数据。五、五、SPI接口应用举例接口应用举例把把S3C2410的的SPI0设为主设备,同时把设为主设备,同时把SPI1设为从设备,设为从设备,将二者的将二者的MOSI、MISO交叉相连,二者的交叉相连,二者的SCL对连,对

226、连, 用用GPG0引脚控制引脚控制nSS1。编写程序,。编写程序, SPI0用中断方式、用中断方式、 SPI1用查询方式,采用格式用查询方式,采用格式B、1Mb/s的波特率,的波特率,SPI0和和SPI1在在发送的同时接收数据,双方都发送、接收发送的同时接收数据,双方都发送、接收100个字节的数据。个字节的数据。设系统设系统Pclk=50MHz。解:解:(1)SPI计算预分频值:计算预分频值:由由 Baud tate = Pclk/2/( Prescaler value + 1 )Prescaler value = Pclk/2/Baud tate 1=24(2)SPI控制寄存器值控制寄存器值

227、SPCON0=0b 01 1 1 0 1 0 = 0x3A 含义:中断模式、使用时钟、主设备、含义:中断模式、使用时钟、主设备、0极性、格式极性、格式B、一般收发传输。一般收发传输。SPCON1=0b 01 0 0 0 1 0 = 0x22 含义:中断、不用时钟、从设备、含义:中断、不用时钟、从设备、0极性、格式极性、格式B、收发、收发(3)SPI引脚控制寄存器引脚控制寄存器SPPIN0=0b 0 1 1 = 0x03含义:不检测多主错误、保留含义:不检测多主错误、保留1、输出引脚保持输出。、输出引脚保持输出。SPPIN1=0b 0 1 1 = 0x03(4)SPI引脚配置引脚配置GPECON

228、=0b * * 10 10 10 * 先清先清0:&(0xFC20);再设置:;再设置:|(0xA820)GPGCON=0b 11 11 11 * 11 11 * 01 先清先清0:&0xFCF3);再设置:;再设置:|(0xFCF1)SPI0引脚引脚29282726252423222120GPECON*101010*CLK0MOSI0MISO0SPI0引脚引脚 15 14 13 12 11 109876543210GPGCON111111*1111*01CLK1 MOSI1MISO1*nSS1nSS0*输出输出(4)中断寄存器设置)中断寄存器设置中断模式寄存器:中断模式寄存器:INTMOD

229、&=(122)INT_UART2位于第位于第15位,将位,将UART2设置为设置为IRQ中断中断中断屏蔽寄存器:中断屏蔽寄存器:INTMSK&= (122)中断优先级寄存器中断优先级寄存器PRIORITY:不设置不设置,用复位值,用复位值0x7F,优先级为循环方式。,优先级为循环方式。(5)在中断服务程序中对寄存器的操作)在中断服务程序中对寄存器的操作清除中断标志寄存器相应位:清除中断标志寄存器相应位:SRCPND&= (122)清除中断服务寄存器相应位:清除中断服务寄存器相应位:INTPND&= (122)第第17讲到此讲到此#include 2410header.hvoid Main(vo

230、id) sysinit(); while(1) Uart_Printf(n 2410 Board SPI TEST!n); Test_SPI( ); char tran_data0100, rec_data0100, num0=0;char tran_data1100, rec_data1100, num1=0;voidTest_SPI(void)rSPPRE0=24; rSPPRE1=24;rSPCON0=0x3A;rSPCON1=0x22; rSPPIN0=0x03; rSPPIN1=0x03; rGPECON = rGPECON & (0xFC20)|(0xa820);rGPGCON =

231、 rGPGCON & 0xFCF3 | 0xFCF1;rGPGDAT = rGPGCON & 1;/使使GPG0输出输出0INTMOD &=(122);INTMSK &=(122);pISR_SPI0=(U32)spi0_int;rSPTDAT1=tan_data1num1;rSPTDAT0=tan_data0num0;for(;num1100;)while(rSPSTA1&1=0); INTMSK |=(122); /关闭关闭SPI0中断中断rec_datanum1 = rSPRDAT1;num1+;if(num1100) rSPTDAT1=tan_data1num1;INTMSK &=(1

232、22); /打开打开SPI0中断中断INTMSK |=(122); /关闭关闭SPI0中断中断rGPGDAT |= 1;/使使GPG0输出输出1,nSS1为高为高void _irq spi_int(void)rec_datanum0=rSPRDAT0;num0+;if(num100)rSPTDAT0 = tran_datanum0;SRCPND &= (122);/清除中断标志寄存器相应位清除中断标志寄存器相应位INTPND &= (122); /清除中断服务寄存器相应位清除中断服务寄存器相应位#define rSPTDAT0 (*(volatile unsigned *)0x59000010

233、) /SPI0 Tx data#define rSPRDAT0 (*(volatile unsigned *)0x59000014) /SPI0 Rx data#define rSPTDAT1 (*(volatile unsigned *)0x59000030) /SPI1 Tx data#define rSPRDAT1 (*(volatile unsigned *)0x59000034) /SPI1 Rx data4.10 I2C(IIC)串行总线接口串行总线接口主要内容主要内容1、概述、概述2、结构与工作原理、结构与工作原理3、寄存器、寄存器4、应用方法、应用方法5、IIC应用举例应用举例

234、重点:重点:工作原理时序;控制寄存器;应用工作原理时序;控制寄存器;应用一、概一、概 述述 IIC总线的产生和应用:总线的产生和应用:IIC总线是总线是PHILIPS公司开发的公司开发的一种串行总线。一种串行总线。IIC总线应用越来越广泛,现在在很多器件总线应用越来越广泛,现在在很多器件上都配置有上都配置有IIC总线接口,如总线接口,如EEPROM、时钟芯片等。、时钟芯片等。IIC总线信号:总线信号:为两线,一个能够双向传输的数据线为两线,一个能够双向传输的数据线SDA、另一个能够双向传输的时钟线另一个能够双向传输的时钟线SCL。是信号线最少的串行总。是信号线最少的串行总线。线。S3C2410

235、的的IIC总线的特点:总线的特点:(1)有一个)有一个IIC总线接口。总线接口。(2) IIC总线的速度:可以标准速度传输(总线的速度:可以标准速度传输(100kb/s),),也可以高速传输(高达也可以高速传输(高达400kb/s)。)。(3)可以查询方式和中断方式工作。)可以查询方式和中断方式工作。(4)可以主设备身份传输,也可以从设备身份传输,因)可以主设备身份传输,也可以从设备身份传输,因此共有此共有4种操作模式:种操作模式:主机发送模式、主机接收模式主机发送模式、主机接收模式从机发送模式、从机接收模式从机发送模式、从机接收模式二、二、S3C2410的的IIC结构与工作原理结构与工作原理

236、1、S3C2410的的IIC结构结构S3C2410的的IIC主要有主要有5部分构成:数据收发寄存器、数部分构成:数据收发寄存器、数据移位寄存器、地址寄存器、时钟发生器、控制逻辑等部据移位寄存器、地址寄存器、时钟发生器、控制逻辑等部分。如下图所示。分。如下图所示。状态寄存器状态寄存器IIC控制逻辑控制逻辑控制寄存器控制寄存器地址寄存器地址寄存器分分频频器器数据收发寄存器数据收发寄存器移位寄存器移位寄存器比比较较器器SDASCLPclk片内数据总线片内数据总线2、IIC总线系统组成总线系统组成IIC总线是多主系统:系统可以有多个总线是多主系统:系统可以有多个IIC节点设备组成,节点设备组成,并且可

237、以是多主系统,任何一个设备都可以为主并且可以是多主系统,任何一个设备都可以为主IIC;但是任;但是任一时刻只能有一个主一时刻只能有一个主IIC设备,设备,IIC具有总线仲裁功能,保证具有总线仲裁功能,保证系统正确运行。系统正确运行。主主IIC设备发出时钟信号、地址信号和控制信号,选择通设备发出时钟信号、地址信号和控制信号,选择通信的从信的从IIC设备和控制收发。设备和控制收发。系统要求:(系统要求:(1)各个节点设备必须具有)各个节点设备必须具有IIC接口功能;接口功能;(2)各个节点设备必须共地;()各个节点设备必须共地;(3)两个信号线必须接上拉)两个信号线必须接上拉电阻。如下图所示。电阻

238、。如下图所示。IIC 1IIC 2IIC nSCLSDA主主IIC+Vcc上拉电阻上拉电阻3、IIC总线的工作原理总线的工作原理(1)IIC总线对数据线上信号的定义:总线对数据线上信号的定义:1)总线空闲状态:)总线空闲状态:时钟信号线和数据信号线均为高电平。时钟信号线和数据信号线均为高电平。2)起始信号:)起始信号:即启动一次传输,时钟信号线是高电平时,即启动一次传输,时钟信号线是高电平时,数据信号线由高变低。数据信号线由高变低。3)停止信号:)停止信号:即结束一次传输,时钟信号线是高电平时,即结束一次传输,时钟信号线是高电平时,数据信号线由低变高。数据信号线由低变高。SDASCL起始信号起

239、始信号结束信号结束信号数据位信号数据位信号数据位数据位4)数据位信号:)数据位信号:时钟信号线是低电平时,可以改变数据时钟信号线是低电平时,可以改变数据信号线电位;时钟信号线是高电平时,应保持数据信号线上信号线电位;时钟信号线是高电平时,应保持数据信号线上电位不变,即时钟是高电平时数据有效。电位不变,即时钟是高电平时数据有效。5)应答信号:)应答信号:占占1位,数据接收者接收位,数据接收者接收1字节数据后,应字节数据后,应向数据发出者发送一应答信号。低电平为应答,继续发送;向数据发出者发送一应答信号。低电平为应答,继续发送;高电平为非应答,结束发送。高电平为非应答,结束发送。6)控制位信号:)

240、控制位信号:占占1位,主位,主IIC设备发出的读写控制信号,设备发出的读写控制信号,高为读、低为写(对主高为读、低为写(对主IIC设备而言)。控制位在寻址字节中。设备而言)。控制位在寻址字节中。SDASCL起始信号起始信号结束信号结束信号数据位信号数据位信号数据位数据位7)地址信号:)地址信号:为从机地址,占为从机地址,占7位,如下表所示,称位,如下表所示,称之为之为“寻址字节寻址字节”,各字段含义如下:,各字段含义如下:器件地址(器件地址(DA3-DA0):):是是IIC总线接口器件固有的地总线接口器件固有的地址编码,由器件生产厂家给定。如址编码,由器件生产厂家给定。如IIC总线总线EEPR

241、OM AT24C的器件地址为的器件地址为1010等。等。引脚地址(引脚地址(A2、A1、A0):):由由IIC总线接口器件的地址总线接口器件的地址引脚引脚A2、A1、A0的高低来确定,接电源者为的高低来确定,接电源者为1,接地者为,接地者为0。读写控制位(读写控制位(R/ W):):1表示主设备读,表示主设备读,0表示主设备写。表示主设备写。7位地址和读写控制位组成位地址和读写控制位组成1个字节。个字节。D7D6D5D4D3D2D1D0DA3DA2DA1DA0A2A1A0R/ W(2)IIC总线数据传输格式总线数据传输格式1)一般格式:)一般格式:2)主控制器写操作格式:)主控制器写操作格式:

242、红色红色起始信号起始信号S、地址信号、控制信号、地址信号、控制信号W、各个数据、结、各个数据、结束信号束信号P,均为主均为主IIC设备发送设备发送、从、从IIC设备接收;黑色的应答设备接收;黑色的应答信号信号A/A为从为从IIC设备发送、主设备发送、主IIC设备接收。设备接收。3)主控制器读操作格式:)主控制器读操作格式:红色的信号均为主红色的信号均为主IIC设备发送设备发送、从、从IIC设备接收;黑色的设备接收;黑色的信号均为从信号均为从IIC设备发送、主设备发送、主IIC设备接收。设备接收。S 从从IIC地址地址(7位位) R/W A 传输数据传输数据 A PS 从从IIC地址地址 W A

243、 数据数据1 A 数据数据2 A 数据数据n A/A PS 从从IIC地址地址 R A 数据数据1 A 数据数据2 A 数据数据n A P4)主控制器读)主控制器读/写操作格式:写操作格式:由于在一次传输过程中要改变数据的传输方向,因此由于在一次传输过程中要改变数据的传输方向,因此起始信号和寻址字节都要重复一次起始信号和寻址字节都要重复一次,而中间可以不要结束,而中间可以不要结束信号。信号。在一次传输中,可以有多次启动信号。在一次传输中,可以有多次启动信号。 数据数据1 A 数据数据2 A 数据数据3 A 数据数据m A/A PS 从从IIC地址地址 R A 数据数据1 A 数据数据2 A A

244、 rS 从地址从地址 W A(3)读写操作)读写操作 在发送器模式下在发送器模式下,数据被发送之后,数据被发送之后,IIC 总线接口会等总线接口会等待直到待直到 IICDS(IIC 数据移位寄存数据移位寄存 器)被程序写入新的数器)被程序写入新的数据。据。在新的数据被写入之前,在新的数据被写入之前,SCL 线都被拉低线都被拉低。新的数据。新的数据写入之后,写入之后, SCL 线被释放线被释放。S3C2410X 可以利用中断来判断当前数据字节是否已经可以利用中断来判断当前数据字节是否已经完全送出。在完全送出。在 CPU 接收到中断请求后,在中断处理中再次接收到中断请求后,在中断处理中再次将下一个

245、新的数据写入将下一个新的数据写入 IICDS,如此循环。,如此循环。 在接收模式下在接收模式下,数据被接收到后,数据被接收到后,IIC 总线接口将等待总线接口将等待直到直到 IICDS 寄存器被程序读出。寄存器被程序读出。 在数据被在数据被读出之前读出之前,SCL 线保持低电平线保持低电平。新的数据从。新的数据从读出之后读出之后,SCL 线才释放线才释放。S3C2410X 也利用中断来判别是否接收到了新的数据。也利用中断来判别是否接收到了新的数据。CPU 收到中断请求之后,处理程序将从收到中断请求之后,处理程序将从 IICDS 读取数据。读取数据。 (4)总线仲裁)总线仲裁 总线仲裁发生在两个

246、主总线仲裁发生在两个主IIC设备中。如果一个设备中。如果一个主设备欲使用总线,而测得主设备欲使用总线,而测得SDA为低电平,则该主为低电平,则该主设备仲裁不能够使用总线启动传输。这个仲裁过程设备仲裁不能够使用总线启动传输。这个仲裁过程会延长,直到信号线会延长,直到信号线SDA变为高电平。变为高电平。每次操作都要进行仲裁。每次操作都要进行仲裁。三、三、IIC专用寄存器专用寄存器S3C2410有有4个专用寄存器个专用寄存器Register Address R/W Description Reset Value IICCON0x54000000 R/W IIC总线控制寄存器总线控制寄存器0x0XII

247、CSTAT0x54000004 R/WIIC总线控制总线控制/状态寄存状态寄存器器0x0IICADD 0x54000008 R/W IIC总线地址寄存器总线地址寄存器0xXXIICDS0x5400000C R/W IIC数据发送数据发送/接收寄存接收寄存器器0xXX1、IIC控制寄存器(控制寄存器(IICCON)字段名字段名 位位意意 义义 初值初值 Acknowledgegeneration7 应答使能。应答使能。0:禁止应答;:禁止应答;1:自动应答:自动应答 应答电平:应答电平:Tx时为高;时为高;Rx时为低时为低00Tx clock sourceselection6 发送时钟分频选择。

248、发送时钟分频选择。 0:IICCLK = f f PCLK /16; 1:IICCLK = f f PCLK /5120Tx/Rx Interrupt5 收发中断控制位。收发中断控制位。0:禁止;:禁止;1:允许:允许0Interrupt Pending flag4 中断标志位。中断标志位。读:读:0无,无,1示有中断请求示有中断请求 写:写写:写0清除中断标志,写清除中断标志,写1不操作不操作0Transmitclock value3:0 发送时钟预分频值发送时钟预分频值。 Tx clock = IICCLK/(IICCON3:0+1)01、IIC控制寄存器(续)控制寄存器(续)说明:说明:

249、(1)应答使能问题:一般情况下为使能;在对)应答使能问题:一般情况下为使能;在对EEPROM读最后读最后1个数据前可以禁止应答,便于产生结束信号。个数据前可以禁止应答,便于产生结束信号。(2)中断事件:)中断事件:1)完成收发;)完成收发;2)地址匹配;)地址匹配;3)总线仲)总线仲裁失败。裁失败。(3)中断控制位问题:设为中断控制位问题:设为0时,中断标志位不能正确操时,中断标志位不能正确操作,故总设为作,故总设为1。(4)时钟预分频问题:当分频位选择为)时钟预分频问题:当分频位选择为0时,预分频值必时,预分频值必须大于须大于1。2、IIC控制状态寄存器(控制状态寄存器(IICSTAT)字段

250、名字段名 位位意意 义义 初值初值 Mode selection7:6 工作模式选择。工作模式选择。 00:从收;:从收; 01:从发:从发 10:主收;:主收; 11:主发:主发00Busy / STARTSTOP condition5 忙状态忙状态/启、停控制启、停控制。读:。读:1示忙;示忙;0示闲示闲 写:写:0产生结束信号,产生结束信号,1产生启动信号产生启动信号0Serial output4 数据发送控制数据发送控制。0:禁止;:禁止;1:允许发送:允许发送0Arbitration Status flag3 仲裁状态标志。仲裁状态标志。0:仲裁成功;:仲裁成功; 1:仲裁失败(因为

251、在连续:仲裁失败(因为在连续I/O中)中)0Address-as-slavestatus flag2 从地址匹配状态。从地址匹配状态。 0:与:与IICADD不匹配不匹配 1:匹配。在收到:匹配。在收到SART/STOP时清时清00Address zerostatus flag1 地址状态标志。地址状态标志。 0:收到的为非:收到的为非0地址地址1:收到:收到0地址。在收到地址。在收到SART/STOP时清时清00Last-received bitstatus flag0 最后收到位状态。最后收到位状态。0:最后位为:最后位为0,收到,收到 ACK; 1:最后位为:最后位为1,未收到,未收到A

252、CK。02、IIC控制状态寄存器(续)控制状态寄存器(续)字段名字段名 位位意意 义义 初值初值 Mode selection7:6 工作模式选择。工作模式选择。 00:从收;:从收; 01:从发:从发 10:主收;:主收; 11:主发:主发00Busy / STARTSTOP condition5 忙状态忙状态/启、停控制启、停控制。读:。读:1示忙;示忙;0示闲示闲 写:写:0产生结束信号,产生结束信号,1产生启动信号产生启动信号0Serial output4 数据发送控制数据发送控制。0:禁止;:禁止;1:允许发送:允许发送0 IICSTAT控制字:控制字:启动主设备发送:启动主设备发送

253、:0xF0;结束主设备发送:;结束主设备发送:0xD0启动主设备接收:启动主设备接收:0xB0;结束主设备接收:;结束主设备接收:0x90第第18讲到此讲到此3、IIC地址寄存器(地址寄存器(IICADD)Register Address R/W Description Reset Value IICADD0x54000008 R/W地址寄存器地址寄存器0xXX字段名字段名 位位意意 义义 初值初值 Slave address7:1 7位从地址。位从地址。0xXXNot mapped0 不用不用-说明:说明:(1)对从设备,该地址有意义,对主设备其值无意义。)对从设备,该地址有意义,对主设备其

254、值无意义。(2)只有在不发送数据时(数据传输控制位)只有在不发送数据时(数据传输控制位IICSTAT4 =0)才能对其写;任何时间都可以读。)才能对其写;任何时间都可以读。4、IIC数据发送数据发送/接收寄存器(接收寄存器(IICDS)Register Address R/W Description Reset Value IICADD0x5400000C R/W 数据发送数据发送/接收移位寄存器接收移位寄存器0xXX字段名字段名 位位意意 义义 初值初值 Data shift7:0 8位移位接收或移位发送的数据位移位接收或移位发送的数据0xXX说明:说明:(1)在本设备接收时,对其作读操作得

255、到对方发来的数)在本设备接收时,对其作读操作得到对方发来的数据。任何时间都可以读。据。任何时间都可以读。(2)在本设备发送时,对其写操作,将数据发向对方。)在本设备发送时,对其写操作,将数据发向对方。(3)欲发送数据,必须使数据传输控制位)欲发送数据,必须使数据传输控制位IICSTAT4 =1才能对其写。才能对其写。四、四、IIC操作方法操作方法开开 始始设置设置IICCON从地址写入从地址写入IICDS写写0xF0到到IICSTAT主机发送数据主机发送数据ACK、产生中断、产生中断要停止?要停止?等待停止位起作用等待停止位起作用清除中断标志清除中断标志清除中断标志清除中断标志发送数据写入发送

256、数据写入IICDS写写0xD0到到IICSTAT结结 束束YN写写SART启动传输启动传输写写STOP结束传输结束传输1、主主模模式式发发送送流流程程2、主主模模式式接接收收流流程程开开 始始设置设置IICCON从地址写入从地址写入IICDS写写0xB0到到IICSTAT主机发送寻址字节主机发送寻址字节ACK、产生中断、产生中断要停止?要停止?等待停止位起作用等待停止位起作用清除中断标志清除中断标志清除中断标志清除中断标志从从IICDS中读数据中读数据写写0x90到到IICSTAT结结 束束YN写写SART启动传输启动传输写写STOP结束传输结束传输主机发送数据主机发送数据五、五、IIC接口应

257、用举例接口应用举例例:试编写一程序,用例:试编写一程序,用S3C2410的的IIC接口对串行接口对串行EEPROM(IIC接口)进行读接口)进行读/写操作,写入一组数据,然写操作,写入一组数据,然后读出并显示出来,检验是否正确。后读出并显示出来,检验是否正确。分析:分析:S3C2410的的IIC为主设备,为主设备,EEPROM的的IIC为从为从设备,进行的操作为主设备写、和主设备读。设备,进行的操作为主设备写、和主设备读。解:解:(1)设置)设置IIC控制寄存器控制寄存器1)收发传输:)收发传输:IICCON=0b 1 0 1 0 1111 = 0xAF 含义:含义:应答使能应答使能、时钟分频

258、为、时钟分频为 IICCLK = f f PCLK /16 、中断使能中断使能、清除中断标志、清除中断标志、预分频值取预分频值取15。2)接收结束传输:)接收结束传输:IICCON=0b 0 0 1 0 1111 = 0x2F 含义:含义:禁止应答(非应答)禁止应答(非应答)、时钟分频为、时钟分频为IICCLK = f f PCLK /16 、中断使能中断使能、清除中断标志、清除中断标志、预分频预分频值取值取15。(2)IIC控制状态寄存器控制状态寄存器1)主模式发送、启动传输)主模式发送、启动传输IICSTAT=0b 11 1 1 0 0 0 0 = 0xF0含义:含义:主设备发送主设备发送

259、、启动传输、启动传输、输出使能输出使能、低、低4位为状态位为状态2)主模式发送、结束传输)主模式发送、结束传输IICSTAT=0b 11 0 1 0 0 0 0 = 0xD0含义:主设备发送、含义:主设备发送、结束传输结束传输、输出使能、输出使能、低低4位为状态位为状态3)主模式接收、启动传输)主模式接收、启动传输IICSTAT=0b 10 1 1 0 0 0 0 = 0xB0含义:含义:主设备接收主设备接收、启动传输、启动传输、输出使能输出使能、低、低4位为状态位为状态4)主模式接收、结束传输)主模式接收、结束传输IICSTAT=0b 10 0 1 0 0 0 0 = 0x90含义:主设备接

260、收、含义:主设备接收、结束传输结束传输、输出使能、输出使能、低低4位为状态位为状态(3)地址寄存器设置)地址寄存器设置1)S3C2410地址寄存器:地址寄存器:作为从设备地址为作为从设备地址为0x10(作为主设备无意义)(作为主设备无意义)2)EEPROM芯片地址:芯片地址:作为从设备地址为作为从设备地址为0xA0(4)寻址字节值)寻址字节值所寻从设备地址所寻从设备地址+操作控制命令(操作控制命令(R/W):):1)主设备发送:)主设备发送: 0xA02)主设备接收:)主设备接收: 0xA1#include #include 2410addr.h#include 2410lib.h#inclu

261、de def.h“U32 _iicStatus;1、IIC控制寄存器(控制寄存器(IICCON)字段名字段名 位位意意 义义 初值初值 Acknowledgegeneration7 应答使能。应答使能。0:禁止应答;:禁止应答;1:自动应答:自动应答 应答电平:应答电平:Tx时为高;时为高;Rx时为低时为低00Tx clock sourceselection6 发送时钟分频选择。发送时钟分频选择。 0:IICCLK = f f PCLK /16; 1:IICCLK = f f PCLK /5120Tx/Rx Interrupt5 收发中断控制位。收发中断控制位。0:禁止;:禁止;1:允许:允许

262、0Interrupt Pending flag4 中断标志位。中断标志位。读:读:0无,无,1示有中断请求示有中断请求 写:写写:写0清除中断标志,写清除中断标志,写1不操作不操作0Transmitclock value3:0 发送时钟预分频值发送时钟预分频值。 Tx clock = IICCLK/(IICCON3:0+1)0void Test_Iic(void) unsigned int i,j; static U8 data256; Uart_Printf( IIC Test using AT24C02 n); rGPEUP |= 0xc000; /Pull-up disable rGPE

263、CON |= 0xa00000; /GPE15:IICSDA /GPE14:IICSCL rIICCON = (17) | (06) | (15) | (0xf); rIICADD = 0x10; /2410 slave address = 7:1 rIICSTAT = 0x10; /IIC bus data output /enable(Rx/Tx)Uart_Printf(Write test data into AT24C02(0-255)n); for(i=0;i256;i+) _Wr24C02(0xa0,(U8)i,i); for(i=0;i256;i+) datai = 0; Uar

264、t_Printf(nRead test data from AT24C02n); for(i=0;i256;i+) _Rd24C02(0xa0,(U8)i,&(datai); 存储器地址存储器地址所写数据所写数据存储器地址存储器地址存储数据存储数据 for(i=0;i16;i+) for(j=0;j16;j+) Uart_Printf(%2x ,datai*16+j); Uart_Printf(n); void _Wr24C02(U8 slvAddr,U8 addr,U8 data)rIICDS = slvAddr; /发送从设备地址发送从设备地址 rIICSTAT = 0xf0; /启动发送

265、启动发送 while(rIICCON & 0x10=0); /查询查询Tx中断状态中断状态 rIICDS = addr; /发送存储器地址发送存储器地址 rIICCON = 0xaf; /清除中断状态清除中断状态 while(rIICCON & 0x10=0); /查询中断状态查询中断状态rIICDS = data;/发送数据发送数据 rIICCON = 0xaf; /清除中断状态清除中断状态. while(rIICCON & 0x10=0); /查询中断状态查询中断状态 while(rIICSTAT&1); /等待应答等待应答ACK rIICSTAT = 0xd0; /Stop(Write)

266、 Delay(1); /等待结束生效等待结束生效4.11 实时钟实时钟RTC主要内容主要内容概述概述结构结构寄存器寄存器应用举例应用举例重点:重点:(1)控制寄存器;)控制寄存器;(2)RTC应用应用一、概一、概 述述 RTC(实时时钟)功能:(实时时钟)功能:通常采用通常采用RTC 来来提供可靠的系统时间,包括时、分、秒、和年、月、提供可靠的系统时间,包括时、分、秒、和年、月、日等;而且要求在系统处于关机状态下它也能够正日等;而且要求在系统处于关机状态下它也能够正常工作(后备电池供电),它的外围也不需要太多常工作(后备电池供电),它的外围也不需要太多的辅助电路,典型的就是只需要一个高精度的的

267、辅助电路,典型的就是只需要一个高精度的32.768KHz 晶振和电阻电容等晶振和电阻电容等。 RTC应用:应用:现在很多电子产品都有现在很多电子产品都有RTC功能,功能,如电子日历(台式、壁式等)、手持数码产品(手如电子日历(台式、壁式等)、手持数码产品(手机、电子词典、各种学习机、照相机、摄像机等)、机、电子词典、各种学习机、照相机、摄像机等)、电子计量仪表(电度表、燃气表、水表等)、家用电子计量仪表(电度表、燃气表、水表等)、家用电器(电视机、机顶盒、电器(电视机、机顶盒、DVD等)等,应用非常广等)等,应用非常广泛。泛。 RTC芯片:芯片:在上面所说产品,都有在上面所说产品,都有RTC功

268、能功能的芯片,有的产品使用独立的的芯片,有的产品使用独立的RTC芯片,如壁式电芯片,如壁式电子日历、电子计量仪表等;有的产品使用的不是独子日历、电子计量仪表等;有的产品使用的不是独立的立的RTC芯片,而是芯片,而是RTC功能集成到了其它的芯片功能集成到了其它的芯片中,如手持数码产品等。中,如手持数码产品等。S3C2410的的RTC的特点:的特点:时钟数据采用时钟数据采用BCD 编码编码时钟数据有:秒、分、时、日、月、年、星期时钟数据有:秒、分、时、日、月、年、星期能够对闰年的年月日进行自动处理能够对闰年的年月日进行自动处理具有告警功能,当系统处于关机状态时,能产生告警中具有告警功能,当系统处于

269、关机状态时,能产生告警中断断具有独立的电源输入具有独立的电源输入提供毫秒级时钟中断,该中断可用于作为嵌入式操作系提供毫秒级时钟中断,该中断可用于作为嵌入式操作系统的内核时钟统的内核时钟二、二、S3C2410的的RTC结构结构1、S3C2410的的RTC结构结构S3C2410的的RTC主要有主要有5部分构成:时钟发生器、部分构成:时钟发生器、节拍发生器、时间与日期计数器(时分秒年月日星节拍发生器、时间与日期计数器(时分秒年月日星期)、报警发生器、控制逻辑等部分。如下图所示。期)、报警发生器、控制逻辑等部分。如下图所示。XTAL1XTAL2节拍发生器节拍发生器时钟发生器时钟发生器时分秒计数器时分秒

270、计数器年年 月月 计计 数数 器器闰闰 年年 发发 生生 器器日星期计数器日星期计数器控控 制制 逻逻 辑辑时时钟钟分分频频器器报警发生器报警发生器RTCVDDPMWKUP ALMINTPWDN2、S3C2410 RTC的振荡电路的振荡电路S3C2410 RTC的只需外接的只需外接2个个20P左右的小电容、左右的小电容、32.768KHz的晶振即可。如下图所示。的晶振即可。如下图所示。三、三、RTC专用寄存器专用寄存器S3C2410的的RTC有有17个专用寄存器,均需用字节读写。个专用寄存器,均需用字节读写。下表为前下表为前10个,有个,有4个为控制寄存器,个为控制寄存器,6个为报警寄存器。个

271、为报警寄存器。RegisterAddress R/W Description Reset Value RTCCON0x57000040/3 R/W RTC控制寄存器控制寄存器0x0TICNT0x57000044/7 R/WRTC节拍计数器节拍计数器0x00RTCALM 0x57000050/3 R/W RTC报警控制寄存器报警控制寄存器0x00RTCRST0x5700006C/F R/WRTC循环复位寄存器循环复位寄存器0x0ALMSEC0x57000054/7 R/W 报警秒数寄存器报警秒数寄存器0x00ALMMIN 0x57000058/B R/W 报警分钟数寄存器报警分钟数寄存器0x00

272、ALMHOUR 0x5700005C/F R/W报警小时数寄存器报警小时数寄存器0x00ALMDAY0x57000060/3 R/W 报警天报警天(日日)数寄存器数寄存器0x01ALMMON 0x57000064/7 R/W 报警月数寄存器报警月数寄存器0x01ALMYEAR 0x57000068/B R/W报警年数寄存器报警年数寄存器0x00三、三、RTC专用寄存器专用寄存器S3C2410的的RTC有有17个专用寄存器,均需个专用寄存器,均需用字节读写。下表为用字节读写。下表为4个控制寄存器。个控制寄存器。RegisterAddress R/W Description ResetValue

273、RTCCON 0x57000040/3 R/W RTC控制寄存器控制寄存器0x0TICNT0x57000044/7 R/W RTC节拍计数器节拍计数器0x00RTCALM 0x57000050/3R/W RTC报警报警控制寄存器控制寄存器0x00RTCRST0x5700006C/FR/WRTC秒循环秒循环复位寄存器复位寄存器0x0本表本表6个寄存器:个寄存器:为报警日期、时间寄存器为报警日期、时间寄存器Register Address R/W Description ResetValue ALMSEC0x57000054/7 R/W 报警秒数寄存器报警秒数寄存器0x00ALMMIN0x5700

274、0058/B R/W 报警分钟数寄存器报警分钟数寄存器0x00ALMHOUR 0x5700005C/F R/W 报警小时数寄存器报警小时数寄存器0x00ALMDAY0x57000060/3 R/W 报警天报警天(日日)数寄存器数寄存器 0x01ALMMON 0x57000064/7 R/W 报警月数寄存器报警月数寄存器0x01ALMYEAR 0x57000068/B R/W报警年数寄存器报警年数寄存器0x00后后7个寄存器:个寄存器: 为日期、时间寄存器。为日期、时间寄存器。Register Address R/W Description ResetValue BCDSEC0x57000070

275、/3 R/W 秒当前值寄存器秒当前值寄存器 0xXXBCDMIN 0x57000074/7 R/W 分钟分钟当前值当前值寄存器寄存器0xXXBCDHOUR 0x57000078/B R/W小时小时当前值当前值寄存器寄存器0xXXBCDDAY 0x5700007C/FR/W 日日当前值当前值寄存器寄存器 0xXXBCDDATE 0x57000080/3 R/W 星期当前值星期当前值寄存器寄存器0xXXBCDMON 0x57000084/7 R/W 月月当前值当前值寄存器寄存器 0xXXBCDYEAR 0x57000088/B R/W 年当前值寄存器年当前值寄存器 0xXXRegisterAddr

276、ess R/W Description ResetValue RTCCON0x57000040(L)0x57000043(B)R/W(字节字节) RTC控制寄存器控制寄存器0x01、RTC控制寄存器(控制寄存器(RTCCON)字段名字段名 位位意意 义义 初值初值 CLKRST3 RTC时钟计数复位。时钟计数复位。 0:不复位;:不复位;1 = BCD计数复位。计数复位。0CNTSEL2 BCD计数选择。计数选择。0:合并:合并BCD计数;计数; 1 = 保留(单独的保留(单独的BCD计数器)计数器)0CLKSEL1 BCD时钟选择。时钟选择。 0:XTAL32768 1:用:用XTAL原值(

277、但只用于测试)原值(但只用于测试)0RTCEN0 RTC控制使能。控制使能。 0:失能;:失能; 1:使能:使能 指指BCD时间计数和读取操作可以被执行时间计数和读取操作可以被执行0RegisterAddress R/W Description Reset Value TICNT0x57000044(L)0x57000047(B)R/W(字节字节) RTC节拍时间节拍时间计数器计数器0x002、RTC节拍时间计数器(节拍时间计数器(TICNT)字段名字段名 位位意意 义义 初值初值 TICK INTENABLE7 节拍中断使能。节拍中断使能。 0:失能,:失能,1:使能:使能 。0TICK T

278、IME COUNT6:0 节拍时间计数值(节拍时间计数值(1127)。)。0000000说明:说明:这个计数器的值在内部减少,用户不能在工这个计数器的值在内部减少,用户不能在工作时读取这个计数器的值。作时读取这个计数器的值。 RegisterAddress R/W Description Reset Value RTCALM0x57000050(L)0x57000053(B)R/W(字节字节) RTC报警报警控制寄存器控制寄存器0x03、RTC报警控制寄存器(报警控制寄存器(RTCCON)3、RTC报警控制寄存器(报警控制寄存器(RTCCON)字段名字段名 位位意意 义义 初值初值 Reser

279、ved7 保留(为保留(为0)0ALMEN6 报警总使能位。报警总使能位。0:失能;:失能;1:使能:使能 0YEAREN5 年报警使能位。年报警使能位。0:失能;:失能;1:使能:使能0MONEN4 月报警使能位。月报警使能位。0:失能;:失能;1:使能:使能0DATEEN3 日报警使能位。日报警使能位。0:失能;:失能;1:使能:使能0HOUREN2 时报警使能位。时报警使能位。0:失能;:失能;1:使能:使能0MINEN1 分报警使能位。分报警使能位。0:失能;:失能;1:使能:使能0SECEN0 秒报警使能位。秒报警使能位。0:失能;:失能;1:使能:使能0RegisterAddres

280、s R/W Description Reset Value ALMSEC0x57000054(L)0x57000057(B)R/W(字节字节) 报警秒数报警秒数寄存器寄存器0x004、RTC报警秒数寄存器(报警秒数寄存器(ALMSEC)字段名字段名 位位意意 义义 初值初值 Reserved7 保留(为保留(为0)0ALMSECH6:4 报警时间秒十位,报警时间秒十位,BCD值。值。0 5000ALMSECL3:0 报警时间秒个位,报警时间秒个位,BCD值。值。0 90000第第19讲到此讲到此RegisterAddress R/W Description Reset Value ALMMIN

281、0x57000058(L)0x5700005B(B)R/W(字节字节) 报警分钟数报警分钟数寄存器寄存器0x005、报警时间分钟数寄存器(、报警时间分钟数寄存器(ALMMIN)字段名字段名 位位意意 义义 初值初值 Reserved7 保留(为保留(为0)0ALMMINH6:4 报警时间分钟十位,报警时间分钟十位, BCD值。值。0 5000ALMMINL3:0 报警时间分钟个位,报警时间分钟个位, BCD值。值。0 90000RegisterAddress R/W Description Reset Value ALMHOUR0x5700005C(L)0x5700005F(B)R/W(字节字

282、节) 报警小时报警小时寄存器寄存器0x006、报警时间小时数寄存器(、报警时间小时数寄存器(ALMHOUR)字段名字段名 位位意意 义义 初值初值 Reserved7:6 保留(为保留(为0)00ALMHOURH5:4 报警时间小时十位,报警时间小时十位, BCD值。值。0 200ALMHOURL3:0 报警时间小时个位,报警时间小时个位, BCD值。值。0 90000RegisterAddress R/W Description Reset Value ALMDATE0x57000060(L)0x57000063(B)R/W(字节字节) 报警日期报警日期天数寄存器天数寄存器0x017、RTC

283、报警天数寄存器(报警天数寄存器(ALMDATE)字段名字段名 位位意意 义义 初值初值 Reserved7:6 保留(为保留(为0)00ALMDATEH5:4 报警日期天数十位,报警日期天数十位, BCD值。值。0 300ALMDATEL3:0 报警日期天数个位,报警日期天数个位, BCD值。值。0 90001RegisterAddress R/W Description Reset Value ALMMON0x57000064(L)0x57000067(B)R/W(字节字节) 报警日期报警日期月数寄存器月数寄存器0x018、报警时间月数寄存器(、报警时间月数寄存器(ALMMON)字段名字段名

284、 位位意意 义义 初值初值 Reserved7:5 保留(为保留(为0)000ALMMONH4 报警日期月数十位,报警日期月数十位, BCD值。值。0 10ALMMONL3:0 报警日期月数个位,报警日期月数个位, BCD值。值。0 90001RegisterAddress R/W Description Reset Value ALMYEAR0x57000068(L)0x5700006B(B)R/W(字节字节) 报警年数报警年数寄存器寄存器0x009、报警时间年数寄存器(、报警时间年数寄存器(ALMYEAR)字段名字段名 位位意意 义义 初值初值 ALMYEARH7:4 报警日期年数十位,报

285、警日期年数十位, BCD值。值。0 90000ALMYEARL3:0 报警日期年数个位,报警日期年数个位, BCD值。值。0 90000说明:说明:年数的千位和百位应该是年数的千位和百位应该是20。RegisterAddress R/W Description Reset Value RTCRST0x5700006C(L)0x5700006F(B)R/W(字节字节) 秒循环复位秒循环复位寄存器寄存器0x0010、秒循环复位寄存器(、秒循环复位寄存器(RTCRST)字段名字段名 位位意意 义义 初值初值 Reserved7:4 保留(为保留(为0)000SRSTEN3 秒循环复位控制位。秒循环复

286、位控制位。 0:禁止;:禁止;1:允许:允许0SECCR2:0 秒循环进位边界。秒循环进位边界。 011:30秒;秒; 100:40秒;秒;101:50秒。秒。 00说明:说明:对于秒循环进位边界设为其它值,到对于秒循环进位边界设为其它值,到设定值只复位,但不会向分钟进位。设定值只复位,但不会向分钟进位。RegisterAddress R/W Description Reset Value BCDSEC0x57000070(L)0x57000073(B)R/W(字节字节) 当前时间当前时间秒数寄存器秒数寄存器-11、当前时间秒数寄存器(、当前时间秒数寄存器(BCDSEC)字段名字段名 位位意意

287、 义义 初值初值 Reserved7 保留(为保留(为0)-NOWSECH6:4 当前时间秒十位,当前时间秒十位, BCD值。值。0 5-NOWSECL3:0 当前时间秒个位,当前时间秒个位, BCD值。值。0 9-RegisterAddress R/W Description Reset Value BCDMIN0x57000074(L)0x57000077(B)R/W(字节字节) 当前时间当前时间分钟寄存器分钟寄存器-12、当前时间分钟寄存器(、当前时间分钟寄存器(BCDMIN)字段名字段名 位位意意 义义 初值初值 Reserved7 保留(为保留(为0)-NOWMINH6:4当前时间分

288、钟十位,当前时间分钟十位, BCD值。值。0 5-NOWMINL3:0当前时间分钟个位,当前时间分钟个位, BCD值。值。0 9-RegisterAddress R/W Description Reset Value BCDHOUR0x57000078(L)0x5700007B(B)R/W(字节字节) 当前时间当前时间小时寄存器小时寄存器-13、当前时间小时数寄存器(、当前时间小时数寄存器(BCDHOUR)字段名字段名 位位意意 义义 初值初值 Reserved7:6 保留(为保留(为0)-NOWHOURH5:4 当前时间小时十位,当前时间小时十位, BCD值。值。0 2-NOWHOURL3:

289、0 当前时间小时个位,当前时间小时个位, BCD值。值。0 9-RegisterAddress R/W Description Reset Value BCDDATE0x5700007C(L) 0x5700007F(B)R/W(字节字节) 当前日期当前日期天数寄存器天数寄存器-14、当前日期天数寄存器(、当前日期天数寄存器(BCDDATE)字段名字段名 位位意意 义义 初值初值 Reserved7:6 保留(为保留(为0)-NOWDATEH5:4 当前日期天数十位,当前日期天数十位, BCD值。值。0 3-NOWDATEL3:0 当前日期天数个位,当前日期天数个位, BCD值。值。0 9-Re

290、gisterAddress R/W Description Reset Value BCDDAY0x57000080(L)0x57000083(B)R/W(字节字节) 当前星期当前星期寄存器寄存器-15、当前星期寄存器(、当前星期寄存器(BCDDAY)字段名字段名 位位意意 义义 初值初值 Reserved7:3 保留(为保留(为0)-NOWDAY2:0 当前星期值。当前星期值。1 7-1:星期日;:星期日;2:星期一;:星期一;3:星期二;:星期二;4:星期三;:星期三;5:星期四;:星期四;6:星期五;:星期五;7:星期六:星期六RegisterAddress R/W Descriptio

291、n Reset Value BCDMON0x57000084(L)0x57000087(B)R/W(字节字节) 报警日期报警日期月数寄存器月数寄存器0x0116、当前日期月数寄存器(、当前日期月数寄存器(BCDMON)字段名字段名 位位意意 义义 初值初值 Reserved7:5 保留(为保留(为0)000NOWMONH4 当前日期月数十位,当前日期月数十位, BCD值。值。0 10NOWMONL3:0 当前日期月数个位,当前日期月数个位, BCD值。值。0 90001RegisterAddress R/W Description Reset Value BCDHOUR0x57000088(L

292、)0x5700008B(B)R/W(字节字节) 当前日期当前日期年数寄存器年数寄存器0x0017、当前日期年数寄存器(、当前日期年数寄存器(BCDYEAR)字段名字段名 位位意意 义义 初值初值 NOWYEARH7:4 当前日期年数十位,当前日期年数十位, BCD值。值。0 90000NOWYEARL3:0 当前日期年数个位,当前日期年数个位, BCD值。值。0 90000说明:说明:年数的千位和百位应该是年数的千位和百位应该是20四、四、S3C2410 RTC使用方法使用方法1、读、读/写寄存器写寄存器(1)设置允许读写:)设置允许读写:对寄存器对寄存器RTCCON 的的0 位写位写1 。(

293、2)显示时间、日期方法:)显示时间、日期方法:需要不断需要不断地从地从BCDSEC、BCDMIN、BCDHOUR、BCDDAY、BCDDATE、BCDMON、和、和BCDYEAR 寄存器读取数据,然后显示出来。寄存器读取数据,然后显示出来。 (3)可能会引起显示错误。)可能会引起显示错误。例如,假设用户在例如,假设用户在2006 年年12 月月31 日日23 点点59 分分59秒读取寄存器秒读取寄存器BCDYEAR 到到BCDSEC,在用户读取在用户读取BCDSEC 寄存器时,如果结果是寄存器时,如果结果是0,那么很有可能年、月、日、时、分已经变成,那么很有可能年、月、日、时、分已经变成了了2

294、007 年年1 月月1 日日0 时时0 分了,数据组合在一分了,数据组合在一起可能是错的。起可能是错的。读取的数据可能是:读取的数据可能是:1) 2006 年年12 月月1 日日0 时时0分分2) 2006 年年1 月月1 日日0 时时0 分分,等,等解决的方法:解决的方法:当读取到的当读取到的BCDSEC 等于等于0 时,时,用户应该再读取一次用户应该再读取一次BCDYEAR到到BCDSEC 的值。的值。 2、报警功能、报警功能RTC的报警寄存器的报警寄存器(RTCALM)决定了)决定了报警的使能、禁止、以及报警时间设定的条报警的使能、禁止、以及报警时间设定的条件。件。在在RTC报警的使能情

295、况下:报警的使能情况下:(1)在正常工作模式下)在正常工作模式下,报警中断报警中断(ALMINT)是激活状态是激活状态的。的。(2)在掉电模式下)在掉电模式下(PWDN信号有效),信号有效),电源管理唤醒电源管理唤醒信号(信号(PMWKUP)与)与报警中报警中断断(ALMINT)都是激活状态。)都是激活状态。3、节拍中断、节拍中断RTC 节拍用于中断请求。节拍用于中断请求。TICNT 寄存器:有中断使能位、节拍时寄存器:有中断使能位、节拍时间位。间位。当节拍计数值到达当节拍计数值到达0 时,就会触发节拍中时,就会触发节拍中断。节拍中断的间隔时间计算如下:断。节拍中断的间隔时间计算如下:Peri

296、od=(n+1)/128 秒秒n :节拍时间计数值(:节拍时间计数值(1127)说明:说明:RTC 节拍中断可以作为节拍中断可以作为RTOS(实时操作系统)内核的时间节拍。(实时操作系统)内核的时间节拍。RegisterAddress R/W Description ResetValue RTCCON0x57000040(L)0x57000043(B)R/W(字节字节) RTC控制寄存器控制寄存器0x01、RTC控制寄存器(控制寄存器(RTCCON)字段名字段名 位位意意 义义 初值初值 CLKRST3 RTC时钟计数复位。时钟计数复位。 0:不复位;:不复位;1 = BCD计数复位。计数复位

297、。0CNTSEL2 BCD计数选择。计数选择。0:合并:合并BCD计数;计数; 1 = 保留(单独的保留(单独的BCD计数器)计数器)0CLKSEL1 BCD时钟选择。时钟选择。 0:XTAL32768 1:用:用XTAL原值(但只用于测试)原值(但只用于测试)0RTCEN0 RTC控制使能。控制使能。 0:失能;:失能; 1:使能:使能 指指BCD时间计数和读取操作可以被执行时间计数和读取操作可以被执行0五、应用举例五、应用举例例:编写一程序,对例:编写一程序,对S3C2410的的RTC进行进行设置,使用节拍中断,每设置,使用节拍中断,每1秒中断一次,中秒中断一次,中断后显示出当前的日期和时

298、间。初始日期、断后显示出当前的日期和时间。初始日期、时间设置为正确值。时间设置为正确值。解:解:1、设置控制寄存器、设置控制寄存器 : RTCCON=0x0 0 0 1 = 0x01含义:含义:RTC不复位、不复位、正常正常BCD计数计数、BCD时时钟选择为钟选择为1/32768、允许读出允许读出RTC值值2、设置节拍时间寄存器、设置节拍时间寄存器 :TICNT=0x1 1 1 1 1 1 1 1 = 0xFF含义:含义:允许节拍中断允许节拍中断、节拍计数值为、节拍计数值为127,每,每1秒钟中断一次。秒钟中断一次。BIT_TICK EQU (0x18)BIT_ALLMSK EQU (0xff

299、ffffff) BIT_RTC EQU (0x130)#include 2410addr.h#include 2410lib.hvoid Test_Rtc_Tick(void);void _irq Rtc_Tick(void);void Test_Rtc_Tick(void) Uart_Printf(RTC Tick interrupt test for S3C2410!n); pISR_TICK = (unsigned)Rtc_Tick;/设置中断服务程序地址设置中断服务程序地址 rINTMSK & = (BIT_TICK); / (0x18)/开时钟节拍中断开时钟节拍中断 /设置日期与时间

300、设置日期与时间 rBCDYEAR = 0x07; rBCDMON = 0x05; rBCDDAY = 0x03; /SUN:1 MON:2/ TUE:3 WED:4 / THU:5 FRI:6 SAT:7 rBCDDATE = 0x22; rBCDHOUR = 0x08; rBCDMIN = 0x38; rBCDSEC = 0x25;rTICNT = (17) + 127; /设置节拍值设置节拍值/Period = (n + 1) / 128 =1secrRTCCON = 0x01; /启动计时、允许读启动计时、允许读写写Uart_Printf(Press any key to exit.n)

301、;Uart_Getch();/等待按键等待按键rINTMSK | = BIT_TICK;/(1Tp。在程序运行一周期后,在程序运行一周期后,修改定时器的计数值,修改定时器的计数值,只要程序正常运行,定时器就不会溢出。只要程序正常运行,定时器就不会溢出。若由于若由于干扰等原因干扰等原因使系统不能在使系统不能在Tp 时刻修时刻修改定时器的计数值,定时器将在改定时器的计数值,定时器将在Ti 时刻溢出,时刻溢出,引发系统复位引发系统复位,使系统得以重新运行,从而起,使系统得以重新运行,从而起到监控作用。到监控作用。二、二、S3C2410 的看门狗的看门狗 1、 S3C2410 看门狗的功能看门狗的功能

302、S3C2410 的看门狗定时器有两个功能:的看门狗定时器有两个功能:(1)定时器功能:)定时器功能:可以作为常规定时器可以作为常规定时器使用,它是一个十六位的定时器,并且使用,它是一个十六位的定时器,并且可以可以产生中断,中断名为产生中断,中断名为INT_WDT,中断号是,中断号是0x09。(2)复位功能:)复位功能:作为看门狗定时器使用,作为看门狗定时器使用,当时钟计数减为当时钟计数减为0(超时)时,它将产生一(超时)时,它将产生一个个128个时钟周期的复位信号。个时钟周期的复位信号。2、 S3C2410 看门狗结构与工作原理看门狗结构与工作原理S3C2410 ARM9的看门狗主要由五部分构

303、的看门狗主要由五部分构成成:时钟、看门狗计时器、看门狗数据寄存:时钟、看门狗计时器、看门狗数据寄存器、复位信号发生器、控制逻辑等。器、复位信号发生器、控制逻辑等。 S3C2410 ARM9的看门狗工作原理的看门狗工作原理:中断请求中断请求 复位复位看门狗计数器看门狗计数器WDT数据寄存器数据寄存器预预分分频频器器再再分分频频器器WDT控制寄存器控制寄存器复位信号复位信号发生器发生器PCLK3、 S3C2410 看门狗定时时间看门狗定时时间预分频器为预分频器为8位,其值为:位,其值为:0-255再分频器可选择值为:再分频器可选择值为:16、32、64、128输入到计数器的时钟周期为:输入到计数器

304、的时钟周期为:T_wtd=1/PCLK/(Prescaler+1)/Division_factor看门狗的定时周期为:看门狗的定时周期为:T=WTDATT_wtd注意:注意:一旦看门狗的定时器启动工作,其数据一旦看门狗的定时器启动工作,其数据寄存器(寄存器(WTDAT)中的值将不会自动读到)中的值将不会自动读到时间寄存器中间去(时间寄存器中间去(WTCNT)。)。由于这个原因,程序员必须在看门狗计由于这个原因,程序员必须在看门狗计时器启动之前,应该将一个初始值写入到看时器启动之前,应该将一个初始值写入到看门狗的时间计数器(门狗的时间计数器(WTCNT)中间去)中间去 。即先对时间计数器系初值,

305、再启动看门即先对时间计数器系初值,再启动看门狗工作。狗工作。三、看门狗专用寄存器三、看门狗专用寄存器共共3个,其基地址为个,其基地址为0x53000000。寄存器寄存器描描 述述 初值初值偏移地址偏移地址 WTCON看门狗控制寄存器看门狗控制寄存器0x80210 WTDAT看门狗数据寄存器看门狗数据寄存器0x80004 WTCNT看门狗计数寄存器看门狗计数寄存器0x80008RegisterOff Add R/W DescriptionReset Value WTCON0R/W看门狗控制寄存器看门狗控制寄存器 0x80211、看门狗控制寄存器(、看门狗控制寄存器(WTCON)字段名字段名 位位

306、意意 义义 初值初值 Prescaler Value15:8 预分频值。预分频值。0-255。0x80Reserved7:6 保留(为保留(为0) 00Watchdog Timer5 看门狗控制位。看门狗控制位。 0:禁止;:禁止;1:允许:允许11、看门狗控制寄存器(、看门狗控制寄存器(WTCON,续),续)字段名字段名 位位意意 义义 初值初值 Clock Select4:3 再分频值选择。再分频值选择。 00:16; 01:32;10:64;11:12800InterruptGeneration2 看门狗中断控制。看门狗中断控制。 0:禁止;:禁止; 1:允许。:允许。0Reserved

307、1 保留(为保留(为0) 0ResetEnable0 看门狗复位功能控制。看门狗复位功能控制。 0:禁止;:禁止; 1:允许。:允许。1RegisterOff Add R/W DescriptionReset Value WTDAT4R/W看门狗数据寄存器看门狗数据寄存器 0x80002、看门狗数据寄存器(、看门狗数据寄存器(WTDAT)说明说明:(1)该数据寄存器为对看门狗计数器重该数据寄存器为对看门狗计数器重装计数值。初始值为装计数值。初始值为0x8000。 (2)在初始化看门狗操作中,在初始化看门狗操作中,WTDATA 的值不会自动加载到定时计数器中。的值不会自动加载到定时计数器中。 (

308、3)在计数溢出后,在计数溢出后,WTDAT的值将被装的值将被装载到载到WTCNT 寄存器中。寄存器中。RegisterOff Add R/W DescriptionReset Value WTCNT8R/W看门狗计数寄存器看门狗计数寄存器 0x80003、看门狗计数寄存器(、看门狗计数寄存器(WTCNT)字段名字段名 位位意意 义义 初值初值 Count Value15:0 看门狗的当前计数值看门狗的当前计数值0x8000说明说明:在计数中只能读,不能写(写不在计数中只能读,不能写(写不起作用)。起作用)。四、应用举例四、应用举例例:编写一程序,利用例:编写一程序,利用S3C2410看门狗中看

309、门狗中断产生频率为断产生频率为1kHz的方波,并且从的方波,并且从GPB0引引脚输出。设脚输出。设S3C2410的的PCLK为为50MHz。解:解: (1)计算数据寄存器值)计算数据寄存器值1)取再分频值为)取再分频值为16,分频后的频率为,分频后的频率为:50M/16 = 3125000Hz2)取预分频值为)取预分频值为25,分频后的频率为,分频后的频率为:3125000/25 = 125000Hz3)取计数值为)取计数值为60,则计数器后的频,则计数器后的频率为率为:125000/60 = 2083.3Hz4)方波频率为)方波频率为:2083.3/2 = 1042Hz不可能实现准确的不可能

310、实现准确的1000Hz方波。方波。(2)看门狗控制寄存器值)看门狗控制寄存器值WTCON=0b 00 0 00 1 0 0 = 0x1804含义:含义:预分频值为预分频值为0x18、保留、保留00、先先禁止看门狗定时器工作禁止看门狗定时器工作、选择再分频选择再分频00(分频值为(分频值为16)、)、允许定时器中断允许定时器中断、保留保留0、禁止看门狗复位禁止看门狗复位。 (3)看门狗数据寄存器值)看门狗数据寄存器值WTDAT = 60 = 0x3C BIT_WDT EQU (0x19)#include #include 2410addr.h#include 2410lib.h#include

311、timer.hvoid _irq Wdt_Int(void); void Test_WDT_IntReq(void)Uart_Printf(“WatchDog Timer Interrupt Request Test!n);rINTMSK &= (BIT_WDT); /开看门狗中断开看门狗中断pISR_WDT = (unsigned)Wdt_Int;/设置中断向量设置中断向量 rGPBCON = rGPBCON&0x03|0x01; /把把GPB0设为输出设为输出 rWTCON = 0x1804; /写控制寄存器写控制寄存器 rWTDAT = 60; /写数据寄存器写数据寄存器rWTCNT =

312、 60; /写计数器写计数器 rWTCON = rWTCON | (15); /启动看门狗定时器工作启动看门狗定时器工作 Uart_Printf(“Press any Key to Exit!n”);Uart_Getch(); /等待按键等待按键 rWTCON & = (1150S)0xFFFM_LTIME11:0 MPLL锁定时间计数值锁定时间计数值 (U_LTIME150S)0xFFF寄存器寄存器R/W描描 述述 初值初值偏址偏址 MPLLCON R/W MPLL控制寄存器控制寄存器 0x0005C080 0x042、MPLL控制寄存器(控制寄存器(MPLLCON)字段名字段名 位位意意

313、义义 初值初值 Reserved31:20 保留(为保留(为0)0x000MDIV19:12 主倍频(主倍频(M)控制值)控制值0x5CReserved11:10 保留(为保留(为0)00PDIV9:4 前(前(P)分频控制值)分频控制值001000Reserved3:2 保留(为保留(为0)00SDIV1:0 后(后(S )分频控制值)分频控制值00寄存器寄存器R/W描描 述述 初值初值偏址偏址 UPLLCON R/W UPLL控制寄存器控制寄存器0x00028080 0x083、UPLL控制寄存器(控制寄存器(UPLLCON)字段名字段名 位位意意 义义 初值初值 Reserved31:2

314、0 保留(为保留(为0)0x000MDIV19:12 主倍频(主倍频(M)控制值)控制值0x28Reserved11:10 保留(为保留(为0)00PDIV9:4 前(前(P)分频控制值)分频控制值001000Reserved3:2 保留(为保留(为0)00SDIV1:0 后(后(S )分频控制值)分频控制值00输入频率输入频率输出频率输出频率MDIVPDIVSDIV12.00MHz11.289MHzN/AN/AN/A12.00MHz16.934MHzN/AN/AN/A12.00MHz22.50MHzN/AN/AN/A12.00MHz33.75MHz822312.00MHz45.00MHz82

315、1312.00MHz50.70MHz1613312.00MHz48.00MHz1202312.00MHz56.25MHz1422312.00MHz67.50MHz8222MPS值选择推荐表值选择推荐表输入频率输入频率输出频率输出频率MDIVPDIVSDIV12.00MHz79.00MHz711212.00MHz84.75MHz1052212.00MHz90.00MHz1122212.00MHz101.25MHz1272212.00MHz113.00MHz1051212.00MHz118.50MHz1502212.00MHz124.00MHz1161212.00MHz135.00MHz8221M

316、PS值选择推荐表(续值选择推荐表(续1)输入频率输入频率输出频率输出频率MDIVPDIVSDIV12.00MHz147.00MHz902112.00MHz152.00MHz681112.00MHz158.00MHz711112.00MHz170.00MHz771112.00MHz180.00MHz821112.00MHz186.00MHz851112.00MHz192.00MHz881112.00MHz202.80MHz16131MPS值选择推荐表(续值选择推荐表(续2)寄存器寄存器R/W描描 述述初值初值偏址偏址 CLKCON R/W时钟控制寄存器时钟控制寄存器0x0007FFF0 0x0C

317、4、时钟控制寄存器(、时钟控制寄存器(CLKCON)字段名字段名 位位意意 义义 初值初值 Reserved31:19 保留(为保留(为0)0x000SPI18控制控制PCLK给给SPI时钟时钟 0:禁止;:禁止;1:允许:允许1IIS17控制控制PCLK给给IIS时钟时钟 0:禁止;:禁止;1:允许:允许1IIC16控制控制PCLK给给IIC时钟时钟 0:禁止;:禁止;1:允许:允许14、时钟控制寄存器(、时钟控制寄存器(CLKCON续续1)字段名字段名 位位意意 义义 初值初值 ADC15 控制控制PCLK给给ADC时钟时钟 0:禁止;:禁止;1:允许:允许1RTC14 控制控制PCLK给

318、给RTC时钟时钟 0:禁止;:禁止;1:允许:允许1GPIO13 控制控制PCLK给给GPIO时钟时钟 0:禁止;:禁止;1:允许:允许1UART212 控制控制PCLK给给UART2时钟时钟 0:禁止;:禁止;1:允许:允许1UART111 控制控制PCLK给给UART1时钟时钟 0:禁止;:禁止;1:允许:允许14、时钟控制寄存器(、时钟控制寄存器(CLKCON续续2)字段名字段名 位位意意 义义 初值初值 UART010 控制控制PCLK给给UART0时钟。时钟。 0:禁止;:禁止;1:允许:允许1SDI9 控制控制PCLK给给SDI时钟。时钟。 0:禁止;:禁止;1:允许:允许1PWM

319、TIMER 8控制控制PCLK给给PWMTIMER时钟时钟 0:禁止;:禁止;1:允许:允许1USB Device7 控制控制PCLK给给USB Device时钟时钟 0:禁止;:禁止;1:允许:允许1USB Host6 控制控制HCLK给给USB Host时钟时钟 0:禁止;:禁止;1:允许:允许14、时钟控制寄存器(、时钟控制寄存器(CLKCON续续3)字段名字段名 位位意意 义义 初值初值 LCDC5 控制控制HCLK给给LCDC时钟。时钟。 0:禁止;:禁止;1:允许:允许1NAND Flash Controller4 控制控制HCLK给给Flash C时钟。时钟。 0:禁止;:禁止;

320、1:允许:允许1POWER-OFF3 控制进入断电模式。控制进入断电模式。 0:禁止;:禁止;1:进入断电模式:进入断电模式04、时钟控制寄存器(、时钟控制寄存器(CLKCON续续4)字段名字段名 位位意意 义义 初值初值 IDLE BIT2 控制进入空闲模式。控制进入空闲模式。 0:禁止;:禁止;1:转入空闲模式:转入空闲模式 说明:该位不能够自动清说明:该位不能够自动清0.0Reserved1 保留(为保留(为0)0SM_BIT0 控制进入特别模式。控制进入特别模式。 0:禁止(推荐);:禁止(推荐); 1:进入特别模式(保留):进入特别模式(保留)0寄存器寄存器R/W描描 述述初值初值偏

321、址偏址 CLKSLOW R/W 慢时钟控制寄存器慢时钟控制寄存器 0x00000004 0x105、慢时钟控制寄存器(、慢时钟控制寄存器(CLKSLOW)字段名字段名 位位意意 义义 初值初值 UCLK_ON7 USB时钟控制。时钟控制。0:开,:开,UPLL也也开;开;1:关,:关,UPLL也关。也关。0Reserved6 保留(为保留(为0)-MPLL_OFF 5 M锁相环控制。锁相环控制。 0:开,稳定后(至少:开,稳定后(至少150 S )可对可对SLOE_BIT清清0; 1:关,仅在:关,仅在SLOE_BIT为为1时时15、慢时钟控制寄存器(、慢时钟控制寄存器(CLKSLOW续)续)

322、字段名字段名 位位意意 义义 初值初值 SLOW_BIT4 慢时钟控制位。慢时钟控制位。 0:正常模式,:正常模式,FCLK=MPLL 1:慢时钟模式。慢时钟模式。 FCLK= 输入时钟输入时钟/2/SLOW_VAL FCLK= 输入时钟输入时钟(SLOW_VAL=0)0Reserved3 保留(为保留(为0)-SLOW_VAL2:0 慢时钟除数值(慢时钟除数值(0-7)。)。0x4说明:说明: 1、进入慢时钟模式、进入慢时钟模式MPLL可关、也可开。可关、也可开。但关闭但关闭MPLL更节电。更节电。 2、退出慢时钟模式应先启动、退出慢时钟模式应先启动MPLL,否则因否则因MPLL未稳定而未稳

323、定而FCLK无时钟输出。无时钟输出。寄存器寄存器R/W描描 述述初值初值偏址偏址 CLKDIVN R/W 时钟比控制寄存器时钟比控制寄存器 0x00000000 0x146、时钟比控制寄存器(、时钟比控制寄存器(CLKDIVN)字段名字段名 位位意意 义义 初值初值 Reserved2 保留(为保留(为0)0HDIVN1 0:HCLK=FCLK 1:HCLK=FCLK/20PDIVN0 0:PCLK=HCLK 1:PCLK=HCLK/20SLOW_VALFCLKHCLKPCLKHDIVN=0HDIVN=1PDIVN= 0PDIVN= 1000EXT/1EXT/1EXT/2HCLKHCLK/20

324、01EXT/2EXT/2EXT/4HCLKHCLK/2010EXT/4EXT/4EXT/8HCLKHCLK/2011EXT/6EXT/6EXT/612 HCLKHCLK/2慢时钟模式时钟设置慢时钟模式时钟设置说明:说明: 1、慢时钟模式不用、慢时钟模式不用PLL。 2、EXT指晶振或外部时钟。指晶振或外部时钟。SLOW_VALFCLKHCLKPCLKHDIVN=0HDIVN=1PDIVN=0PDIVN=1100EXT/8EXT/8EXT/16HCLKHCLK/2101EXT/10EXT/10EXT/20HCLKHCLK/2110EXT/12EXT/12EXT/24HCLKHCLK/2111EX

325、T/14EXT/14EXT/28HCLKHCLK/2慢时钟模式时钟设置(续)慢时钟模式时钟设置(续)说明:说明: 3、USB的的UCLK均为均为48MHz。四、四、S3C2410时钟及电源管理应用时钟及电源管理应用1、锁相环的应用、锁相环的应用锁相环主要功能是提供系统内部的运锁相环主要功能是提供系统内部的运行时钟。应用时注意以下问题:行时钟。应用时注意以下问题:(1)系统复位后必须写一次控制寄存)系统复位后必须写一次控制寄存器器MPLLCON、UPLLCON才能使其正常才能使其正常工作。即便是不改变其值也要写一次,虽工作。即便是不改变其值也要写一次,虽然复位后然复位后MPLL、UPLL均是使能

326、的。均是使能的。(2)是多数情况下,是多数情况下,启动锁相环后,启动锁相环后,都有一段都有一段锁相稳定时间(大于锁相稳定时间(大于150 S ),),在这段在这段时间时间FCLK无时钟输出无时钟输出(为低电(为低电平)。在慢时钟模式未撤销时启动平)。在慢时钟模式未撤销时启动MPLL无此现象。无此现象。(3)在)在MPLL正常工作时重新设置正常工作时重新设置MPS值值改变时钟频率,也出现改变时钟频率,也出现FCLK无无时钟输出(为低电平)现象。时钟输出(为低电平)现象。(4)USB的时钟问题。的时钟问题。使用使用UPLL其时钟为恒定值其时钟为恒定值48MHz;不使用;不使用UPLL则时钟为晶振或

327、外部时钟值。则时钟为晶振或外部时钟值。2、与断电模式相关的问题、与断电模式相关的问题(1)ADC的掉电问题。的掉电问题。如果系统进入如果系统进入到断电模式,则应该设置到断电模式,则应该设置ADC的控制寄的控制寄存器为掉电模式。存器为掉电模式。(2)断电模式数据总线)断电模式数据总线(D31:0或或D15:0)的上拉问题的上拉问题。1)断电时数据总)断电时数据总线保持高阻态;线保持高阻态;2)上拉电阻应使能;)上拉电阻应使能;3)若有总线驱动器,如若有总线驱动器,如74LVCH162245,不,不上拉则省电。上拉则省电。(3)电池失效信号对断电唤醒的影响。)电池失效信号对断电唤醒的影响。电池失效

328、信号电池失效信号nBATT_FLT会屏蔽所有的断会屏蔽所有的断电唤醒信号,必须先处理电池失效问题。电唤醒信号,必须先处理电池失效问题。(4)RTC报警中断信号唤醒断电模式报警中断信号唤醒断电模式问题。问题。 RTC报警中断信号唤醒断电模式报警中断信号唤醒断电模式后,在中断标志寄存器中并不设置,需要后,在中断标志寄存器中并不设置,需要对对RTC查询确定报警具体情况。查询确定报警具体情况。(5)引脚状态。)引脚状态。见下表。见下表。引脚类型引脚类型 断电后断电后 GPIO输出输出 输出,其引脚寄存器值被应用输出,其引脚寄存器值被应用GPIO输入输入 输入输入GPIO其它功能其它功能 输入。如输入。

329、如GPG6:SPIMOSI功能输出功能输出 输出,并且保持原状态。如输出,并且保持原状态。如nGCS0功能输入功能输入 输入。如输入。如nWAIT对于输出端口,如果不输出,则引脚对于输出端口,如果不输出,则引脚保持高可减小功耗,输出低则因寄生电保持高可减小功耗,输出低则因寄生电阻而有消耗。阻而有消耗。3、进入断电模式的方法步骤、进入断电模式的方法步骤(1)设置唤醒外中断和)设置唤醒外中断和RTC报警中断。报警中断。1)进行外中断引脚配置;)进行外中断引脚配置;2)设置中断屏蔽寄存器,对唤醒中断)设置中断屏蔽寄存器,对唤醒中断源开放,屏蔽其它中断源。源开放,屏蔽其它中断源。(2)配置数据总线)配

330、置数据总线D31;0为上拉为上拉。写写MISCCR1:0为为00。若有总线驱动器,。若有总线驱动器,可关闭上拉电阻,且省电。可关闭上拉电阻,且省电。(3)设置)设置USB数据口为浮空。数据口为浮空。写写MISCCR13:12为为11。(4)使)使SDRAM信号在断电期间保护信号在断电期间保护。写写MISCCR19:17为为111。(5)将需要保存的数据写到一般状态)将需要保存的数据写到一般状态寄存器寄存器GSTATE3、GSTATE4中中。断电时。断电时其值被保护。其值被保护。(6)停止)停止LCD显示显示。对寄存器。对寄存器LCDCON10写写0。(7)设置)设置SDRAM为自刷新。为自刷新

331、。对寄存对寄存器器REFRESH22写写1,并且等待,使自刷,并且等待,使自刷新生效。新生效。(8)使系统进入断电模式)使系统进入断电模式。对寄存器。对寄存器CLKCON3的的POWER_OFF写写1。4、退出断电模式的方法步骤、退出断电模式的方法步骤如果有外中断或如果有外中断或RTC报警中断唤醒断报警中断唤醒断电模式,则系统先进行复位,通过以下方电模式,则系统先进行复位,通过以下方法退出断电模式,使系统正常工作。法退出断电模式,使系统正常工作。(1)判断是否为断电复位)判断是否为断电复位。查询。查询GSTATE21,1表示系统是从断电模式表示系统是从断电模式唤醒。唤醒。(2)清除掉)清除掉S

332、DRAM的断电保护功能。的断电保护功能。写寄存器写寄存器MISCCR19:17为为000。(3)设置)设置SDRAM为自动刷新。为自动刷新。对寄对寄存器存器REFRESH22写写0,并且等待,使系,并且等待,使系统释放自刷新。统释放自刷新。(4)恢复断电前保存在)恢复断电前保存在GSTATE3、GSTATE4中的信息。中的信息。根据用户需要使用。根据用户需要使用。(5)查询中断请求标志:)查询中断请求标志:1)查询)查询EINT415:读:读EINTPND2)查询)查询EINT03:读:读SRCPND(该(该寄存器可能不被设置)寄存器可能不被设置)5、4种电源模式的转换方法种电源模式的转换方法

333、各种模式之间不能任意转换,转换关各种模式之间不能任意转换,转换关系如下图所示。系如下图所示。断电模式断电模式慢时钟模式慢时钟模式空闲模式空闲模式正常模式正常模式复位复位EINT15:0、RTC alarmEINT23:0、RTC alarmIDLE_BIT=1SLOW_BIT=1SLOW_BIT=0POWER_OFF=1习习 题题本章作业:本章作业:2、3、5、7、10、12、151、S3C2410X主要特性有哪些?主要特性有哪些?2、S3C2410X的结构分为几个部分?每一部分主要由哪些部的结构分为几个部分?每一部分主要由哪些部件构成?件构成?3、S3C2410X的存储器由哪几部分构成,每一

334、部分有什么特的存储器由哪几部分构成,每一部分有什么特点?点?存储器主要有哪些控制寄存器?存储器主要有哪些控制寄存器?4、S3C2410X的的Flash有哪些特点?有哪些特点?5、S3C2410X的的DMA有哪些特点?其工作过程是怎样的?每有哪些特点?其工作过程是怎样的?每个通道配置有哪些寄存器?个通道配置有哪些寄存器?6、S3C2410X的的A/D转换器有哪些特点?有哪些相关的寄存器转换器有哪些特点?有哪些相关的寄存器?7、编写一程序,用查询的方式,对、编写一程序,用查询的方式,对S3C2410X的的A/D转换器的转换器的第第0通道连续进行通道连续进行100次次A/D转换,然后将其结果求平均值

335、。转换,然后将其结果求平均值。注意:注意:A/D转换器有独立的模拟信号输入引脚转换器有独立的模拟信号输入引脚AIN0-AIN9。8、S3C2410X的中断系统有哪些特点?相关的寄存器有哪些?的中断系统有哪些特点?相关的寄存器有哪些?9、S3C2410X的中断控制器的工作过程是怎样的?对于的中断控制器的工作过程是怎样的?对于IRQ,整,整个中断过程是怎样的(中断控制器处理,向个中断过程是怎样的(中断控制器处理,向CPU请求,转到请求,转到中断入口,转去获得中断服务程序的首地址,执行中断服务中断入口,转去获得中断服务程序的首地址,执行中断服务程序)?程序)?10、编写一程序,使用外部中断、编写一程

336、序,使用外部中断EINT0,用中断方式对端口,用中断方式对端口C做做数据输入。(注意对中断系统和相关引脚进行初始化)数据输入。(注意对中断系统和相关引脚进行初始化)提示:提示:C语言指向特定地址的方法:语言指向特定地址的方法:(1)#define rGPCDAT (*(volatile unsigned *)0x56000024)(2)int *rGPCDAT=0x56000024;(3)int *rGPCDAT; rGPCDAT=0x56000024;用第一种方法为好。用第一种方法为好。11、S3C2410X的定时器系统有哪些特点?由哪几部分构成?相的定时器系统有哪些特点?由哪几部分构成?相

337、关的寄存器有哪些?是如何工作的?关的寄存器有哪些?是如何工作的?12、编写一程序,使用、编写一程序,使用timer0产生并输出频率为产生并输出频率为10KHz、占空比为、占空比为1/2的方波。设的方波。设f f pclk=50MHz。(注意对(注意对timer0和相关引脚初始化)和相关引脚初始化)13、编写一程序,利用、编写一程序,利用S3C2410X的的PWM功能对一直功能对一直流电机进行调速,要求使用流电机进行调速,要求使用timer1产生并输出频率产生并输出频率为为10KHz、占空比可变的方波进行控制,电机的转、占空比可变的方波进行控制,电机的转速变化如下图所示。设速变化如下图所示。设f

338、 f pclk=50MHz。(注意对。(注意对timer0和相关引脚初始化)和相关引脚初始化)t0 2*t0 tv014、S3C2410X的串行的串行接口接口UART有哪些特有哪些特点?由哪几部分构成点?由哪几部分构成?相关的寄存器有哪?相关的寄存器有哪些?是如何工作的?些?是如何工作的?15、编写一程序,使用、编写一程序,使用S3C2410X的的UART2进行串行数据收发,进行串行数据收发,要求用脉冲请求中断的方式、使用收要求用脉冲请求中断的方式、使用收/发发FIFO,8个数据位、个数据位、1个停止位、不校验,波特率为个停止位、不校验,波特率为125kb/s。设。设Pclk为为50MHz。(

339、提示:主程序对(提示:主程序对UART2初始化、引脚配置、中断初始化初始化、引脚配置、中断初始化等,并进行一次发送;中断服务程序进行收发,并且清除中等,并进行一次发送;中断服务程序进行收发,并且清除中断请求标志和中断服务标志)断请求标志和中断服务标志)16、S3C2410X的的SPI接口有哪些特点?由哪几部分构成?相关接口有哪些特点?由哪几部分构成?相关的寄存器有哪些?是如何工作的?的寄存器有哪些?是如何工作的?17、编写一程序,使用、编写一程序,使用S3C2410X的的UART2进行串行数据收发,进行串行数据收发,要求用脉冲请求中断的方式、使用收要求用脉冲请求中断的方式、使用收/发发FIFO

340、,8个数据位、个数据位、1个停止位、不校验,波特率为个停止位、不校验,波特率为125kb/s。设。设Pclk为为50MHz。(提示:主程序对(提示:主程序对UART2初始化、引脚配置、中断初始化初始化、引脚配置、中断初始化等,并进行一次发送;中断服务程序进行收发,并且清除中等,并进行一次发送;中断服务程序进行收发,并且清除中断请求标志和中断服务标志)断请求标志和中断服务标志)18、把把S3C2410的的SPI0设为主设备,同时把设为主设备,同时把SPI1设为从设备,设为从设备,将二者的将二者的MOSI、MISO交叉相连,二者的交叉相连,二者的SCL对连,对连, 用用GPG0引脚控制引脚控制nSS1。编写程序,。编写程序, SPI0用中断方式、用中断方式、 SPI1用查询方式,采用格式用查询方式,采用格式B、1Mb/s的波特率,的波特率,SPI0发送数据、发送数据、SPI1接收数据,发送、接收接收数据,发送、接收100个字节的数据。设系统个字节的数据。设系统Pclk=50MHz。

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

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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