嵌入式学习s3c2410经典讲义_第1页
嵌入式学习s3c2410经典讲义_第2页
嵌入式学习s3c2410经典讲义_第3页
嵌入式学习s3c2410经典讲义_第4页
嵌入式学习s3c2410经典讲义_第5页
已阅读5页,还剩215页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式系统讲义

第4章S3C2410X系统结构周国运2007.3习题 本章作业:2、3、5、7、10、121、S3C2410X主要特性有哪些?2、S3C2410X的结构分为几个部分?每一部分主要由哪些部件构成?3、S3C2410X的存储器由哪几部分构成,每一部分有什么特点?存储器主要有哪些控制寄存器?4、S3C2410X的Flash有哪些特点?5、S3C2410X的DMA有哪些特点?其工作过程是怎样的?每个通道配置有哪些寄存器?6、S3C2410X的A/D转换器有哪些特点?有哪些相关的寄存器?7、编写一程序,用查询的方式,对S3C2410X的A/D转换器的第0通道连续进行100次A/D转换,然后将其结果求平均值。注意:A/D转换器有独立的模拟信号输入引脚AIN0---AIN9。8、S3C2410X的中断系统有哪些特点?相关的寄存器有哪些?9、S3C2410X的中断控制器的工作过程是怎样的?对于IRQ,整个中断过程是怎样的(中断控制器处理,向CPU请求,转到中断入口,转去获得中断服务程序的首地址,执行中断服务程序)?10、编写一程序,使用外部中断EINT0,用中断方式对端口C做数据输入。(注意对中断系统和相关引脚进行初始化) 提示:C语言指向特定地址的方法:(1)#definerGPCDAT(*(volatileunsigned*)0x56000024)(2)int*rGPCDAT=0x56000024;(3)int*rGPCDAT; rGPCDAT=0x56000024;

用第一种方法为好。11、S3C2410X的定时器系统有哪些特点?由哪几部分构成?相关的寄存器有哪些?是如何工作的?12、编写一程序,使用timer0产生并输出频率为10KHz、占空比为1/2的方波。设f

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

pclk=50MHz。(注意对timer0和相关引脚初始化)t02*t0tv0第4章S3C2410X系统结构4.1S3C2410X概述4.2存储器配置4.3DMA4.4ADC和触摸屏接口4.5中断控制器4.6I/O端口4.7PWM4.8UART接口4.9RTC4.10IIC接口4.11SPI接口4.12时钟和电源管理4.13看门狗4.14其它接口主要内容4.14其它接口1、USB接口2、LCD控制器3、SD接口4、IIS接口4.1S3C2410X概述主要内容主要特性系统结构引脚信号4.1S3C2410X概述 S3C2410X是韩国三星公司推出的16/32位RISC微控制器,其CPU采用的是ARM920T内核,加上丰富的片内外设,为手持设备和其它应用,提供了低价格、低功耗、高性能微控制器的解决方案。

一、主要特性具有16KB指令Cache、16KB数据Cache和存储器管理单元MMU。外部存储器控制器,可扩展8组,每组128MB,总容量达1GB;支持从Nandflash存储器启动。55个中断源,可以设定1个为快速中断,有24个外部中断,并且触发方式可以设定。4通道的DMA,并且有外部请求引脚。3个通道的UART,带有16字节的TX/RXFIFO,支持IrDA1.0功能。具有2通道的SPI、1个通道的IIC串行总线接口和1个通道的IIS音频总线接口。有2个USB主机总线的端口,1个USB设备总线的端口。有4个具有PWM功能的16位定时器和1个16位内部定时器。8通道的10位A/D转换器,最高速率可达500kB/s;提供有触摸屏接口。具有117个通用I/O口和24通道的外部中断源。兼容MMC的SD卡接口。具有电源管理功能,可以使系统以普通方式、慢速方式、空闲方式和掉电方式工作。看门狗定时器。具有日历功能的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、片内外设

分为高速外设和低速外设,分别用AHB总线和APB总线。三、引脚信号

S3C微控制器是272-FBGA封装。 其信号可以分成addr0---addr26、Data0---data31、GPA0---GPA22GPB10、GPC15、GPD15、GPE15、GPF7、GPG15、GPH10、EINT23、nGCS0—nGCS7、AIN7、IIC、SPI、OM0---OM3等,大部分都是复用的4.2S3C2410X的存储器主要内容存储器配置存储器概述控制寄存器Flash及控制器Flash控制器概述控制器主要特性控制器的寄存器控制器的工作原理4.2存储器配置4.2.1S3C2410X的存储器配置

一、概述

S3C2410X的存储器管理器提供访问外部存储器的所有控制信号:26位地址信号、32位数据信号、8个片选信号、以及读/写控制信号等。

S3C2410X的存储空间分成8组,最大容量是1GB,bank0---bank5为固定128MB,bank6和bank7的容量可编程改变,可以是2、4、8、16、32、64、128MB,并且bank7的开始地址与bank6的结束地址相连接,但是二者的容量必须相等。

bank0可以作为引导ROM,其数据线宽只能是16位和32位,复位时由OM0、OM1引脚确定;其它存储器的数据线宽可以是8位、16位和32位。

S3C2410X的存储器格式,可以编程设置为大端格式,也可以设置为小端格式。注意:补充引脚信号

二、存储器的控制寄存器 内存控制器为访问外部存储空间提供存储器控制信号,S3C2410X存储器控制器共有13个寄存器。寄存器地址功能操作复位值BWSCON0x48000000总线宽度和等待控制读/写0x0BANKCON00x48000004BANK0控制读/写0x0700BANKCON10x48000008BANK1控制读/写0x0700BANKCON20x4800000CBANK2控制读/写0x0700BANKCON30x48000010BANK3控制读/写0x0700BANKCON40x48000014BANK4控制读/写0x0700BANKCON50x48000018BANK5控制读/写0x0700BANKCON60x4800001CBANK6控制读/写0x18008BANKCON70x48000020BANK7控制读/写0x18008REFRESH0x48000024SDRAM刷新控制读/写0xAC0000BANKSIZE0x48000028可变的组大小设置读/写0x0MRSRB60x4800002CBANK6模式设置读/写xxxMRSRB70x48000030BANK7模式设置读/写xxx第9次到此此

1、总线宽度和等待控制寄存器31302928272625242322212019181716ST7WS7DW7ST6WS6DW6ST5WS5DW5ST4WS4DW41514131211109876543210ST3WS3DW3ST2WS2DW2ST1WS1DW1XDW0XSTn:控制存储器组n的UB/LB引脚输出信号。

1:使UB/LB与nBE[3:0]相连;

0:使UB/LB与nWBE[3: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个时钟周期Tacc:访问周期

000:1个;001:2个;010:3个;011:4个时钟

100:6个:101:8个;110:10个;111:14个1514131211109876543210TacsTcosTaccTcohTcahTacpPMC2、BANKn---存储器组控制寄存器(n=0--5)31302928272625242322212019181716Tcoh:nOE无效后片选信号的保持时间

00:0个;01:1个;10:2个;11:4个时钟Tcah:nGCSn无效后地址信号的保持时间

00:0个;01:1个;10:2个;11:4个时钟Tacp:页模式的访问周期

00:2个;01:3个;10:4个;11:6个时钟PMC:页模式的配置,每次读写的数据数

00:1个;01:4个;10:8个;11:16个 注:00为通常模式。

注:紫色为实验箱上的配置,其值为0x0700MT:设置存储器类型

00:ROM或者SRAM,[3:0]为Tacp和PMC;

11:SDRAM,[3:0]为Trcd和SCAN;

01、10:保留Trcd:由行地址信号切换到列地址信号的延时时钟数

00:2个时钟;01:3个时钟;10:4个时钟

SCAN:列地址位数

00:8位; 01:9位; 10:10位

14131211109876543210TacsTcosTaccTcohTcahTacp/TrcdPMC/SCAN

3、BANK6/7---存储器组6/7控制寄存器31……171615保留MTREFEN:刷新控制。 1:使能刷新;0:禁止刷新TREFMD:刷新方式。 1:自刷新 0:自动刷新Trp:设置SDRAM行刷新时间(时钟数)

00:2个时钟;01:3个;10:3个;11:4个时钟Tsrc:设置SDRAM行操作时间(时钟数)

00:4个时钟;01:5个;10:6个;11:7个时钟 注:SDRAM的行周期=Trp+Tsrc。Refresh_count:刷新计数值1514131211109876543210保留Refresh_count4、REFRESH---刷新控制寄存器31……242322212019181716保留REFENTREFMDTrpTsrc保留Refresh_count:刷新计数器值 计算公式:刷新周期=(211-Refresh_count+1)/HCLK例子:设刷新周期=15.6µs,HCLK=60MHz则 刷新计数器值=211+1-60×15.6=1113 1113=0x459=0b10001011001

高24位未用。BURST_EN:ARM突发操作控制

0:禁止突发操作;1:可突发操作SCKE_EN:SCKE使能控制SDRAM省电模式

0:关闭省电模式;1:使能省电模式SCLK_EN:SCLK省电控制,使其只在SDRAM访问周期内使能SCLK 0:SCLK一直有效;1:SCLK只在访问期间有效BK76MAP:控制BANK6/7的大小及映射76543210BURST_ENXSCKE_ENSCLK_ENXBK76MAP5、BANKSIZE---BANK6/7组大小控制寄存器BK76MAP:控制BANK6/7的大小及映射

100:2MB; 101:4MB;

110:8MB 111:16MB;

000:32MB; 001:64MB 010:128MBWBL:突发写的长度。0:固定长度;1:保留TM:测试模式。 00:模式寄存器集;其它保留CL:列地址反应时间

000:1个时钟;010:2个时钟;

011:3个时钟;其它保留BT:猝发类型

0:连续; 1:保留BL:猝发时间

000:1个时钟;其它保留

6、MRSRB6/7---BANK6/7模式设置寄存器1514131211109876543210WBLTMCLBTBL4.2.2NandFlash及其控制器主要内容1、NandFlash控制器概述2、控制器主要特性3、控制器的寄存器4、控制器的工作原理4.2.2NandFlash及其控制器

Norflash存储器:读速度高,而擦、写速度低,容量小,价格高。

Nandflash存储器:读速度不如Norflash,而擦、写速度高,容量大,价格低。有取代磁盘的趋势。 因此,现在不少用户从Nandflash启动和引导系统,而在SDRAM上执行主程序代码。一、NandFlash控制器概述

S3C2410X微控制器从Nandflash的引导功能:其内部有一个叫做“起步石(Steppingstone)”的SRAM缓冲器,系统启动时,Nandflash存储器的前面4KByte字节将被自动载入到起步石中,然后系统自动执行这些载入的引导代码。引导代码执行完毕后,自动跳转到SDRAM执行。

Nandflash操作的校验功能:使用S3C2410X内部硬件ECC功能可以对Nandflash的数据进行有效性的检测。

二、NandFlash控制器主要特性

NandFlash模式:支持读/擦/编程Nandflash存储器。 自动导入模式:复位后,引导代码被送入Steppingstone,传送后,引导代码在Steppingstone中执行。 具有硬件ECC(纠错码)功能:硬件产生纠错代码。 内部4KB的SRAM缓冲器Steppingstone,在Nandflash引导后可以作为其他用途使用。NandFlash控制器功能框图

主要由6部分组成引脚信号:CLE:命令锁存R/nB:就绪/忙三、NandFlash控制器的寄存器寄存器地址功能操作复位值NFCON0x4E000000NandFlash配置读/写-NFCMD0x4E000004NandFlash命令读/写-NFADDR0x4E000008NandFlash地址读/写-NFDATA0x4E00000CNandFlash数据读/写-NFSTAT0x4E000010NandFlash状态读/写-NFECC0x4E000014NandFlash纠错读/写-NFEN:NF控制器使能控制

0:禁止使用; 1:允许使用IECC:初始化ECC编码/解码器控制位

0:不初始化ECC; 1:初始化ECCNFCE:NF片选信号nFCE控制位持续时间设置

0:nFCE为低有效; 0:nFCE为高无效TACLE:CLE/ALE持续时间设置值(0---7) 持续时间=

HCLK*(TACLS+1)

CLE/ALE:命令/地址锁存允许1514131211109876543210NFENXIECCNFCETACLEXTWRPH0XPWRPH10-000-0-01、NFCON---Flash配置寄存器TWRPH0:写信号持续时间设置值(0~7) 持续时间=

HCLK*(TWRPH0+1)

TWRPH1:写信号无效后CLE/ALE保持时间设置值(0~7) 持续时间=

HCLK*(TWRPH1+1)1514131211109876543210保留命令字2、NFCMD---Flash命令寄存器

高24位未用,低8位为读入或者写出的数据1514131211109876543210保留地址值3、NFADDR---Flash地址寄存器1514131211109876543210保留输入/输出数据4、NFDATA---Flash数据寄存器

高24位未用,低8位为Flash存储器地址值RnB:NandFlash存储器状态位

0:存储器忙; 1:存储器准备好1514131211109876543210保留RnB5、NFSTAT---Flash状态寄存器1514131211109876543210错误校正码#1错误校正码#06、NFECC---Flash错误校正码寄存器31302928272625242322212019181716保留错误校正码#2四、NandFlash控制器的工作原理

1、自动导入启动代码步骤

完成复位。 如果自动导入模式使能,Nandflash存储器的前面4K字节被自动拷贝到Steppingstone内部缓冲器中。

Steppingstone被映射到nGCS0对应的BANK0存储空间。

CPU在Steppingstone的4-KB内部缓冲器中开始执行引导代码。

注意:在自动导入模式下,不进行ECC检测。因此,Nandflash的前4KB应确保不能有位错误(一般Nandflash厂家都确保)。

2、NandFLASH模式配置

通过NFCONF寄存器配置Nandflash; 写Nandflash命令到NFCMD寄存器; 写Nandflash地址到NFADDR寄存器; 在读写数据时,通过NFSTAT寄存器来获得Nandflash的状态信息。应该在读操作前或写入之后检查R/nB信号(准备好/忙信号)。 在读写操作后要查询校验错误代码,对错误进行纠正。

3、系统引导和NandFLASH配置

OM[1:0]=00b:使能Nandflash控制器自动导入模式;

OM[3:0]为芯片引脚,设置引导模式、存储器bank0的数据宽度、时钟模式等。

OM[1:0]=01b、10b:

bank0数据宽度为16位、32位

OM[1:0]=11b:测试模式

Nandflash的存储页面大小应该为512字节。

NCON:Nandflash寻址步骤数选择

0:3步寻址; 1:4步寻址

4、NandFlash操作的校验问题

S3C2410A在写/读操作时,每512字节数据自动产生3字节的ECC奇偶代码(24位)。

24位ECC奇偶代码=18位行奇偶+6位列奇偶

ECC产生模块执行以下步骤:

当MCU写数据到Nand时,ECC产生模块生成ECC代码。 当MCU从Nand读数据时,ECC产生模块生成ECC代码同时用户程序将它与先前写入时产生的ECC代码比较。

4.3DMA控制器主要内容1、概述2、工作原理3、寄存器一、概述

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

DMA的主要优点是:可以不通过CPU的中断来实现数据的传输,DMA的运行可以通过软件或者通过外围设备的中断和请求来初始化。二、DMA工作原理

1、DMA的服务对象

每个DMA通道都有4个DMA请求源,通过设置,可以从中挑选一个服务。每个通道的DMA请求源如表4-1所示。

通道

源请求源0请求源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响应释放三总线,并且发应答HLDA

(4)DMAC向外设发DMA应答

(5)DMAC发出地址、控制信号,为外设传送数据; (6)传送完规定的数据后,DMAC撤销HOLD信号,CPU也撤销HLDA信号,并且恢复对三总线的控制。12453 2、DMA的工作过程

S3C2410X的DMA工作过程可以分为三个状态: 状态1:等待状态。DMA等待一个DMA请求。如果有请求到来,将转到状态2。在这个状态下,DMAACK和INTREQ为0。 状态2:准备状态。DMAACK变为1,计数器(CURR_TC)装入DCON[19:0]寄存器。 注意:DMAACK保持为1直至它被清除。 状态3:传输状态。DMA控制器从源地址读入数据并将它写到目的地址,每传输一次,CURR_TC数器(在DSTAT中)减1,并且可能做以下操作: 重复传输:在全服务模式下,将重复传输,直到计数器CURR_TC变为0;在单服务模式下,仅传输一次。设置中断请求信号:当CURR_TC变为0时,DMAC发出INTREQ信号,而且DCON[29]即中断设定位被设为1。清除DMAACK信号:对单服务模式,或者全服务模式

CURR_TC变为0。 注意:在单服务模式下,DMAC的3个状态被执行一遍,然后停止,等待下一个DMAREQ的到来。如果DMAREQ到来,则这些状态被重复操作,直到CURR_TC减为0。

说明:DMA传输分为一个单元传输和4个单元突发式传输。

3、外部DMA请求/响应规则

DMAC有3种类型的外部DMA请求/响应规则: (1)singleservicedemand,单服务请求(对应于需求模式) (2)singleservicehandshake,单服务握手(握手模式) (3)wholeservicehandshake,全服务握手(全服务模式) 每种类型都定义了像DMA请求和DMA响应这些信号怎样与这些规则相联系。

demand与handshake模式的比较: 在一次传输结束时,DMA检查xnxDREQ(DMA请求)信号的状态: 在demand模式下:如果DMA请求(xnxDREQ)信号仍然有效,则传输马上再次开始。否则等待。 在handshake模式下:如果DMA请求信号无效,DMA在两个时钟周期后将DMA响应(xnxDACK)信号变得无效。否则,DMA等待直到DMA请求信号变得无效。每请求一次传输一次。

4、DMA时序要求

基本时序要求:

DMA请求信号和响应信号的Setup时间与delay时间在所有的模式下是相同的。 如果DMA请求信号的setup时间满足要求,则在两个周期内实现同步,然后DMA响应信号变得有效。 在DMA响应信号有效后,DMA向CPU请求总线。如果它得到总线就执行操作。DMA操作完成后,DMA响应信号变得无效。

三、DMA控制器的相关寄存器 每个DMA通道有9个控制寄存器(4个通道共计36个寄存器),6个用来控制DMA传输,其它3个监视DMA控制器的状态。 RegisterAddressR/WDescriptionResetValueDISRCn0x4B0000x0R/W初始源基地址寄存器0x00000000DISRCCn0x4B0000x4R/W初始源控制寄存器0x00000000DIDSTn0x4B0000x8R/W初始目的基地址寄存器0x00000000DIDSTCn0x4B0000xCR/W初始目的控制寄存器0x00000000DCONn0x4B0000y0R/WDMA控制寄存器0x00000000DSTATn0x4B0000y4R状态/计数寄存器0x00000000DCSRCn0x4B0000y8R当前源地址寄存器0x00000000DCDSTn0x4B0000yCR当前目的地址寄存器0x00000000SKTRIGn0x4B0000z0R/WDMA掩码/触发寄存器0b000

1、DISRCn---DMA源基地址寄存器原名:DMA初始源寄存器

寄存器地址R/W意义初值DISRC00x4B000000R/WDMA0源基地址寄存器0x00000000DISRC10x4B000040R/WDMA1源基地址寄存器0x00000000DISRC20x4B000080R/WDMA2源基地址寄存器0x00000000DISRC30x4B0000C0R/WDMA3源基地址寄存器0x000000003130……00S_ADDR---源数据基地址(在CURR_SRC为0、并且DMAACK为1时装载入CURR_SRC)第10次到此LOC---源所在总线选择

0:AHB; 1:APBINC---源地址变化设置

0:源地址增加; 1:源地址不变

2、DISRCCn---DMA源控制寄存器

寄存器地址R/W意义初值DISRCC00x4B000004R/WDMA0初始源控制寄存器0x00000000DISRCC10x4B000044R/WDMA1初始源控制寄存器0x00000000DISRCC20x4B000084R/WDMA2初始源控制寄存器0x00000000DISRCC30x4B0000C4R/WDMA3初始源控制寄存器0x0000000031……210保留(为0)LOC---源总线选择INC---源地址变化设置

3、DIDSTn---DMA目的基地址寄存器原名:DMA初始目的寄存器

寄存器地址R/W意义初值DIDST00x4B000008R/WDMA0目的基地址寄存器0x00000000DIDST10x4B000048R/WDMA1目的基地址寄存器0x00000000DIDST20x4B000088R/WDMA2目的基地址寄存器0x00000000DIDST30x4B0000C8R/WDMA3目的基地址寄存器0x000000003130……00D_ADDR---目标基地址,会被载入CURR_DST(当CURR_DST的值为0、并且DMAACK的值为1时)4、DIDSTCn---DMA初始目的控制寄存器寄存器地址R/W意义初值DIDSTC00x4B00000CR/WDMA0初始目的控制寄存器0x00000000DIDSTC10x4B00004CR/WDMA1初始目的控制寄存器0x00000000DIDSTC20x4B00008CR/WDMA2初始目的控制寄存器0x00000000DIDSTC30x4B0000CCR/WDMA3初始目的控制寄存器0x00000000LOC---目的地址所在总线选择

0:AHB; 1:APBINC---目的地址地址变化设置

0:目的地址增加; 1:目的地址不变31……210保留(为0)LOC---目的总线选择INC---目的地址变化设置

5、DCONn---DMA控制寄存器

寄存器地址R/W意义初值DCON00x4B000010R/WDMA0控制寄存器0x00000000DCON10x4B000050R/WDMA1控制寄存器0x00000000DCON20x4B000090R/WDMA2控制寄存器0x00000000DCON30x4B0000D0R/WDMA3控制寄存器0x00000000313029282726252423222120DMD_HSSYNCINTTSZSERVMODEHWSRCSELSWHW_SELRELOADDSZ1918171615141312111098876543210TC---传输次数初值DMD_HS---DMA与外设握手模式选择

0:需求模式。为单服务,但只要DREQ信号有效便传输

1:握手模式。为单服务,要等待DREQ信号变为无效, DREQ再有效时才传输。SYNC---DREQ和DACK信号与系统总线时钟同步选择

0:DREQ和DACK与PCLK(APBclock)同步。慢速外设

1:DREQ和DACK与HCLK(AHBclock)同步。高速外设INT---CURR_TC的中断请求控制

0:禁止CURR_TC产生中断请求

1:当所有的传输结束时,CURR_TC产生中断请求

TSZ---传输长度类型选择

0:执行单数据传输 1:执行四数据长的突发传输

313029282726252423222120DMD_HSSYNCINTTSZSERVMODEHWSRCSELSWHW_SELRELOADDSZSERVMODE---传输模式选择

0:单服务传输模式,每传输一次都要查询DREQ 1:全服务传输模式,不查询DREQ,但传输一次也要释 放总线。HWSRCSEL---各DMA通道请求源设置313029282726252423222120DMD_HSSYNCINTTSZSERVMODEHWSRCSELSWHW_SELRELOADDSZHWSRCSEL000001010011100通道0nXDREQ0UART0SDITimerUSB设备EP1通道1nXDREQ1UART1IISSDISPI0USB设备EP2通道2IISSDOIISSDISDITimerUSB设备EP3通道3UART2SDISPI1TimerUSB设备EP4SWHW_SEL---DMA源选择方式(软件或硬件)设置

0:以软件software方式产生DMA请求,需要用DMASKTRIG控制寄存器中的SW_TRIG位设置触发。

1:由位[26:24]提供的DMA源触发DMA操作RELOAD---再装载选择

0:自动再装载,当传输次数减为0时自动装载DMA初值

1:不自动再装载,传输结束关闭DMA通道。DSZ---传输数据类型设置

00:字节; 01:半字; 10:字; 11:保留313029282726252423222120DMD_HSSYNCINTTSZSERVMODEHWSRCSELSWHW_SELRELOADDSZSTAT---DMA状态

00:就绪态,可进行传输;

01:DMA正在传输; 1X:保留CURRTC---当前传输计数值 每传输一次其值减1。其初值在DCONn中低20位。

6、DSTATn---DMA状态/计数寄存器原名:DMA状态寄存器寄存器地址R/W意义初值DSTAT00x4B000014RDMA0状态/计数寄存器0x00000000DSTAT10x4B000054RDMA1状态/计数寄存器0x00000000DSTAT20x4B000094RDMA2状态/计数寄存器0x00000000DSTAT30x4B0000D4RDMA3状态/计数寄存器0x0000000021201918171615141312111098876543210STATCURRTC---当前传输次数计数值CURR_SRC---当前数据源地址 注意:(1)DMA每传输一次,其地址可能增加(1、2、4)、可能不变;(2)在CURR_SRC为0、且DMAACK为1时,将S_ADDR源基地址的值装入。寄存器地址R/W意义初值DCSRC00x4B000018RDMA0当前源地址寄存器0x00000000DCSRC10x4B000058RDMA1当前源地址寄存器0x00000000DCSRC20x4B000098RDMA2当前源地址寄存器0x00000000DCSRC30x4B0000D8RDMA3当前源地址寄存器0x000000003130……00CURR_SRC---当前数据源地址7、DCSRCn---DMA当前源地址寄存器CURR_DST---当前数据目的地址 注意:(1)DMA每传输一次,其地址可能增加(1、2、4); (2)在CURR_DST为0、且DMAACK为1时,将D_ADDR的值装入。寄存器地址R/W意义初值DCDST00x4B00001CRDMA0当前目的地址寄存器0x00000000DCDST10x4B00005CRDMA1当前目的地址寄存器0x00000000DCDST20x4B00009CRDMA2当前目的地址寄存器0x00000000DCDST30x4B0000DCRDMA3当前目的地址寄存器0x000000003130……00CURR_DST---当前数据目的地址8、DCDSTn---DMA当前目的地址寄存器寄存器地址R/W意义初值DMASKTRIG00x4B000020R/WDMA0掩码触发寄存器0x00000000DMASKTRIG10x4B000060R/WDMA1掩码触发寄存器0x00000000DMASKTRIG20x4B0000A0R/WDMA2掩码触发寄存器0x00000000DMASKTRIG30x4B0000E0R/WDMA3掩码触发寄存器0x000000009、DMASKTRIGn---DMA掩码(Mask)触发寄存器31……3210保留(为0)STOPON/OFFSW_TRIG

STOP---DMA运行停止位

1:DMA将当前数据传输完立即停止,并且CURR_TC变为0。

注意:如果ON/OFF设置为OFF,则DMA也停止传输。ON/OFF---DMA通道屏蔽位

0:关闭通道; 1:开放通道 如果DCONn[22]设为非自动重装,DMA则传输完成后STOP位置1、并且关闭通道。

注意:在DMA运行期间,不要改变其值,并且也不要使用该位停止DMA传输,正确的方法应该使用STOP位。SW_TRIG:DMA软件触发位 设为1时,实现软件触发DMA请求。

注意:只有当DCONn[23]设为软件触发DMA请求时,其软件触发才有效。

对DMA应用注意: 在DMA运行中改变DISRCn、DIDSTn寄存器以及改变DCONn中TC的值,对DMA当前的整个传输没有影响。而其它寄存器或位值的改变,将立即影响传输。

4.4A/D转换与触摸屏主要内容1、概述2、结构与工作原理3、寄存器4、应用举例

一、S3C2410X的A/D转换器概述

S3C2410X中集成了一个8通道10位A/D转换器,A/D转换器自身具有采样保持功能。并且S3C2410X的A/D转换器支持触摸屏接口。A/D转换器的主要特性:分辨率:10位; 精度:±1LSB线性度误差:±1.5---2.0LSB;最大转换速率:500KSPS;输入电压范围:0~3.3v;系统具有采样保持功能;常规转换和低能源消耗功能;独立/自动的X/Y坐标转换模式。

二、A/D转换器结构与工作原理 下图为S3C2410A/D转换器和触摸屏接口的功能块图。

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个周期)=1/200KHz=5us A/D转换器最大可以工作在2.5MHz时钟下,所以转换速率可以达到500KSPS。 (2)触摸屏的结构及工作原理

原理:对于电阻式触摸屏,由3层透明薄膜构成,有一层是电阻层,还有一层是导电层,它们中间有一隔离层,当某一点被按压时,在按压点电阻层与导电层接触,如果在电阻层的一边接电源,另一边接地,便可测量出按压点的电压,从而可算出其坐标。

实现方法:

测量X坐标:从XP输出电压给X+端,从XM输出地电位给X-端;从YP脚输入按压点电压。 控制信号: nYPON=1; nYMON=0 nXPON=0; nXMON=1测Y测X

测量Y坐标:从YP输出电压给Y+端,从YM输出地电位给Y-端;从XP脚输入按压点电压。 控制信号: nYPON=0; nYMON=1 nXPON=1; nXMON=0测Y测X

3、S3C24120XA/D转换器的工作模式 有5种:普通转换模式、分离的X/Y坐标转换模式、连续的X/Y坐标转换模式、等待中断模式、静态模式。第2---4种是用于触摸屏。

(1)普通转换模式 用于一般A/D转换,不是用于触摸屏。转换结束后,其数据在ADCDAT0中的XPDATA域。

(2)分离的X/Y坐标转换模式 分两步进行X/Y坐标转换,其转换结果分别存于ADCDAT0中的XPDATA域中和ADCDAT1中的YPDATA域中,并且均会产生INT_ADC中断请求。

(3)自动(连续)的X/Y坐标转换模式

X坐标转换结束启动Y坐标转换,其转换结果分别存于ADCDAT0中的XPDATA域中和ADCDAT1中的YPDATA域中,然后产生INT_ADC中断请求。

(4)等待中断转换模式 在该模式下,转换器等待使用者按压触摸屏,一旦触摸屏被按压,则产生INT_TC触摸屏中断请求。 中断后,在中断处理程序中再将转换器设置为分离的X/Y坐标转换模式、或者连续的X/Y坐标转换模式进行处理。

触摸屏接口信号:

XP=上拉 XM=高阻

YP=AIN[5] YM=接地

(5)静态模式 当ADCCON中的STDBM设为1时,转换器进入静态模式,停止A/D转换。其数据域的数据保持不变。

三、ADC和触摸屏专用寄存器 有5个专用寄存器RegisterAddressR/WDescriptionResetValueADCCON0x58000000R/WADC控制寄存器0x3FC4ADCTSC0x58000004R/W触摸屏控制寄存器0x058ADCDLY0x58000008R/WADC起始延迟寄存器0x00FFADCDAT00x5800000CRADC转换数据0寄存器-ADCDAT10x58000010RADC转换数据1寄存器-ECFLG---转换结束标志(只读)

0:转换操作中; 1:转换结束PRSCEN---转换器预分频器使能

0:停止预分频器; 1:使能预分频器PRSCVL---转换器预分频器数值

数值N范围:1---255

注意:(1)实际除数值为N+1

(2)对N数值的要求:转换速率应该<PCLK/5

1、ADCCON---ADC控制寄存器

151413……6ECFLGPRSCENPRSCVL543210SEL_MUXSTDBMREAD_STARTENABLE_STARTSEL_MUX---模拟输入通道选择

000:AIN0; 001:AIN1 010:AIN2 011:AIN3 …… 111:AIN7STDBM---备用模式设置

0:正常工作模式; 1:备用模式,不做A/D转换READ_START---通过读取启动转换

0:停止通过读取启动转换;1:使能通过读取启动转换ENABLE_START---通过设置该位启动转换

0:无效; 1:启动A/D转换(启动后被清0) 注意:如果READ_START为1,则该位无效543210SEL_MUXSTDBMREAD_STARTENABLE_STARTYM_SEN---选择YMON的输出值

0:输出0(YM=高阻); 1:输出1(YM=GND)YP_SEN---选择nYPON的输出值

0:输出0(YP=外部电压); 1:输出1(YP连接AIN[5])XM_SEN---选择XMON的输出值

0:输出0(XM=高阻); 1:输出1(XM=GND)XP_SEN---选择nXP的输出值

0:输出0(XP=外部电压); 1:输出1(XP连接AIN[7])

2、ADCTSC---ADC触摸屏控制寄存器876543210保留0YM_SENYP_SENXM_SENXP_SENPULL_UPAUTO_PSTXY_PSTPULL---上拉切换使能

0:XP上拉使能; 1:XP上拉禁止AUTO_PST---自动连续转换X轴和Y轴坐标模式选择

0:普通A/D转换; 1:连续X/Y轴转换模式XY_PST---手动测量X轴和Y轴坐标模式选择

00:无操作模式; 01:对X坐标测量;

10:对X坐标测量; 11:等待中断模式876543210保留0YM_SENYP_SENXM_SENXP_SENPULL_UPAUTO_PSTXY_PST31……1615141312111098876543210保留为0起始延迟数值---分两种情况第一情况: 对普通转换模式、分离的X/Y轴坐标转换模式、连续的X/Y轴坐标转换模式,为转换延时数值。第二种情况:

对中断转换模式,为按压触摸屏后到产生中断请求的延迟时间数值,其时间单位为ms。

3、ADCDLY---ADC起始延迟寄存器UPDOWN---等待中断模式的按压状态

0:触笔点击; 1:触笔提起AUTO_PST---自动X/Y轴转换模式指示

0:普通转换模式; 1:X/Y轴坐标连续转换XY_PST---手动X/Y轴转换模式指示

00:无操作; 01:为X轴坐标转换

10:为Y轴坐标转换 11:为等待中断转换XPDATA[9:0]:为X轴坐标转换数值、或普通ADC转换数值 具体意义由其它位指示。其值为:0---0x3FF4、ADCDAT0---ADC转换数据0寄存器1514131211109……0UPDOWNAUTO_PSTXY_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:为等待中断转换YPDATA[9:0]:为10位Y轴坐标转换结果 其值为:0---0x3FF 5、ADCDAT1---ADC转换数据1寄存器1514131211109……0UPDOWNAUTO_PSTXY_PST保留(0)YPDATA

例题:编写程序,对3通道的模拟量连续做10次转换,用查询方式读取转换结果,其数据存于0x400000开始的区域。AREAADC,CODE,READONLY ENTRYSTART#definerADCCON(*(volatileunsigned*)0x58000000)#definerADCDAT0(*(volatileunsigned*)0x5800000c)#definepref49#definech3voidadc(void){ intadc_data[10],i;

rADCCON=(1<<14)|(pref<<6)|(ch<<3)|1 //允许预分频

for(i=0;i<10;i++) { while(rADCCON&0x8000==0); //查询转换结束否

adc_data[i]=rADCDAT0&0x3ff; //读取转换结果

rADCCON|=1; //再次启动转换

}}4.5中断主要内容概述结构与工作原理寄存器应用举例一、概述

S3C2410X中断控制器有56个中断源,对外提供24个外中断输入引脚,内部所有设备都有中断请求信号,例如DMA控制器、UART、IIC等等。

S3C2410X的ARM920T内核有两个中断,IRQ中断和快速中断FIQ。

中断仲裁:当中断控制器接收到多个中断请求时,其内的优先级仲裁器裁决后向CPU发出优先级最高的中断请求信号或快速中断请求信号。二、S3C2410X中断系统结构

1、中断系统结构 主要由中断源和控制寄存器两大部分构成,其寄存器主要有4种:模式、屏蔽、优先级、挂起(标志)寄存器等。中断源(有子寄存器)子中断源挂起寄存器中断源(无子寄存器)子中断源屏蔽寄存器中断屏蔽中断模式优先级仲裁FIQIRQ中断源挂起中断挂起

2、中断优先级仲裁器及工作原理

中断系统有6个分仲裁器和1个总仲裁器,每一个仲裁器可以处理6路中断。

三、中断控制器专用寄存器 有8个专用寄存器RegisterAddressR/WDescriptionResetValueSRCPND0x4A000000R/W中断标志寄存器0x00000000INTMOD0x4A000004R/W中断模式寄存器0x00000000INTMSK0x4A000008R/W中断屏蔽寄存器0xFFFFFFFFPRIORITY0x4A00000CR/W中断优先级寄存器0x7FINTPND0x4A000010R/W中断服务寄存器0x00000000INTOFFSET0x4A000014R中断偏移寄存器0x00000000SUBSRCPND0x4A000018R/W子源挂起寄存器0x00000000INTSUBMSK0x4A00001CR/W中断子源屏蔽寄存器0x7FF

主要使用前5个寄存器

该寄存器也就是中断标志寄存器各位: 1:对应中断源有中断请求

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

该寄存器是设置各中断源是FIQ中断还是IRQ中断各位: 1:对应中断源设为FIQ中断模式

0:对应中断源设为IRQ中断模式

2、INTMOD---中断模式寄存器

位号中断源位号中断源位号中断源位号中断源31INT_ADC23INT_UART115INT_UART27nBATT_FLT30INT_RTC22INT_SPI014INT_TIM46保留29INT_SPI121INT_SDI13INT_TIM35EINT8_2328INT_UART020INT_DMA312INT_TIM24EINT4_727INT_IIC19INT_DMA211INT_TIM13EINT326INT_USBH18INT_DMA110INT_TIM02EINT225INT_USBD17INT_DMA09INT_WDT1EINT124保留16INT_LCD8INT_TICK0EINT0各位: 1:屏蔽对应中断源

0:开放对应中断源

3、INTMSK---中断屏蔽寄存器

位号中断源位号中断源位号中断源位号中断源31INT_ADC23INT_UART115INT_UART27nBATT_FLT30INT_RTC22INT_SPI014INT_TIM46保留29INT_SPI121INT_SDI13INT_TIM35EINT8_2328INT_UART020INT_DMA312INT_TIM24EINT4_727INT_IIC19INT_DMA211INT_TIM13EINT326INT_USBH18INT_DMA110INT_TIM02EINT225INT_USBD17INT_DMA09INT_WDT1EINT124保留16INT_LCD8INT_TICK0EINT0

4、PRIORITY---中断优先级寄存器

ARB_SELn---n组优先级顺序控制位

00:REQ0,1,2,3,4,5 01:REQ0,2,3,4,1,5 10:REQ0,3,4,1,2,511:REQ0,4,1,2,3,5ARB_MODEn---n组优先级循环控制位

0:优先顺序固定不变

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

0:对应中断源未被响应注意:必须在中断处理程序中对其服务标志位清0。方法为对某位写1便清除为0。

即在清除SRCPND中相应位后,要清除该寄存器相应位。5、INTPND---中断服务(挂起)寄存器位号中断源位号中断源位号中断源位号中断源31INT_ADC23INT_UART115INT_UART27nBATT_FLT30INT_RTC22INT_SPI014INT_TIM46保留29INT_SPI121INT_SDI13INT_TIM35EINT8_2328INT_UART020INT_DMA312INT_TIM24EINT4_727INT_IIC19INT_DMA211INT_TIM13EINT326INT_USBH18INT_DMA110INT_TIM02EINT225INT_USBD17INT_DMA09INT_WDT1EINT124保留16INT_LCD8INT_TICK0EINT0

该寄存器的偏移值指示在INTPND中显示的中断源各位: 1:对应的中断源,在INTPND中被置位

说明:当在中断服务程序中对SRCPND、INTPND中的标志位清0时,该寄存器的对应位自动清0。6、INTOFFSET---中断偏移寄存器中断源偏移值中断源偏移值中断源偏移值中断源偏移值INT_ADC31INT_UART123INT_UART215nBATT_FLT7INT_RTC30INT_SPI022INT_TIM414保留6INT_SPI129INT_SDI21INT_TIM313EINT8_235INT_UART028INT_DMA320INT_TIM212EINT4_74INT_IIC27INT_DMA219INT_TIM111EINT33INT_USBH26INT_DMA118INT_TIM010EINT22INT_USBD25INT_DMA017INT_WDT9EINT11保留24INT_LCD16INT_TICK8EINT007、SUBSRCPND---子中断源请求标志寄存器

对有多个中断源的外设,显示其具体的中断请求各位:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论