S3C2440A中文手册【八】
- 格式:pdf
- 大小:216.48 KB
- 文档页数:11
VBPD: 垂直同步信号的后肩,单位为1行(Line)的时间。
LINEVAL :垂直显示尺寸-1,即屏行宽-1。
HBPD:水平同步信号的后肩,单位为1VCLK的时间。
HFPD:水平同步信号的前肩,单位为1VCLK的时间。
HSPW:水平同步信号的脉宽,单位为1VCLK的时间。
HOZVAL:水平显示尺寸-1,即屏列宽-1。
由上图可知:扫描一帧所需的时间:=((VSPW+1)+(VBPD+1)+( LINEVAL+1)+(VFPD+1))个行时间。
扫描一行所所需的时间:=((HSPW+1)+(HSPD+1)+(HFPD+1)+ (HOZVAL+1))个VCLK时间。
而一个VCLK时间由LCD寄存器LCDCON1内的CLKVAL决定:=HCLK/[2*(CLKVAL+1)]因此扫描一帧所需的时间:T=[(VSPW+1)+(VBPD+1)+( LINEVAL+1)+(VFPD+1)]*[(HSPW+1)+(HSPD+1)+(HFPD+1)+ (HOZVAL+1)]* HCLK/[2*(CLKVAL+1)]即帧频率为:1/T注意:以上的时序图为一般TFT的时序图。
实际TFT对应的时序图时序可能不一样(比如极性,符号等)。
下文中详述。
图2东华TFT型LCD(WXCAT35)时序图//2440A寄存器参数#define MVAL (13)#define MVAL_USED (0) //0=each frame 1=rate by MVAL#define INVVDEN (1) //0=normal 1=inverted#define BSWP (0) //Byte swap control#define HWSWP (1) //Half word swap control#define PNRMODE (3) // 设置为TFT屏#define BPPMODE (12) // 设置为16bpp模式//东华屏参数#define VBPD (3-1) //12 垂直同步信号的后肩参数见东华pdf #define VFPD (14-1) //4 垂直同步信号的前肩#define VSPW (15-1) //5垂直同步信号的脉宽#define HBPD (38-1) //(22)水平同步信号的后肩#define HFPD (20-1) //(33)水平同步信号的前肩#define HSPW (30-1) //(44)水平同步信号的脉宽#define CLKVAL_TFT (6)//屏大小#define LCD_XSIZE_TFT (240)//屏实际列数#define LCD_YSIZE_TFT (320)// 屏实际行数#define SCR_XSIZE_TFT (240) //虚拟屏列数#define SCR_YSIZE_TFT (320) //虚拟屏行数#define HOZVAL_TFT (LCD_XSIZE_TFT-1)#define LINEVAL_TFT (LCD_YSIZE_TFT-1)以上有关东华屏参数设置,在PDF中如下所示:7. LCDSADDR2寄存器rLCDSADDR2=M5D( ((U32)LCD_BUFFER+(SCR_XSIZE_TFT*LCD_YSIZE_TFT*2))>>1 );//单位为字节一个点16bit=2字节8. LCDSADDR3寄存器rLCDSADDR3=(((SCR_XSIZE_TFT-LCD_XSIZE_TFT)/1)<<11)|(LCD_XSIZE_TFT/1);// 1=*16bit/半字=16/16LCD初始化程序:void Lcd_Init(void){//引脚功能初始化rGPCUP = 0x00000000;rGPCCON = 0xaaaa02a9;rGPDUP = 0x00000000;rGPDCON=0xaaaaaaaa; //Initialize VD[15:8]rLCDCON1=(CLKVAL_TFT<<8)|(MVAL_USED<<7)|(PNRMODE<<5)|(BPPMODE<<1)|0;// TFT LCD panel,16bpp TFT,ENVID=off(Disable the video output and the LCD control signal) rLCDCON2=(VBPD<<24)|(LINEVAL_TFT<<14)|(VFPD<<6)|(VSPW);rLCDCON3=(HBPD<<19)|(HOZVAL_TFT<<8)|(HFPD);rLCDCON4=(MVAL<<8)|(HSPW);rLCDCON5 = (1<<11) | (1<<10) | (1<<9) | (1<<8) | (0<<7) | (0<<6) | (1<<3) |(BSWP<<1) | (HW //5:6:5rLCDSADDR1=(((U32)LCD_BUFFER>>22)<<21)|M5D((U32)LCD_BUFFER>>1);rLCDSADDR2=M5D( ((U32)LCD_BUFFER+(SCR_XSIZE_TFT*LCD_YSIZE_TFT*2))>>1 );//单位为字节一个rLCDSADDR3=(((SCR_XSIZE_TFT-LCD_XSIZE_TFT)/1)<<11)|(LCD_XSIZE_TFT/1);// 1=*16bit/半字= rLCDINTMSK|=(3); // MASK LCD Sub InterruptrTCONSEL &= (~7) ; // Disable LPC3480rTPAL=0; // Disable Temp Palette}16BPP模式特点:内存数据格式:。
第十九章MMC/SD/SDIO控制器19.1特点-兼容SD存储卡规格(1.0版本)或MMC规格(2.11版本)-兼容SDIO卡规格(1.0版本)-用于数据接收发送的16字(64字节)FIFO-40位的命令寄存器-136位的响应寄存器-8位的预定标器逻辑(频率=系统时钟/(P+1))-通常模式或DMA传输模式(字节、半字及字传输)-DMA burst4访问支持(仅字传输)-1位/4位(宽总线)模式及模块/流模式开关支持19.2模块图19.3SD操作串行时钟线同步在五根数据线上的信息移位和采样。
传输频率通过设定SDIPRE寄存器的相应位的设定来控制。
你可以修改频率来调节波特率数据寄存器值。
19.3.1编程过程(普通)对SDI模块编程,按以下基本步骤:(1)设置SDICON寄存器来配置适当的时钟及中断使能(2)设置SDIPRE寄存器配置适当的值。
(3)等待74个SDCLK时钟以初始化卡。
19.3.2CMD路径编程(1)写命令参数32位到SDICmdArg(2)决定命令类型并通过设置SDICmdCon开始命令传输(3)当SDICmdSta的特殊标志被置位,确认SDICMD路径操作的结束。
(4)如果命令类型是不相应,标志是CmdSent。
(5)如果命令类型是相应,标志是RspFin。
(6)通过对相应位写1,清除SDICmdStaD的标志。
19.3.3数据路径编程(1)写数据超时期间到SDIDTimer(2)写模块大小(模块长度)到SDIBSize(通常是0x80字)(3)确定模块模式,宽总线,DMA等且通过社子SDIDatCon来开始数据传输(4)发送数据->写数据到数据寄存器(SDIDAT),当发送FIFO有效(TFDET置位),或一半(TFHalf置位),或空(TFEmpty置位)。
(5)接收数据->从数据寄存器(SDIDAT)读数据,当接收FIFO有效(RFDET置位),或满(RFFull置位)。
第十六章ADC和触摸屏接口16.1概述10位CMOS的ADC(模数转换器)是有8通道模拟输入的循环类型设备。
其转换模拟输入信号到10位的数字编码,最大的转换率是在2.5MHz转换时钟下达到500KSPS。
AD转换器支持片上采样和保持功能及掉电模式。
触摸屏接口可以控制或选择触摸屏触点用于XY坐标的转换。
触摸屏接口包括触摸触点控制逻辑和有中断产生逻辑的ADC接口逻辑。
16.2特点-分辨率:10位-微分线性误差:±1.0LSB-积分线性误差:±2.0LSB-最大转换速率:500KSPS-低功耗-供电电压:3.3V-输入模拟电压范围:0~3.3V-片上采样保持功能-普通转换模式-分离的XY坐标转换摸-自动连续XY坐标转换模式-等待中断模式16.3ADC及触摸屏接口操作模块图如图16-1所示AD转换器和触摸屏接口的功能模块图。
注意AD转换器设备是一个循环类型。
注意(图标)当触摸屏接口使用时,XM或PM应该接触摸屏接口的地。
当触摸屏设备不使用时,XM或PM应该连接模拟输入信号作为普通ADC转换用。
16.4功能描述16.4.1AD转换时间当GCLK频率为50MHz和预分频器(预定标器)值为49,总共10位转换时间如下:AD转换器频率=50MHz/(49+1)=1MHz转换时间=1/(1MHz/5cycles)=1/200KHz=5us注:AD转换器设计在最大2.5MHz时钟下工作,所以转换率最高达到500KSPS。
16.4.2触摸屏接口模式(1)正常转换模式单个转换模式可能多数是使用在通用目的的ADC转换。
该模式可以通过设置ADCCON(ADC控制寄存器)来初始化并且完成对ADCDAT0的读写操作(ADC数据寄存器0)。
(2)分离XY坐标转换模式触摸屏控制器可以在两种转换模式中的一种模式下操作。
分离的XY坐标转换模式由以下方法操作。
X坐标模式写X坐标转换数据到ADCDAT0,触摸屏接口产生中断源到中断控制器。
以下程序在Keil4中建立项目,芯片选S3C 2410A无论是S3C2410A还是S3C2440A,其IO口B都是11位二进制数,xxx xxxx xxxx,现在控制第5、6、7、8为做输出点亮LED灯(共阳极,输出0点亮),即xx8 765x xxxx,GPBCON equ 0x56000010GPBDAT equ 0x56000014GPBUP equ 0x56000018xport xmainarea Init,code,readonlyentryexportxmainldr r0,=GPBCONldr r1,[r0]bic r1,#0x3fC00 ;r1=xx00 0000 00xx xxxx xxxxorr r1,#0x15400 ;r1=xx01 0101 01xx xxxx xxxxstr r1,[r0] ;r1传给GPBCON设置8765位为输出ldr r0,=GPBUPldr r1,[r0]orr r1,#0x1e0 ;r1=xx1 111x xxxxstr r1,[r0] ;开B口第8、7、6、5位上拉电阻ldr r0,=GPBDATldr r2,[r0] ;把B口最初状态保存在R2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;LOOP dr r1,[r2]orr r1,#0x1c0str r1,[r0]bl delay;BL跳转时将PC+4值自动保存在R14即LR中,也就是将程序的下一个语句地址保存在lr中在跳;转后执行mov pc,lr相当于返回,这样BL相当于调用子程序,pc=lr相当于子程序返回;;;;;;;;;;;;;;;;;;dr r1,[r2]orr r1,#0x1a0str r1,[r0]bl delay;;;;;;;;;;;;;;;;;;;;;ldr r1,[r2]orr r1,#0x160str r1,[r0]bl delay;;;;;;;;;;;;;;;;;;;;;;;;ldr r1,[r2]orr r1,#0x0e0str r1,[r0]bl delay;;;;;;;;;;;;;;;;;;;;;;;;b LOOPdelaymov r3,#3delay1 sub r3,r3,#1cmp r3,#0x0bne delay1mov pc,lr ;这句相当于子程序返回语句 end1. A(*(volatile unsigned *)0x56000010)的意思是把0x48000000强制转换成volatile unsigned long类型的指针,暂记为p,那么就是#define A *p,即A为P指针指向位置的内容了。
IIC-BUS INTERFACE SPECIAL REGISTERSMULTI-MASTER IIC-BUS CONTROL (IICCON) REGISTERRegister Address R/W DescriptionReset ValueIICCON0x54000000R/WIIC-Bus control register0x0XIICCON Bit DescriptionInitial StateAcknowledge generation (note 1)[7]IIC-bus acknowledge enable bit.0 = Disable, 1 = EnableIn Tx mode, the IICSDA is free in the ack time.In Rx mode, the IICSDA is L in the ack time.Tx clock source selection [6]Source clock of IIC-bus transmit clock prescaler selection bit.0 = IICCLK = f PCLK /161 = IICCLK = f PCLK /512Tx/Rx Interrupt(note 5)[5]IIC-Bus Tx/Rx interrupt enable/disable bit.0 = Disable, 1 = Enable0Interrupt pending flag (note 2), (note 3)[4]IIC-bus Tx/Rx interrupt pending flag. This bit cannot be written to 1. When this bit is read as 1, the IICSCL is tied to L and the IIC is stopped. To resume the operation, clear this bit as 0.0 = 1) No interrupt pending (when read).2)Clear pending condition &Resume the operation (when write).1 = 1) Interrupt is pending (when read)2)N/A (when write)0Transmit clock value (note 4)[3:0]IIC-Bus transmit clock prescaler.IIC-Bus transmit clock frequency is determined by this 4-bit prescaler value, according to the following formula:Tx clock = IICCLK/(IICCON[3:0]+1).UndefinedNOTES:1.Interfacing with EEPROM, the ack generation may be disabled before reading the last data in order to generate theSTOP condition in Rx mode.2.An IIC-bus interrupt occurs 1) when a 1-byte transmit or receive operation is completed, 2) when a general call or a slaveaddress match occurs, or 3) if bus arbitration fails.3.To adjust the setup time of IICSDA before IISSCL rising edge, IICDS has to be written before clearing the IIC interruptpending bit.4.IICCLK is determined by IICCON[6].Tx clock can vary by SCL transition time.When IICCON[6]=0, IICCON[3:0]=0x0 or 0x1 is not available.5.If the IICON[5]=0, IICON[4] does not operate correctly.So, It is recommended that you should set IICCON[5]=1, although you does not use the IIC interrupt.IIC-BUS INTERFACES3C2410XMULTI-MASTER IIC-BUS CONTROL/STATUS (IICSTAT) REGISTERRegister Address R/W DescriptionReset ValueIICSTAT0x54000004R/WIIC-Bus control/status register0x0IICSTAT Bit DescriptionInitial StateMode selection[7:6]IIC-bus master/slave Tx/Rx mode select bits.00: Slave receive mode 01: Slave transmit mode 10: Master receive mode 11: Master transmit mode00Busy signal status /START STOP condition[5]IIC-Bus busy signal status bit.0 = read) Not busy (when read) write) STOP signal generation 1 = read) Busy (when read)write) START signal generation.The data in IICDS will be transferred automatically just after the start signal.0Serial output [4]IIC-bus data output enable/disable bit.0 = Disable Rx/Tx, 1 = Enable Rx/Tx 0Arbitration status flag[3]IIC-bus arbitration procedure status flag bit.0 = Bus arbitration successful1 = Bus arbitration failed during serial I/O 0Address-as-slave status flag[2]IIC-bus address-as-slave status flag bit.0 = Cleared when START/STOP condition was detected1 = Received slave address matches the address value in the IICADDAddress zero status flag[1]IIC-bus address zero status flag bit.0 = Cleared when START/STOP condition was detected.1 = Received slave address is 00000000b.0Last-received bit status flag[0]IIC-bus last-received bit status flag bit.0 = Last-received bit is 0 (ACK was received).1 = Last-received bit is 1 (ACK was not received).S3C2410X IIC-BUS INTERFACEIIC-BUS INTERFACE S3C2410XS3C2410X SPI INTERFACESPI SPECIAL REGISTERSSPI CONTROL REGISTERRegister Address R/W Description Reset Value SPCON00x59000000R/W SPI channel 0 control register0x00 SPCON10x59000020R/W SPI channel 1 control register0x00SPCONn Bit Description Initial StateSPI Mode Select (SMOD)[6:5]Determine how and by what SPTDAT is read/written.00 = polling mode, 01 = interrupt mode10 = DMA mode, 11 = reserved00SCK Enable (ENSCK)[4]Determine whether you want SCK enable or not (for onlymaster).0 = disable, 1 = enableMaster/Slave Select (MSTR)[3]Determine the desired mode (master or slave).0 = slave, 1 = masterNOTE: In slave mode, there should be set up time formaster to initiate Tx/Rx.Clock Polarity Select (CPOL)[2]Determine an active high or active low clock.0 = active high, 1 = active lowClock Phase Select (CPHA)[1]Select one of two fundamentally different transfer formats.0 = format A, 1 = format BTx Auto Garbage Data mode enable (TAGD)[0]Decide whether the receiving data only needs or not.0 = normal mode, 1 = Tx auto garbage data modeNOTE: In normal mode, if you only want to receive data,you should transmit dummy 0xFF data.。
第八章直接存储器存取概述s3c2440支持在系统总线和外围总线之间的4路DMA控制器。
每一路DMA控制器可以自由的执行数据在系统总线和(或)外围总线之间的动作。
换句话说,每一路可以在下列列4种情况下运行:1.源设备和目标设备都在系统总线上2.源设备在系统总线上,目标设备在外围总线上3.源设备在外围总线上,目标数据在系统总线上4.源设备和目标设备都在外围总线上DMA的主要优点是它可以不通过CPU直接调用数据。
DMA工执行可以软件开始,也可以从内部的外设请求或者外部的引脚请求开始。
DMA请求源每一路DMA控制器都可以从4种开始请求中选择一路,如果DCON寄存器选择H/W DAM 请求模式(注意,选择S/W时这个DMA请求源没意义)。
表8--1列出了4种请求和每一路的关系:表8--1.DMA开始请求和每一路关系这里nXDREQ0和nXDREQ1表示两个外部源(Extermal Devices),12SSDO和12SSDI分别表示IIS的传输和接收。
DMA 工作状态DMA应用3态FSN(有限状态机),它可以描述为以下3步:State--1. 作为起始状态,DMA等待DMA请求,一旦请求到来马上转到State--2,在这个状态,DMA ACK和INT REQ是0.State--2. 在这个状态,DMA ACK变为1,计数器(CURR_TC)从DCON[19:0]装载。
DMA ACK保持1,直到它被清0。
State--3. 在这个状态,控制DMA原子操作的子FSM被初始化了。
子FSM从源地址读取数据后把它写入目标地址。
在这个操作中,数据宽度和传输大小(单次或突发)应给与考虑。
在完整服务模式中,这种操作不断重复直到计数器(CURR_TC)变为0。
然而在单一模式中只进行一次,当子FSM完成每个原子操作时,主FSM对CURR_TC倒计时。
另外,当CURR_TC为0和中断设置DCON[29]为1 时,主FSM发出INT REQ信号(中断请求信号)。
第八章DMA8.1概述S3c2440A支持位于系统总线和外设总线之间的4个通道的控制器。
每个DMA控制器通道无限制地执行系统总线上的设备或外设总线上的设备之间数据搬移。
换句话说,就是每个通道都操作一下四种情况:(1)源和目的设备都在系统总线上(2)源设备在系统总线上,目的设备在外设总线上(3)源设备在外设总线上,目的设备在系统总线上(4)源设备和目的设备都在外设总线上DMA的主要有点就是其传输数据不需要CPU的干涉。
DMA操作可由软件或来自内设或外部请求引脚来初始化。
8.1.1DMA请求源如果通过DCON寄存器H/W DMA的请求模式被选择,每个DMA控制器通道可以从四个DMA源中选择一个DMA请求源(如果S/W请求模式被选中,DMA请求源就完全没有任何意义)。
如表8-1所示对于每个通道的4个DMA源:Source0Source1Source2Source3Source4Source5Source6 Ch-0nXDREQ0UART0SDI Timer USB device EP1I2SSDO PCMIN Ch-1nXDREQ1UART1I2SSDI SPI0USB device EP2PCMOUT SDICh-2I2SSDO I2SSDI SDI Timer USB device EP3PCMIN MICINCh-3UART2SDI SPI1Timer USB device EP4MICIN PCMOUT 这里nXDREQ0和nXDREQ1表示两个外部源(外部设备),I2SSDO和I2SSDI分别表示IIS传输和接收。
8.1.2DMA操作DMA使用三态FSM(有限状态机)进行操作,其由一下三个步骤来描述:状态1:作为初始状态,DMA等待DMA请求。
一旦请求到达,其进入状态2。
在此状态,DMA ACK和INT REQ都为0。
状态2:在此状态,DMA ACK变成1且计数器(CURR_TC)从DCONN[19:0]装载。
第八章直接存储器存取概述s3c2440支持在系统总线和外围总线之间的4路DMA控制器。
每一路DMA控制器可以自由的执行数据在系统总线和(或)外围总线之间的动作。
换句话说,每一路可以在下列列4种情况下运行:1.源设备和目标设备都在系统总线上2.源设备在系统总线上,目标设备在外围总线上3.源设备在外围总线上,目标数据在系统总线上4.源设备和目标设备都在外围总线上DMA的主要优点是它可以不通过CPU直接调用数据。
DMA工执行可以软件开始,也可以从内部的外设请求或者外部的引脚请求开始。
DMA请求源每一路DMA控制器都可以从4种开始请求中选择一路,如果DCON寄存器选择H/W DAM 请求模式(注意,选择S/W时这个DMA请求源没意义)。
表8--1列出了4种请求和每一路的关系:表8--1.DMA开始请求和每一路关系这里nXDREQ0和nXDREQ1表示两个外部源(Extermal Devices),12SSDO和12SSDI分别表示IIS的传输和接收。
DMA 工作状态DMA应用3态FSN(有限状态机),它可以描述为以下3步:State--1. 作为起始状态,DMA等待DMA请求,一旦请求到来马上转到State--2,在这个状态,DMA ACK和INT REQ是0.State--2. 在这个状态,DMA ACK变为1,计数器(CURR_TC)从DCON[19:0]装载。
DMA ACK保持1,直到它被清0。
State--3. 在这个状态,控制DMA原子操作的子FSM被初始化了。
子FSM从源地址读取数据后把它写入目标地址。
在这个操作中,数据宽度和传输大小(单次或突发)应给与考虑。
在完整服务模式中,这种操作不断重复直到计数器(CURR_TC)变为0。
然而在单一模式中只进行一次,当子FSM完成每个原子操作时,主FSM对CURR_TC倒计时。
另外,当CURR_TC为0和中断设置DCON[29]为1 时,主FSM发出INT REQ信号(中断请求信号)。
另外,如果发生下列情况之一,DMA ACK将被清零。
1)在整体服务模式中CURR_TC变为02)在单一模式中原子操作完成注:在单一服务模式中,主FSM的三个状态进行然后停止,等待另外的DMA REQ。
如果DMA REQ到来,重复三种状态。
因此,DMA ACK被使能然后被取消后进行每一个原子操作。
相反的,在整体服务模式中,主FSM等待在state-3直到CURR_TC变为0。
所以,在TC到达0时,DMA ACK在传输区间被使能然后被取消。
总之,INT REQ被使能只由CURR_TC是否为0决定,与服务模式无关(单一服务模式或整体服务模式)。
应答((DREQ/DACK)协议外部DMA 请求/应答有三种类型的外部DMA请求/应答协议(单一需求模式、单一同步交换模式和整体同步交换模式)。
每一种类型定义这些协议涉及到什么样的DMA请求和应答信号。
基本DMA 时序图DMA服务意味着在DMA操作中执行一对读、写循环,它可以考试一个DMA操作。
图8--1显示了S3C2440DMA操作中的继电器——XnXDREQ和XnXDACK中的建立时间(serup)和延时时间(delay)在所有模式下都是相同的——如果XnXDREQ完成遇上建立时间,那么它将同步加强为原来的两倍,这是XnXDACK 被声明了——XnXDACK声明以后,DMA请求总线,如果到达总线则执行其操作,DMA操作完成后运行XnXDACK图8--1.基本DMA 时序图需求/同步交换模式比较需求和同步交换模式都涉及到XnXDREQ和XnXDACK协议。
图8--2指出了两种模式之间的不同在操作(单一/突发操作)最后,DMA组织双同步XnXDREQ。
需求模式—如果XnXDREQ尚未使能,那么下一个操作马上开始。
否则它一直等XnXDREQ被设为无效。
同步交换模式—如果XnXDREQ无效,DMA取消XnXDACK两个周期。
否怎,一直等XnXDREQ被设为无效。
注:XnXDREQ只在XnXDACK无效(hugh)后被使能(low)图8—2需求模式和同步交换模式比较传送容量—有两种不同的传输方式,unit和Burst 4—在传输大量数据时,DMA牢牢占据总线,因此其他总线主控不能得到总线Burst 4传输容量有四组连续的读、写操作在Burst 4中分别完成Unit传输型:执行单读、写注Unit图8--3.Burst 4Burst 4传输型举例举例Unit Unit传输容量的单一服务需求模式传输容量的单一服务需求模式传输容量的单一服务需求模式每一个Unit UnitUnit传输(单一服务模式)都需要XnXDREQ使能。
这个操作一直延续到XnXDREQ被使能(需求模式),一对读、写(单一传输容量)操作被执行。
图8--4.Unit Unit Unit传输容量的单一服务需求模式传输容量的单一服务需求模式Unit Unit传输容量的单一服务单同步交换模传输容量的单一服务单同步交换模传输容量的单一服务单同步交换模式式图8--5.Unit Unit传输容量的单一服务单同步交换模式传输容量的单一服务单同步交换模式Unit Unit传输容量的整体服务同步交换模式传输容量的整体服务同步交换模式传输容量的整体服务同步交换模式图8--6.Unit Unit传输容量的整体服务同步交换模式传输容量的整体服务同步交换模式DMA DMA专用寄存器专用寄存器专用寄存器每一路DMA有九个控制寄存器(4路一共有36个)。
其中6个控制寄存器控制DMA传输,另外的3个监听DMA控制器状态。
详细说明如下。
DMA 初始源寄存器DMA INITIAL SOURCE (DISRC) REGISTER DMA INITIAL SOURCE (DISRC) REGISTERDISRCCn DISRCCn Bit Bit 说明初始状态LOC[1]Bit 1用来选择源位置0:源在系统总线(AHB )上 1: 源在外围设备总线(APB )上INC [0] Bit 0用来选择地址增量 0=增加 1=不变如果为0,在突发和单一传出模式传输之后地址随数据量增加。
如果为1,地址在传输后不变。
(在突发模式,地址在传输过程中增加,但是在传输结束后恢复到初始值。
)寄存器寄存器寄存器 地址地址 R/W R/W 说明说明 重新赋值重新赋值 DISRC0 0x4B000000 R/W DMA 0 initial source register 0x00000000 DISRC1 0x4B000000 R/W DMA 1 initial source register 0x00000000 DISRC2 0x4B000000 R/W DMA 2 initial source register 0x00000000 DISRC3 0x4B000000R/WDMA 3 initial source register0x00000000DMA 初始目的寄存器DMA INITIAL DESTINATION (DIDST) REGISTER DMA INITIAL DESTINATION (DIDST) REGISTERDIDSTCn Bit 说明初始状态CHK_INT[2]在自动重装载被设置时,选择中断发生的时间。
0:TC 到达0时发生中断。
1:自动重装载完成后发生中断。
0LOC [1] Bit1用来选择目标文件位置0:目标文件在系统总线上(AHB ) 1:目标文件在外部设备总线上(APB ) 0INC [0] Bit 0用来选择地址增量 0=增加 1=不变如果为0,在所有单一和突发传输模式之后地址随数据量增加。
寄存器寄存器寄存器 地址地址 R/W R/W 说明说明 重新赋值重新赋值 DIDST0 0x4B000008 R/W DMA 0 initial destinationregister 0x00000000 DIDST1 0x4B000048 R/W DMA 1 initial destinationregister 0x00000000 DIDST2 0x4B000088 R/W DMA 2 initial destinationregister 0x00000000 DIDST3 0x4B00000B8R/WDMA 3 initial destinationregister0x00000000如果为1,传输之后地址不变。
(在突发模式中,地址在传输过程中增加,但在传输之后恢复成原来的值。
)DMA 控制寄存器DMA DMA CONTROL (DCON) REGISTER CONTROL (DCON) REGISTER CONTROL (DCON) REGISTER寄存器寄存器寄存器 地址地址 R/W R/W 说明说明 重新赋值重新赋值 DCON0 0x4B000010 R/W DMA 0 source register 0x00000000 DCON1 0x4B000050 R/W DMA1 source register 0x00000000 DCON2 0x4B000090 R/W DMA 2 source register 0x00000000 DCON3 0x4B0000D0R/WDMA 3 source register0x0000000010 = Word 11 = reservedTC[19:0]初始传输个数传输的字节数有下列公式计算:DSZ x TSZ x TC 。
其中DSZ,TSZ (1 or 4)和TC 分别表示DCONn[21:20]数据量,DCONn[28]传输量和初始传输个数。
只有到CURR_TC 为0并且DMA ACK 为1时,这个之被写入CURR_TC00000DMA 状态状态寄存器寄存器 DMA CONTROL (DCON) REGISTER DMA CONTROL (DCON) REGISTERDCSRCn DCSRCn Bit Bit 说明初始状态 CURR_SRC [30:0]适合DMAn 的当前源地址0x00000000寄存器寄存器寄存器 地址地址 R/W R/W 说明说明 重新赋值重新赋值 DCSRC0 0x4B000018 R DMA 0 当前源寄存器 0x00000000 DCSRC1 0x4B000058 R DMA1 当前源寄存器 0x00000000 DCSRC2 0x4B000098 R DMA 2 当前源寄存器 0x00000000 DCSRC3 0x4B0000D8RDMA 3 当前源寄存器 0x00000000当前目的寄存器当前目的寄存器 CURRENT DESTINATION (DCDST) REGISTER CURRENT DESTINATION (DCDST) REGISTER寄存器寄存器寄存器 地址地址 R/W R/W 说明说明 重新赋值重新赋值 DCDST0 0x4B00001C R DMA0 当前目的寄存器 0x00000000 DCDST1 0x4B00005C R DMA1 当前目的寄存器 0x00000000 DCDST2 0x4B00009C R DMA 2 当前目的寄存器 0x00000000 DCDST3 0x4B0000DCRDMA 3 当前目的寄存器0x00000000S3C2440A 数据手册 保定飞凌嵌入式技术有限公司 马志晶 mazhijing@11 9/10/2007 当DCON[22]位是“不自动重启”,这位在CURR_TC 为0时变为0。