版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章
S3C2440A微处理器外围电路部分本章主要内容DMA中断控制器PWM定时器UART端口8.1DMA8.1.1DMA简介
S3C2440A微处理器拥有4个通道的DMA控制器,相连于系统总线和外围总线。DMA控制器的每一个通道都可以用在系统总线上的存储器与外围总线之间、系统总线上的设备之间。外围总线之间的操作数据传输不被限制。
S3C2440A微处理器的DMA在以下4种情况下可使用。(1)源设备和目标设备都连在系统总线AHB上。(2)源设备和目标设备都连在外围总线APB上。(3)源设备连在系统总线AHB上,目标设备连在外围总线APB上。(4)源设备连在外围总线APB上,目标设备连在系统总线AHB上。
DMA的主要优点是可以不通过CPU中断来实现数据的传输,DMA的运行可以通过软件或外围设备的中断和请求来初始化。8.1.2DMA工作原理1.DMA的服务对象
每个DMA通道都有5个DMA请求源,通过设置,可以从中挑选一个请求源。
每个通道可使用的DMA请求源如表8-1所示。通道请求源0请求源1请求源2请求源3请求源4通道0nXDREQ0UART0SDITimerUSB设备EP1通道1nXDREQ1UART1IIS/SDISPI0USB设备EP2通道2IISSDOIISSDISDITimerUSB设备EP3通道3UART2SDISPIITimerUSB设备EP4表8-1每个通道可使用的DMA请求源2.DMA的工作过程
DMA的工作过程如图8-1所示。图8-1DMA的工作过程
传送完规定的数据后,DMA撤销HOLD信号,CPU撤销HLDA信号,并且恢复对3条总线(地址总线、数据总线、控制总线)的控制。
S3C2440A微处理器的DMA工作过程可以分为以下3个状态。(1)状态1——
等待状态。(2)状态2——
准备状态。(3)状态3——传输状态。3.外部DMA请求/响应协议
DMA有3种类型的外部DMA请求/响应协议。(1)单服务请求——
SingleServiceDemand(请求模式)。(2)单服务握手——
SingleServiceHandshake(握手模式)。(3)全服务握手——
WholeServiceHandshake(全服务模式)。4.DMA时序要求
DMA的基本时序要求如下。(1)DMA请求信号和响应信号的建立(Setup)时间与延迟(Delay)时间在所有的模式下都是相同的。(2)如果DMA请求信号的建立时间满足要求,则在两个周期内实现同步,然后DMA响应信号变得有效。(3)在DMA响应信号变得有效后,DMA向CPU请求总线。如果它得到总线就执行操作。DMA操作完成后,DMA响应信号变得无效。
DMA服务在DMA操作过程中成对执行读和写周期。S3C2440A微处理器DMA操作的基本时序图如图8-2所示。图8-2DMA操作的基本时序图8.1.3DMA特殊功能寄存器1.DMA初始源寄存器
DMA初始源寄存器DISRCn如表8-2所示。寄存器地址R/W描述初始值DISRC00X4B000000R/WDMA0初始源寄存器0X00000000DISRC10X4B000040R/WDMA1初始源寄存器0X00000000DISRC20X4B000080R/WDMA2初始源寄存器0X00000000DISRC30X4B0000C0R/WDMA3初始源寄存器0X00000000表8-2DMA初始源寄存器DISRCn
DISRCn寄存器中各个比特位描述如表8-3所示。DISRCn位描述初始值S_ADDR[30:0]发送源数据的基地址(开始地址)。只有当CURR_SRC为0和DMAACK为1时,此比特位的值装入CURR_SRC中0X00000000表8-3DISRCn寄存器中各个比特位描述2.DMA初始源控制寄存器
DMA初始源控制寄存器DISRCCn如表8-4所示。寄存器地址R/W描述初始值DISRCC00X4B000004R/WDMA0初始源控制寄存器0X00000000DISRCC10X4B000044R/WDMA1初始源控制寄存器0X00000000DISRCC20X4B000084R/WDMA2初始源控制寄存器0X00000000DISRCC30X4B0000C4R/WDMA3初始源控制寄存器0X00000000表8-4DMA初始源控制寄存器DISRCCn
DISRCCn寄存器中各个比特位描述如表8-5所示。DISRCCn位描述初始值LOC[1]位[1]用来选择源位置0:源位于系统总线(AHB)1:源位于外围总线(APB)0INC[0]位[0]用来选择地址增加方式0:增加,Burst和Single发送模式中每次发送数据之后地址以数据字节数增加1:固定,发送之后地址固定不变(在Burst模式下,地址Burst发送过程中增加,但是发送之后地址会返回到开始的值)0表8-5DISRCCn寄存器中各个比特位描述3.DMA初始目的寄存器
DMA初始目的寄存器DIDSTn如表8-6所示。寄存器地址R/W描述初始值DIDST00X4B000008R/WDMA0初始目的寄存器0X00000000DIDST10X4B000048R/WDMA1初始目的寄存器0X00000000DIDST20X4B000088R/WDMA2初始目的寄存器0X00000000DIDST30X4B0000C8R/WDMA3初始目的寄存器0X00000000表8-6DMA初始目的寄存器DIDSTn
DIDSTn寄存器中各个比特位描述如表8-7所示。DIDSTn位描述初始值D_ADDR[30:0]发送数据的目的基址(开始地址),仅在CURR_DST为0和DMAACK为1时,将次比特值装入CURR_SRC中OX00000000表8-7DIDSTn寄存器中各个比特位描述4.DMA初始目的控制寄存器
DMA初始目的控制寄存器DIDSTCn如表8-8所示。寄存器地址R/W描述初始值DIDSTC00X4B00000CR/WDMA0初始目的控制寄存器0X00000000DIDSTC10X4B00004CR/WDMA1初始目的控制寄存器0X00000000DIDSTC20X4B00008CR/WDMA2初始目的控制寄存器0X00000000DIDSTC30X4B0000CCR/WDMA3初始目的控制寄存器0X00000000表8-8
DMA初始目的控制寄存器DIDSTCn
DIDSTCn寄存器中各个比特位描述如表8-9所示。DIDSTCn位描述初始值LOC[1]位[1]用来选择目的地位置0:目的地位于系统总线(AHB)1:目的地位于外围总线(APB)0INC[0]位[0]用来选择地址增加方式0:增加,Burst和Single发送模式中每次发送数据之后地址以数据字节数增加1:固定,发送之后地址固定不变(在Burst模式下,地址Burst发送过程中增加,但是发送之后地址会返回到开始的值)0表8-9DIDSTCn寄存器中各个比特位描述5.DMA控制寄存器
DMA控制寄存器DCONn如表8-10所示。寄存器地址R/W描述初始值DCON00X4B000010R/WDMA0控制寄存器0X00000000DCON10X4B000050R/WDMA1控制寄存器0X00000000DCON20X4B000090R/WDMA2控制寄存器0X00000000DCON30X4B0000D0R/WDMA3控制寄存器0X00000000表8-10DMA控制寄存器DCONnDCONn寄存器中各个比特位描述如表8-11所示。DCONn位描述初始值DMD_HS[31]选择请求模式或握手模式0:选择请求模式1:选择握手模式在两种模式中,DMA控制器开始发送数据和为接收的DREQ产生DACK信号。这两种模式的不同之处为是否等待DACK上升沿在握手模式中,DMA控制器等待DREQ上升沿时才开始发送数据。如果发现了DREQ上升沿,那么会降低DACK并等待另一个DREQ下降沿相反,在请求模式中,DMA控制器直到DREQ被升高时才开始等待。如果DREQ为低电平,仅升高DACK,然后开始另一次发送建议使用握手模式对外部DMA请求进行操作,以阻止不期望数据的发送开始0SYNC[30]选择DREQ/DACK同步0:DREQ和DACK与PCLK(APB时钟)同步1:DREQ和DACK与PCLK(AHB时钟)异步对于连接在AHB系统总线的设备,此位应该设置为1;对于连接在APB外围总线的设备,此位应该设置为0对于连接在外围系统的设备,用户应该根据外围系统是和AHB同步还是和APB同步来确定设置0INT[29]使能/禁止CURR_TC中断0:CURR_TC中断禁止,用户必须查询状态寄存器中的发送器计数值1:当发送器完成操作时,产生中断请求,如CURR_TC变成00TSZ[28]选择一次发送操作的发送量0:单元发送(1字节)1:4B意外发送(4字节)0SERVMODE[27]选择同步服务模式或完整服务模式0:每次发送操作(单元或4B)结束选择同步服务模式,DMA停止,等待另一个DMA请求1:选择完整服务模式,获得一个请求就重复发送操作,直到发送器计数值为0,在此模式下,额外的请求将不被允许注意:在完整服务模式,DMA在每一次发送操作之后释放总线,然后努力再次获得总线控制权,以防止其他总线控制器获得0HWSRCSEL[26:24]为每一个DMA选择DMA请求源DCON0:000=nXDREQ0;001=UART0;010=SDI;011=Timer;100=USBdeviceEP1DCON1:000=nXDREQ1;001=UART1;010=I2SSDI;011=SPI;100=USBdeviceEP20表8-11DCONn寄存器中各个比特位描述DCONn位描述初始值HWSRCSEL[26:24]DCON2:000=I2SSDO;001=I2SSDI;011=SDI;011=Timer;100=USBdeviceEP3DCON3:000=UART2;001=SDI;010=SPI;011=Timer;100=USBdeviceEP4比特位控制4-1
MUX选择每一个DMA的DMA请求源,并且仅在通过DCONn[23]选择H/W请求模式时有意义0SWHW_SEL[23]选择S/W或者H/WDMA源0:选择S/W请求模式,并且通过设置DMASKTRIG控制寄存器SW_TRIG位来使DMA触发1:位[26:24]选择的DMA请求源触发DMA请求0RELOAD[22]设置重装功能开关0:当发送器的当前计数值变为0时,自动重装执行1:当发送器的当前计数值变为0时,DMA通道关闭(DMAREG),通道打开/关闭位(DMSKTRIGn[1])设置为0,以阻止再开始不期望的新的DMA操作0DSZ[21:20]发送数据数量00:字节;01:半字;10:字;11:保留0TC[19:0]初始发送器计数值注意:发送的当前字节数由以下等式计算——
DSZ×TSZ×TC,其中,DSZ、TSZ(1或4)和TC分别表示数据的数量(DCONn[21:20])、发送器大小(DCONn[28])和初始发送器计数值仅当CURR_SRC为0和DMAACK为1时,此值装入CURR_SRC0续表6.DMA状态寄存器
DMA状态寄存器DSTATn如表8-12所示。寄存器地址R/W描述初始值DSTAT00X4B000014R/WDMA0状态寄存器0DSTAT10X4B000054R/WDMA1计数寄存器0DSTAT20X4B000094R/WDMA2计数寄存器0DSTAT30X4B0000D4R/WDMA3计数寄存器0表8-12DMA状态寄存器DSTATn
DSTATn寄存器中各个比特位描述如表8-13所示。表8-13DSTATn寄存器中各个比特位描述DSTATn位描述初始值STAT[21:20]DMA控制器的状态00:指示DMA控制器为另一个DMA请求准备就绪01:指示DMA控制器发送繁忙0CURR_TC[19:0]发送器当前计数值注意:发送器计数初始值被设置为DCONn寄存器位[19:0]中的数据,并且在每一次发送结束后减107.DMA当前源寄存器
DMA当前源寄存器DSCRCn如表8-14所示。寄存器地址R/W描述初始值DCSRC00X4B000018R/WDMA0当前源寄存器0DCSRC10X4B000058R/WDMA1当前源寄存器0DCSRC20X4B000098R/WDMA2当前源寄存器0DCSRC30X4B0000D8R/WDMA3当前源寄存器0表8-14DMA当前源寄存器DSCRCn
DSCRCn寄存器中各个比特位描述如表8-15所示。DSCRCn位描述初始值CURR_SRC[30:0]DMAn当前源地址0表8-15DSCRCn寄存器中各个比特位描述8.DMA当前目的寄存器
DMA当前目的寄存器DCDSTn如表8-16所示。寄存器地址R/W描述初始值DCDST00X4B00001CR/WDMA0当前目的寄存器0DCDST10X4B00005CR/WDMA1当前目的寄存器0DCDST20X4B00009CR/WDMA2当前目的寄存器0DCDST30X4B0000DCR/WDMA3当前目的寄存器0表8-16DMA当前目的寄存器DCDSTn
DCDSTn寄存器中各个比特位描述如表8-17所示。DCDSTn位描述初始值CURR_DST[30:0]DMAn当前目的地址0表8-17DCDSTn寄存器中各个比特位描述9.DMA屏蔽触发寄存器
DMA屏蔽触发寄存器DMAMASKTRIGn如表8-18所示。寄存器地址R/W描述初始值DMAMASKTRIG00X4B000020R/WDMA0屏蔽触发寄存器0DMAMASKTRIG10X4B000060R/WDMA1屏蔽触发寄存器0DMAMASKTRIG20X4B0000A0R/WDMA2屏蔽触发寄存器0DMAMASKTRIG30X4B0000E0R/WDMA3屏蔽触发寄存器0表8-18DMA屏蔽触发寄存器DMAMASKTRIGn
DMAMASKTRIGn寄存器中各个比特位描述如表8-19所示。DMAMASKTRIGn位描述初始值STOP[2]停止DMA操作1:当前发送操作结束,DMA停止工作如果不存在当前运行的发送操作,DMA马上结束操作,CURR_TC置为0注意:由于当前可能存在发送操作,停止操作会循环几次0ON_OFF[1]DMA通道打开/关闭0:DMA通道关闭(忽略此通道的DMA请求)1:DMA通道打开,并且执行DMA请求如果DCONn位[22]设置为“不自动重装”或者DMAMASKTRIGn停止位设置为停止,该位自动设置为关闭注意:当DCONn位[22]设置为“不自动重装”,此位变为0,CURR_TC变为0,如果停止位为1,那么只要当前发送操作完成,此位就变为0。在DMA操作过程中,此位不能手动改变0SW_TRIG[0]在S/W请求模式下,触发DMA通道1:要求一个DMA操作当DCONn位[23]选择S/W请求模式或者通道的ON_OFF比特位被置1(开启通道)后,此触发有效当DMA操作开始,此比特位自动置00表8-19DMAMASKTRIGn寄存器中各个比特位描述10.DMA对外引脚
DMA对外引脚如表8-20所示。引脚名称引脚编号功能描述I/O类型nXDREQ0K6外部DMA请求0t8nXDREQ1K5外部DMA请求1t8nXDACK0L3外部DMA应答0t8nXDACK1K7外部DMA应答1t8表8-20DMA对外引脚注:t8为双向、LVCMOS施密特触发器,100kW上拉电阻控制,三态,I/O为8mA。8.2中断控制器
S3C2440A微处理器中断控制器有60个中断源,对外提供24个外中断输入引脚,内部所有设备都有中断请求信号,如DMA控制器、UART、IIC等。
S3C2440A微处理器的ARM920T内核有两种中断模式:普通中断(IRQ)和快速中断(FIQ)。
当中断控制器接收到多个中断请求时,其内的优先级仲裁器裁决后向CPU发出优先级最高的中断请求信号或快速中断请求信号,这个过程叫作“中断仲裁”。
外部中断在芯片中的引脚编号及名称如表8-21所示。功能名称引脚编号功能描述
功能名称引脚编号功能描述EINT0N17外部中断0
EINT12P11外部中断12EINT1M16外部中断1
EINT13K10外部中断13EINT2L13外部中断2
EINT14R11外部中断14EINT3M15外部中断3
EINT15L10外部中断15EINT4M17外部中断4
EINT16T10外部中断16EINT5L14外部中断5
EINT17M11外部中断17EINT6L15外部中断6
EINT18N10外部中断18EINT7L16外部中断7
EINT19U12外部中断19EINT8N9外部中断8
EINT20M10外部中断20EINT9T9外部中断9
EINT21T11外部中断21EINT10J10外部中断10
EINT22L11外部中断22EINT11R10外部中断11
EINT23U13外部中断23表8-21外部中断在芯片中的引脚编号及名称8.2.1中断控制器的操作1.程序状态寄存器(PSR)中的F位和I位2.中断模式3.挂起寄存器4.中断屏蔽寄存器(INTMSK)8.2.2中断优先级1.中断优先级仲裁器模块
中断系统有6个分仲裁器和1个总仲裁器,每个仲裁器可以处理6路中断,优先级产生模块图如图8-3所示。图8-3优先级产生模块图2.中断优先级仲裁器工作原理
每一个仲裁器可以控制6个中断请求,由仲裁模式控制的1位(ARB_MODE)和选择控制信号的2位(ARB_SEL)来控制。(1)如果ARB_SEL位为00b,优先级次序为REQ0、REQ1、REQ2、REQ3、REQ4和REQ5。(2)如果ARB_SEL位为01b,优先级次序为REQ0、REQ2、REQ3、REQ4、REQ1和REQ5。(3)如果ARB_SEL位为10b,优先级次序为REQ0、REQ3、REQ4、REQ1、REQ2和REQ5。(4)如果ARB_SEL位为11b,优先级次序为REQ0、REQ4、REQ1、REQ2、REQ3和REQ5。8.2.3中断控制器的特殊功能寄存器1.源挂起寄存器(SRCPND)
源挂起寄存器由32个比特位组成,每一个比特位均与一个中断源相连。当中断源产生中断请求并且等待中断服务程序的执行时,其相应的比特位置为1。另外,源挂起寄存器指示此时哪一个中断源正在等待执行中断请求。
源挂起寄存器不受中断控制寄存器的优先级逻辑的影响。
用户可以根据需求清除相应挂起位。
源挂起寄存器的地址等信息如表8-22所示。寄存器地址R/W描述初始值SRCPND0X4A000000R/W指示中断请求状态0:没有中断请求;1:产生中断请求0表8-22源挂起寄存器的地址等信息
源挂起寄存器中各个比特位描述如表8-23所示。SRCPND位描述初始值INT_ADC[31]0:无请求;1:请求0INT_RTC[30]0:无请求;1:请求0INT_SPI1[29]0:无请求;1:请求0INT_UART0[28]0:无请求;1:请求0INT_IIC[27]0:无请求;1:请求0INT_USBH[26]0:无请求;1:请求0INT_USBD[25]0:无请求;1:请求0Reserved[24]保留0INT_UART1[23]0:无请求;1:请求0INT_SPI0[22]0:无请求;1:请求0INT_SDI[21]0:无请求;1:请求0INT_DMA3[20]0:无请求;1:请求0INT_DMA2[19]0:无请求;1:请求0INT_DMA1[18]0:无请求;1:请求0INT_DMA0[17]0:无请求;1:请求0INT_LCD[16]0:无请求;1:请求0INT_UART2[15]0:无请求;1:请求0INT_TIMER4[14]0:无请求;1:请求0INT_TIMER3[13]0:无请求;1:请求0INT_TIMER2[12]0:无请求;1:请求0INT_TIMER1[11]0:无请求;1:请求0INT_TIMER0[10]0:无请求;1:请求0INT_WDT[9]0:无请求;1:请求0INT_TICK[8]0:无请求;1:请求0nBATT_FLT[7]0:无请求;1:请求0Reserved[6]0:无请求;1:请求0EINT8_23[5]0:无请求;1:请求0表8-23源挂起寄存器中各个比特位描述SRCPND位描述初始值EINT4_7[4]0:无请求;1:请求0EINT3[3]0:无请求;1:请求0EINT2[2]0:无请求;1:请求0EINT1[1]0:无请求;1:请求0EINT0[0]0:无请求;1:请求0续表2.中断模式寄存器(INTMOD)
中断模式寄存器的32个比特位分别与一个中断源相对应。如果某位被置为1,则相应的中断会以FIQ的模式来处理;相反,则以IRQ的模式来处理。
中断模式寄存器的地址等信息如表8-24所示。寄存器地址R/W描述初始值INTMOD0X4A000004R/W中断模式寄存器0:IRQ模式;1:FIQ模式0表8-24中断模式寄存器的地址等信息
中断模式寄存器中各个比特位描述如表8-25所示。INTMOD位描述初始值INT_ADC[31]0:IRQ;1:FIQ0INT_RTC[30]0:IRQ;1:FIQ0INT_SPI1[29]0:IRQ;1:FIQ0INT_UART0[28]0:IRQ;1:FIQ0INT_IIC[27]0:IRQ;1:FIQ0INT_USBH[26]0:IRQ;1:FIQ0INT_USBD[25]0:IRQ;1:FIQ0Reserved[24]0:IRQ;1:FIQ0INT_UART1[23]0:IRQ;1:FIQ0INT_SPI0[22]0:IRQ;1:FIQ0INT_SDI[21]0:IRQ;1:FIQ0INT_DMA3[20]0:IRQ;1:FIQ0INT_DMA2[19]0:IRQ;1:FIQ0INT_DMA1[18]0:IRQ;1:FIQ0INT_DMA0[17]0:IRQ;1:FIQ0INT_LCD[16]0:IRQ;1:FIQ0表8-25中断模式寄存器中各个比特位描述INTMOD位描述初始值INT_UART2[15]0:IRQ;1:FIQ0INT_TIMER4[14]0:IRQ;1:FIQ0INT_TIMER3[13]0:IRQ;1:FIQ0INT_TIMER2[12]0:IRQ;1:FIQ0INT_TIMER1[11]0:IRQ;1:FIQ0INT_TIMER0[10]0:IRQ;1:FIQ0INT_WDT[9]0:IRQ;1:FIQ0INT_TICK[8]0:IRQ;1:FIQ0nBATT_FLT[7]0:IRQ;1:FIQ0Reserved[6]0:IRQ;1:FIQ0EINT8_23[5]0:IRQ;1:FIQ0EINT4_7[4]0:IRQ;1:FIQ0EINT3[3]0:IRQ;1:FIQ0EINT2[2]0:IRQ;1:FIQ0EINT1[1]0:IRQ;1:FIQ0EINT0[0]0:IRQ;1:FIQ0续表3.中断屏蔽寄存器(INTMSK)
中断屏蔽寄存器包括32个比特位,每一个比特位均与相应的一个中断源相对应。如果某位被置为1,那么CPU不会执行相应中断源提出的中断请求(即使源挂起寄存器的相应位被置为1)。如果屏蔽位被置为0,那么中断请求会被正常执行。
中断屏蔽寄存器的地址等信息如表8-26所示。寄存器地址R/W描述初始值INTMSK0X4A000008R/W决定屏蔽的中断源,屏蔽的中断源将不会被执行0:中断服务有效;1:中断服务屏蔽0表8-26中断屏蔽寄存器的地址等信息
中断屏蔽寄存器中各个比特位描述如表8-27所示。INTMSK位描述初始值INT_ADC[31]0:有效;1:屏蔽1INT_RTC[30]0:有效;1:屏蔽1INT_SPI1[29]0:有效;1:屏蔽1INT_UART0[28]0:有效;1:屏蔽1INT_IIC[27]0:有效;1:屏蔽1表8-27中断屏蔽寄存器中各个比特位描述INTMSK位描述初始值INT_USBH[26]0:有效;1:屏蔽1INT_USBD[25]0:有效;1:屏蔽1Reserved[24]保留1INT_UART1[23]0:有效;1:屏蔽1INT_SPI0[22]0:有效;1:屏蔽1INT_SDI[21]0:有效;1:屏蔽1INT_DMA3[20]0:有效;1:屏蔽1INT_DMA2[19]0:有效;1:屏蔽1INT_DMA1[18]0:有效;1:屏蔽1INT_DMA0[17]0:有效;1:屏蔽1INT_LCD[16]0:有效;1:屏蔽1INT_UART2[15]0:有效;1:屏蔽1INT_TIMER4[14]0:有效;1:屏蔽1INT_TIMER3[13]0:有效;1:屏蔽1INT_TIMER2[12]0:有效;1:屏蔽1INT_TIMER1[11]0:有效;1:屏蔽1INT_TIMER0[10]0:有效;1:屏蔽1INT_WDT[9]0:有效;1:屏蔽1INT_TICK[8]0:有效;1:屏蔽1nBATT_FLT[7]0:有效;1:屏蔽1Reserved[6]0:有效;1:屏蔽1EINT8_23[5]0:有效;1:屏蔽1EINT4_7[4]0:有效;1:屏蔽1EINT3[3]0:有效;1:屏蔽1EINT2[2]0:有效;1:屏蔽1EINT1[1]0:有效;1:屏蔽1EINT0[0]0:有效;1:屏蔽1续表4.优先级控制寄存器(PRIORITY)
优先级控制寄存器的地址等信息如表8-28所示。寄存器地址R/W描述初始值PRIORITY0X4A00000CR/WIRQ优先级控制寄存器0X7F表8-28优先级控制寄存器的地址等信息
优先级控制寄存器中各个比特位描述如表8-29所示。PRIORITY位描述初始值ARB_SEL6[20:19]Arbiter6优先级顺序设置00:REQ0-1-2-3-4-5;01:REQ0-2-3-4-1-5;10:REQ0-3-4-1-2-5;11:REQ0-4-1-2-3-50ARB_SEL5[18:17]Arbiter5优先级顺序设置00:REQ1-2-3-4;01:REQ2-3-4-1;10:REQ3-4-1-2;11:REQ4-1-2-30ARB_SEL4[16:15]Arbiter4优先级顺序设置00:REQ0-1-2-3-4-5;01:REQ0-2-3-4-1-5;10:REQ0-3-4-1-2-5;11:REQ0-4-1-2-3-50ARB_SEL3[14:13]Arbiter3优先级顺序设置00:REQ0-1-2-3-4-5;01:REQ0-2-3-4-1-5;10:REQ0-3-4-1-2-5;11:REQ0-4-1-2-3-50ARB_SEL2[12:11]Arbiter2优先级顺序设置00:REQ0-1-2-3-4-5;01:REQ0-2-3-4-1-5;10:REQ0-3-4-1-2-5;11:REQ0-4-1-2-3-50ARB_SEL1[10:9]Arbiter1优先级顺序设置00:REQ0-1-2-3-4-5;01:REQ0-2-3-4-1-5;10:REQ0-3-4-1-2-5;11:REQ0-4-1-2-3-50ARB_SEL0[8:7]Arbiter0优先级顺序设置00:REQ1-2-3-4;01:REQ2-3-4-1;10:REQ3-4-1-2;11:REQ4-1-2-30ARB_MODE6[6]Arbiter6优先级转换使能0:优先级不能转换;1:优先级转换使能1ARB_MODE5[5]Arbiter5优先级转换使能0:优先级不能转换;1:优先级转换使能1ARB_MODE4[4]Arbiter4优先级转换使能0:优先级不能转换;1:优先级转换使能1ARB_MODE3[3]Arbiter3优先级转换使能0:优先级不能转换;1:优先级转换使能1ARB_MODE2[2]Arbiter2优先级转换使能0:优先级不能转换;1:优先级转换使能1ARB_MODE1[1]Arbiter1优先级转换使能0:优先级不能转换;1:优先级转换使能1ARB_MODE0[0]Arbiter0优先级转换使能0:优先级不能转换;1:优先级转换使能1表8-29优先级控制寄存器中各个比特位描述5.中断挂起寄存器(INTPND)
中断挂起寄存器包括32个比特位,其中每一个比特位均表示相应中断请求是否拥有最高优先级,它们处于等待中断服务状态并且没有被屏蔽。中断挂起寄存器在中断优先级仲裁器仲裁结束之后,仅有一个比特位被置1,并且被置1的中断请求向CPU产生IRQ。在执行普通中断服务时,可以通过读取寄存器来确定32个中断源中哪个中断源被执行。
同源挂起寄存器一样,中断挂起寄存器也需要在中断服务程序中加入清零操作,该清零操作位于源挂起寄存器清零操作之后。可以通过向中断挂起寄存器写入一个数据对相应位清零。仅将需要位清除,其余保持不变。
中断挂起寄存器的地址等信息如表8-30所示。寄存器地址R/W描述初始值INTPND0X4A000010R/W指示中断请求状态0:无中断请求;1:产生中断请求0X0表8-30中断挂起寄存器的地址等信息
中断挂起寄存器中各个比特位描述如表8-31所示。INTPND位描述初始值INT_ADC[31]0:无请求;1:请求0INT_RTC[30]0:无请求;1:请求0INT_SPI1[29]0:无请求;1:请求0INT_UART0[28]0:无请求;1:请求0INT_IIC[27]0:无请求;1:请求0INT_USBH[26]0:无请求;1:请求0INT_USBD[25]0:无请求;1:请求0Reserved[24]保留0INT_UART1[23]0:无请求;1:请求0INT_SPI0[22]0:无请求;1:请求0INT_SDI[21]0:无请求;1:请求0INT_DMA3[20]0:无请求;1:请求0INT_DMA2[19]0:无请求;1:请求0INT_DMA1[18]0:无请求;1:请求0INT_DMA0[17]0:无请求;1:请求0INT_LCD[16]0:无请求;1:请求0INT_UART2[15]0:无请求;1:请求0INT_TIMER4[14]0:无请求;1:请求0INT_TIMER3[13]0:无请求;1:请求0INT_TIMER2[12]0:无请求;1:请求0INT_TIMER1[11]0:无请求;1:请求0INT_TIMER0[10]0:无请求;1:请求0INT_WDT[9]0:无请求;1:请求0INT_TICK[8]0:无请求;1:请求0nBATT_FLT[7]0:无请求;1:请求0Reserved[6]0:无请求;1:请求0表8-31中断挂起寄存器中各个比特位描述INTPND位描述初始值EINT8_23[5]0:无请求;1:请求0EINT4_7[4]0:无请求;1:请求0EINT3[3]0:无请求;1:请求0EINT2[2]0:无请求;1:请求0EINT1[1]0:无请求;1:请求0EINT0[0]0:无请求;1:请求0续表6.INTOFFSET寄存器
INTOFFSET寄存器的值说明了中断挂起寄存器中哪一个IRQ模式的中断请求有效。这个比特位可以通过清除源挂起寄存器和中断挂起寄存器来自动清除。
INTOFFSET寄存器的地址等信息如表8-32所示。寄存器地址R/W描述初始值INTOFFSET0X4A000014R/W指示IRQ中断请求源0X0表8-32INTOFFSET寄存器的地址等信息
INTOFFSET寄存器中各个比特位描述如表8-33所示。表8-33INTOFFSET寄存器中各个比特位描述中断源OFFSET值
中断源OFFSET值INT_ADC31
INT_DMA118INT_RTC30
INT_DMA017INT_SPI129
INT_LCD16INT_UART028
INT_UART215INT_IIC27
INT_TIMER414INT_USBH26
INT_TIMER313INT_USBD25
INT_TIMER212Reserved24
INT_TIMER111INT_UART123
INT_TIMER010INT_SPI022
INT_WDT9INT_SDI21
INT_TICK8INT_DMA320
nBATT_FLT7INT_DMA219
Reserved6EINT8_235
EINT22EINT4_74
EINT11EINT33
EINT007.辅助源挂起寄存器(SUBSRCPND)
通过向辅助源挂起寄存器写入一个数据来清除某一位。此数据仅清除数据对应的比特位,其他的比特位不变。辅助源挂起寄存器的地址等信息如表8-34所示。寄存器地址R/W描述初始值SUBSRCPND0X4A000018R/W指示中断请求的状态0:无中断发生;1:有中断发生0X0表8-34辅助源挂起寄存器的地址等信息
辅助源挂起寄存器中各个比特位描述如表8-35所示。SUBSRCPND位描述初始值Reserved[31:11]0:无请求;1:请求0INT_ADC[10]0:无请求;1:请求0INT_TC[9]0:无请求;1:请求0INT_ERR2[8]0:无请求;1:请求0INT_TXD2[7]0:无请求;1:请求0INT_RXD2[6]0:无请求;1:请求0INT_ERR1[5]0:无请求;1:请求0INT_TXD1[4]0:无请求;1:请求0INT_RXD1[3]0:无请求;1:请求0INT_ERR0[2]0:无请求;1:请求0INT_TXD0[1]0:无请求;1:请求0INT_RXD0[0]0:无请求;1:请求0表8-35辅助源挂起寄存器中各个比特位描述8.中断辅助屏蔽寄存器(INTSUBMSK)
中断辅助屏蔽寄存器中的11位和响应的中断源有联系,如果某一比特位置为1,那么来自相应中断源的中断请求便不会被CPU执行(注意此种情况下,辅助源挂起寄存器相应位会被置为1)。如果屏蔽位置为0,那么中断请求将会被执行。
中断辅助屏蔽寄存器的地址等信息如表8-36所示。寄存器地址R/W描述初始值INTSUBMSK0X4A00001CR/W决定哪一个中断源被屏蔽,被屏蔽的中断源将不会执行0:中断服务有效;1:中断服务屏蔽0X7FF表8-36中断辅助屏蔽寄存器的地址等信息
中断辅助屏蔽寄存器中各个比特位描述如表8-37所示。INTSUBMSK位描述初始值Reserved[31:11]保留0INT_ADC[10]0:有效;1:屏蔽1INT_TC[9]0:有效;1:屏蔽1INT_ERR2[8]0:有效;1:屏蔽1INT_TXD2[7]0:有效;1:屏蔽1INT_RXD2[6]0:有效;1:屏蔽1INT_ERR1[5]0:有效;1:屏蔽1INT_TXD1[4]0:有效;1:屏蔽1INT_RXD1[3]0:有效;1:屏蔽1INT_ERR0[2]0:有效;1:屏蔽1INT_TXD0[1]0:有效;1:屏蔽1表8-37中断辅助屏蔽寄存器中各个比特位描述8.3PWM定时器
S3C2440A微处理器定时器的主要特性如下。(1)5个16位定时器。(2)2个8位预分频器和2个4位分割器。(3)输出波形的占空比可编程控制。(4)自动加载模式或单触发脉冲模式。(5)死区产生器。8.3.1PWM概念
PWM(脉宽调制)就是对一个方波序列信号的占空比按要求进行调制,而不是改变方波信号的其他参数,即不改变幅度和周期,因此脉宽调制信号的产生和传输都是数字式的。
脉宽调制技术可以实现模拟信号。借助于微处理器,使用脉宽调制方法实现模拟信号是一种非常有效的技术,广泛应用于测量、通信、功率控制与变换等许多领域。8.3.2PWM定时器结构与功能
定时器计数缓冲寄存器(TCNTBn)的值是当定时器使能时装载到减法计数器的初值,定时器比较缓冲器(TCMPBn)的值将被装载到比较寄存器并与减法计数器的值进行比较。TCNTBn和TCMPBn双重缓冲器的特性可以在定时器频率和占空比改变时,确保产生稳定的输出。
PWM定时器的功能框图如图8-4所示。图8-4PWM定时器的功能框图8.3.3PWM定时器操作1.预定标器和分割器
一个8位预定标器和一个4位分割器的输出频率如表8-38所示。4位分割器的设置最小分辨率(预定标器=0)最大分辨力(预定标器=255)最大间隔时间(TCNTBn=65535)1/2(PCLK=66.5MHz)0.0300ms(33.2500MHz)7.6992ms(129.8828kHz)0.5045s1/4(PCLK=66.5MHz)0.06001ms(16.6250MHz)15.3984ms(64.9414kHz)1.0091s1/8(PCLK=66.5MHz)0.1203ms(8.3125MHz)30.7968ms(32.4707kHz)2.0182s1/16(PCLK=66.5MHz)0.2406ms(4.1562MHz)61.5936ms(16.2353kHz)4.0365s表8-38一个8位预定标器和一个4位分割器的输出频率2.定时器基本操作
一个定时器(定时器4除外)包含TCNTBn、TCNTn、TCMPBn和TCMPn几个寄存器(TCNTn和TCMPn是内部寄存器的名称,TCNTn的值可以通过读TCNTOn得到)。当定时器达到0时,TCNTBn和TCMPBn的值将自动加载到TCNTn和TCMPn中。当TCNTn的值到0,并且中断使能时,定时器将产生一个中断请求。定时器运行时序图如图8-5所示。图8-5定时器运行时序图3.自动加载和双缓冲模式
脉宽调制定时器有一个双缓冲功能,在这种情况下,改变下次加载值的同时不影响当前定时周期。因此,尽管设置了一个新的定时器值,当前定时器的操作将会继续完成而不受影响。双缓冲功能时序图如图8-6所示。图8-6双缓冲功能时序图4.用手动更新位和逆变器位对定时器进行初始化(1)将初始值写入TCNTBn和TCMPBn中。(2)设置相应定时器的手动更新位。推荐配置逆变器位打开或关闭(不管逆变器使用与否)。(3)设置相应定时器的起始位,从而启动一个定时器(同时清除手动更新标志位,注意第一次启动需手动,以后就是自动执行)。5.定时器操作步骤(1)使能自动加载功能。(2)如果手动更新位为0、逆变器关闭且自动加载打开,则设置起始位,在定时器的延迟时间后定时器开始递减计数。(3)当TCNTn的值和TCMPn的值相等时,则TOUTn的逻辑电平将发生改变,由低到高。(4)当TCNTn的值到0时,产生一个中断并且将TCNTBn的值加载到一个临时寄存器。(5)在中断服务程序中,将TCNTBn和TCMPBn分别设置成80和60。(6)当TCNTn的值和TCMPn的值相等时,则TOUTn的逻辑电平发生改变,由低到高。(7)当TCNTn到0时,TCNTn自动重新加载,并发出一个中断请求。(8)在中断服务子程序中,自动加载和中断请求都被禁止,从而停止定时器。(9)当TCNTn的值和TCMPn的值相等时,则TOUTn的逻辑电平将发生改变,由低到高。(10)当TCNTn的值到0时,TCNTn将不再重新加载新的值,从而停止定时器。(11)由于中断请求被禁止,不再产生中断请求。图8-7定时器操作步骤6.脉宽调制
脉宽调制(PWM)功能可以通过改变TCMPBn的值来实现。脉宽调制的频率由TCNTBn决定。图8-8所示演示了一个通过改变TCMPBn的值实现脉宽调制功能的实例。图8-8PWM实例7.输出电平控制(1)关闭自动加载位,TOUT变高,在TCNTn为0后定时器停止运行。(2)通过定时器开始位清零来停止定时器运行。如果TCNTn≤TCMPn,则输出高;如果TCNTn>TCMPn,输出低。(3)通过改变TCON中的逆变器开关位来使TOUTn为高或低。
图8-9所示为逆变器(Inverter)开与关时的输出示意图。图8-9逆变器开与关时的输出示意图8.死区发生器
死区是为实现功率器件中的PWM控制而设计的。这一功能使能在一个开关器件关闭和另一个开关器件开启的间隔时间。这一时间间隔禁止了两个开关器件同时处于开启状态,即使是一段非常短的时间也不行。
TOUT0是一个PWM输出,nTOUT0是TOUT0的反向。如果死区使能,则TOUT0和nTOUT0的输出波形将是TOUT0_DZ和nTOUT0_DZ。nTOUT0_DZ由TOUT1引脚输出。
在死区间隔时间,TOUT0_DZ和nTOUT0_DZ将不会同时开启。
图8-10所示为死区功能使能后的输出波形示意图。图8-10死区功能使能后的输出波形示意图9.DMA请求模式
PWM定时器能在任何时间产生一个DMA请求。定时器保持DMA请求信号(nDMA_REQ)为低,直到定时器接收到ACK信号。当定时器接收到ACK信号时,定时器将使请求信号无效。产生DMA请求的定时器由设置DMA模式的位(TCFG1)决定。如果一个定时器配置成DMA请求模式,则此定时器将不能产生中断请求,而其他定时器将正常产生中断请求。
DMA模式配置如表8-39所示。DMA模式DMA请求Timer0INTTimer1INTTimer2INTTimer3INTTimer4INT0000NoselectONONONONON0001Timer0OFFONONONON0010Timer1ONOFFONONON0011Timer2ONONOFFONON0100Timer3ONONONOFFON0101Timer4ONONONONOFF0110NoselectONONONONON表8-39DMA模式配置
定时器4的DMA模式操作时序图如图8-11所示。图8-11定时器4的DMA模式操作时序图8.3.4PWM定时器的特殊功能寄存器1.定时器配置寄存器0
定时器输入时钟频率=PCLK/(预分频器的值+1)/(分割值)。
预分频器的值为0~255;分割值为2、4、8、16。
定时器配置寄存器0(TCFG0)的信息如表8-40所示。寄存器地址R/W描述初始值TCFG00X51000000R/W配置两个8位预分频器0X0表8-40定时器配置寄存器0的信息
定时器配置寄存器0(TCFG0)中各个比特位的描述如表8-41所示。TCFG0位描述初始值Reserved[31:24]保留0X00DeadZoneLength[23:16]该8位确定死区的长度,死区长度的1个时间单位与定时器0的1个时间单位相等0X00Prescaler1[15:8]该8位确定定时器2、3、4的预分频器的值0X00Prescaler0[7:0]该8位确定定时器0、1的预分频器的值0X00表8-41定时器配置寄存器0中各个比特位的描述2.定时器配置寄存器1
定时器配置寄存器1(TCFG1)的信息地址如表8-42所示。寄存器地址R/W描述初始值TCFG10X51000004R/W5-MUX&DMA模式选择寄存器0X0表8-42定时器配置寄存器1的信息
定时器配置寄存器1(TCFG1)中各个比特位的描述如表8-43所示。TCFG1位描述初始值Reserved[31:24]保留0000DMAMODE[23:20]选择DMA请求通道0000:没有选择(全是中断);0001:定时器0;0010:定时器1;0011:定时器2;0100:定时器3;0101:定时器4;0110:保留0000MUX4[19:16]选择PWM定时器4的MUX输入0000:1/2;0001:1/4;0010:1/8;0011:1/16;01XX:外部时钟TCLK10000MUX3[15:12]选择PWM定时器3的MUX输入0000:1/2;0001:1/4;0010:1/8;0011:1/16;01XX:外部时钟TCLK10000MUX2[11:8]选择PWM定时器2的MUX输入0000:1/2;0001:1/4;0010:1/8;0011:1/16;01XX:外部时钟TCLK10000MUX1[7:4]选择PWM定时器1的MUX输入0000:1/2;0001:1/4;0010:1/8;0011:1/16;01XX:外部时钟TCLK00000MUX0[3:0]选择PWM定时器0的MUX输入0000:1/2;0001:1/4;0010:1/8;0011:1/16;01XX:外部时钟TCLK00000表8-43定时器配置寄存器1中各个比特位的描述3.定时器控制寄存器
定时器控制寄存器(TCON)的信息如表8-44所示。寄存器地址R/W描述初始值TCON0X51000008R/W定时器控制寄存器0X0表8-44定时器控制寄存器的信息
定时器控制寄存器(TCON)中各个比特位的描述如表8-45所示。TCON位描述初始值定时器4自动重装载开/关[22]决定定时器4的自动重装载开/关0:关;1:开0定时器4手动更新[21]决定定时器4的手动更新0:不操作;1:更新TCNTB40定时器4启/停[20]决定定时器4的启/停0:停止;1:启动0定时器3自动重装载开/关[19]决定定时器3的自动重装载开/关0:关;1:开0定时器3输出反转开/关[18]决定定时器3输出TOUT3反转的开/关0:关;1开0表8-45定时器控制寄存器中各个比特位的描述TCON位描述初始值定时器3手动更新[17]决定定时器3的手动更新0:不操作;1:更新TCNTB3和TCMPB30定时器3启/停[16]决定定时器3的启/停0:停止;1:启动0定时器2自动重装载开/关[15]决定定时器2的自动重装载开/关0:关;1:开0定时器2输出反转开/关[14]决定定时器2输出TOUT2反转的开/关0:关;1:开0定时器2手动更新[13]决定定时器2的手动更新0:不操作;1:更新TCNTB2和TCMPB20定时器2启/停[12]决定定时器2的启/停0:停止;1:启动0定时器1自动重装载开/关[11]决定定时器1的自动重装载开/关0:关;1:开0定时器1输出反转开/关[10]决定定时器1输出TOUT1反转的开/关0:关;1:开0定时器1手动更新[9]决定定时器1的手动更新0:不操作;1:更新TCNTB1和TCMPB10定时器1启/停[8]决定定时器1的启/停0:停止;1:启动0保留[7:5]保留
死区使能[4]决定死区操作0:禁止;1:使能
定时器0自动重装载开/关[3]决定定时器0的自动重装载开/关0:关;1:开0定时器0输出反转开/关[2]决定定时器0输出TOUT0反转的开/关0:关;1:开0定时器0手动更新[1]决定定时器0的手动更新0:不操作;1:更新TCNTB0和TCMPB00定时器0启/停[0]决定定时器0的启/停0:停止;1:启动0续表4.定时器0计数缓冲寄存器与比较缓冲寄存器
定时器0计数缓冲寄存器(TCNTB0)与比较缓冲寄存器(TCMPB0)的信息如表8-46所示。寄存器地址R/W描述初始值TCNTB00X5100000CR/W定时器0计数缓冲寄存器0X0TCMPB00X51000010R/W定时器0比较缓冲寄存器0X0表8-46定时器0计数缓冲寄存器与比较缓冲寄存器的信息
TCNTB0各位的描述如表8-47所示。TCNTB0位描述初始值定时器0计数缓冲寄存器[15:0]设置定时器0的计数缓冲值0表8-47TCNTB0各位的描述
TCMPB0各位的描述如表8-48所示。TCMPB0位描述初始值定时器0比较缓冲寄存器[15:0]设置定时器0的比较缓冲值0表8-48TCMPB0各位的描述5.定时器0观察寄存器
定时器0观察寄存器的信息如表8-49所示。寄存器地址R/W描述初始值TCNTO00X51000014R定时器0计数观察寄存器0X0表8-49定时器0观察寄存器的信息
定时器0观察寄存器各位的描述如表8-50所示。TCNTO0位描述初始值定时器0观察寄存器[15:0]读出定时器0计数观察寄存器值0表8-50定时器0观察寄存器各位的描述6.定时器1计数缓冲寄存器与比较缓冲寄存器
定时器1计数缓冲寄存器(TCNTB1)与比较缓冲寄存器(TCMPB1)的信息如表8-51所示。寄存器地址R/W描述初始值TCNTB10X51000018R/W定时器1计数缓冲器0X0TCMPB10X5100001CR/W定时器1比较缓冲寄存器0X0表8-51定时器1计数缓冲寄存器与比较缓冲寄存器的信息
TCNTB1各位的描述如表8-52所示。TCNTB1位描述初始值定时器1计数缓冲寄存器[15:0]设置定时器1的计数缓冲值0表8-52TCNTB1各位的描述
TCMPB1各位的描述如表8-53所示。TCMPB1位描述初始值定时器1比较缓冲寄存器[15:0]设置定时器1的比较缓冲值0表8-53TCMPB1各位的描述7.定时器1观察寄存器
定时器1观察寄存器的信息如表8-54所示。寄存器地址R/W描述初始值TCNTO10X51000020R定时器1计数观察寄存器0X0表8-54定时器1观察寄存器的信息
定时器1观察寄存器各位的描述如表8-55所示。TCNTO1位描述初始值定时器1观察寄存器[15:0]读出定时器1计数观察寄存器值0表8-55定时器1观察寄存器各位的描述8.定时器2计数缓冲寄存器与比较缓冲寄存器
定时器2计数缓冲寄存器(TCNTB2)与比较缓冲寄存器(TCMPB2)的信息如表8-56所示。寄存器地址R/W描述初始值TCNTB20X51000024R/W定时器2计数缓冲器0X0TCMPB20X51000028R/W定时器2比较缓冲寄存器0X0表8-56定时器2计数缓冲寄存器与比较缓冲寄存器的信息
TCNTB2各位的描述如表8-57所示。TCNTB2位描述初始值定时器2计数缓冲器[15:0]设置定时器2的计数缓冲值0表8-57TCNTB2各位的描述
TCMPB2各位的描述如表8-58所示。TCMPB2位描述初始值定时器2比较缓冲寄存器[15:0]设置定时器2的比较缓冲值0表8-58TCMPB2各位的描述9.定时器2观察寄存器
定时器2观察寄存器的信息如表8-59所示。寄存器地址R/W描述初始值TCNTO20X5100002CR定时器2计数观察寄存器0X0表8-59定时器2观察寄存器的信息
定时器2观察寄存器各位的描述如表8-60所示。TCNTO2位描述初始值定时器2观察寄存器[15:0]读出定时器2计数观察寄存器值0表8-60定时器2观察寄存器各位的描述10.定时器3计数缓冲寄存器与比较缓冲寄存器
定时器3计数缓冲寄存器(TCNTB3)与比较缓冲寄存器(TCMPB3)的信息如表8-61所示。寄存器地址R/W描述初始值TCNTB30X51000030R/W定时器3计数缓冲器0X0TCMPB30X51000034R/W定时器3比较缓冲寄存器0X0表8-61定时器3计数缓冲寄存器与比较缓冲寄存器的信息
TCNTB3各位的描述如表8-62所示。TCNTB3位描述初始值定时器3计数缓冲器[15:0]设置定时器3的计数缓冲值0表8-62TCNTB3各位的描述
TCMPB3各位的描述如表8-63所示。TCMPB3位描述初始值定时器3比较缓冲寄存器[15:0]设置定时器3的比较缓冲值0表8-63TCMPB3各位的描述11.定时器3观察寄存器
定时器3观察寄存器的信息如表8-64所示。寄存器地址R/W描述初始值TCNTO30X51000038R定时器3计数观察寄存器0X0表8-64定时器3观察寄存器的信息
定时器3观察寄存器各位的描述如表8-65所示。TCNTO3位描述初始值定时器3观察寄存器[15:0]读出定时器3计数观察寄存器值0表8-65定时器3观察寄存器各位的描述12.定时器4计数缓冲器
定时器4计数缓冲器(TCNTB4)的信息如表8-66所示。寄存器地址R/W描述初始值TCNTB40X5100003CR/W定时器4的计数缓冲器0X0表8-66定时器4计数缓冲器的信息
定时器4计数缓冲器(TCNTB4)各位的描述如表8-67所示。TCNTB4位描述初始值定时器4计数缓冲器[15:0]设置定时器4的计数缓冲值0表8-67定时器4计数缓冲器各位的描述13.定时器4观察寄存器
定时器4观察寄存器的信息如表8-68所示。寄存器地址R/W描述初始值TCNTO40X51000040R定时器4计数观察寄存器0X0表8-68定时器4观察寄存器的信息
定时器4观察寄存器各位的描述如表8-69所示。TCNTO4位描述初始值定时器4观察寄存器[15:0]读出定时器4计数观察寄存器值0表8-69定时器4观察寄存器各位的描述14.PWM对外引脚
PWM对外引脚如表8-70所示。引脚名称引脚编号功能说明I/O类型TOUT0J6定时器0的输出t8TOUT1J5定时器1的输出t8TOUT2J7定时器2的输出t8TOUT3K3定时器3的输出t8TCLK0K4TCLK0时钟t8TCLK1U12TCLK1时钟t12表8-70PWM对外引脚注:t8为双向、LVCMOS施密特触发器,100kW上拉电阻控制,三态,I/O为8mA;t12为双向、LVCMOS施密特触发器,100kW上拉电阻控制,三态,I/O为12mA。8.4UART端口8.4.1UART端口概述
UART单元提供3个独立的异步串行I/O端口,每个都可以在中断和DMA两种模式下工作。也就是说,UART可以产生内部中断请求或者DMA请求,在CPU和串行I/O之间传送数据。它们支持的波特率为230.4Kbit/s,如果外部设备通过UEXTCLK提供UART单元,那么UART单元可以以更高的速率工作。
每个UART通道包含2个16位的FIFO(先进先出)通道,分别用于接收和发送信号。UART单元可以对以下的参数进行设置:可编程的波特率,红外收/发模式,1或2个停止位,5位、6位、7位、8位数据宽度和奇偶位校验。每个UART包含一个波特率产生器、发送器、接收器和控制单元。
波特率产生器以PCLK/UEXTCLK作为时钟源。发送器和接收器包含16个字节的FIFO通道和移位寄存器。UART单元特性如下。(1)拥有基于DMA或中断操作的引脚RxD0、TxD0、RxD1、TxD1、RxD2、TxD2。(2)UART通道0、1、2符合IrDA1.0要求,具有16字节的FIFO通道。(3)UART通道0、1具有收发控制信号nRTS0、nCTS0、nRTS1和nCTS1,可实现自动流控制。(4)支持收发时握手模式。8.4.2UART端口的操作1.数据发送
数据发送的帧格式包含1个开始位、5~8个数据位、1个可选的奇偶位和1~2个停止位,这些都可以通过行控制寄存器(ULCONn)来设置。数据发送的帧是可编程的。2.数据接收
数据接收的帧格式包括1个开始位、5~8个数据位、1个可选的奇偶校验位和1~2个停止位,这些都可以通过行控制寄存器(ULCONn)来设置。接收器还可以检测到溢出错误和帧错误,每种情况下都会在寄存器中将一个对应的错误标志位置1。3.自动流控制(AFC)
S3C2440A微处理器的UART0和UART1都可以通过各自的nRTS和nCTS信号来实现自动流控制(AFC)。UART自动流控制模式的连接方式如图8-12所示。图8-12UART自动流控制模式的连接方式4.非自动流控制
UART通过软件控制nRTS和nCTS。5.中断/DMA请求的产生
每个UART都有5个状态(Tx/Rx/Error)信号,包括溢出错误、帧错误、接收FIFO/Buffer数据准备好、发送FIFO/Buffer空和发送移位寄存器空(这里的“空”表示空闲,表示可以接收数据)。所有这些状态都由对应的UART状态寄存器(UTRSTATn/UERSTATn)中的相应位来表现。
与FIFO有关的中断如表8-71所示。类型FIFO模式Non-FIFO模式Rx中断如果每次接收的数据达到了接收FIFO的触发水平,则Rx中断产生如果FIFO非空并且在3个字时间内没有接收到数据,则Rx中断产生(接收超时)如果每次接收数据变为“满”,则接收保持寄存器产生一个中断Tx中断如果每次发送的数据达到了发送FIFO的触发水平,则Tx中断产生如果每次发送数据变为“空”,则发送保持寄存器产生一个中断错误中断帧错误和溢出错误将产生错误中断所有错误产生一个中断,即使同时有另一个错误发生,也只产生一个中断表8-71与FIFO有关的中断6.UART错误状态FIFO
除了RxFIFO寄存器之外,UART还有一个错误状态FIFO。错误状态FIFO表示在FIFO寄存器中,哪一个数据在接收时出错。错误中断发生在有错误的数据被读取时。为清除错误状态FIFO,寄存器URXHn和UERSTATn会被读取。
当错误的字符被读取时错误中断才会产生,具体如图8-13所示。图8-13UART接收有两个错误的5字符7.波特率的产生
每个UART的波特率产生器为接收/发送器提供一个连续时钟。时钟源
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文化资源与评估山大本科考试题库及答案
- 铁路供电调度考试题库及答案
- 水生生物学期末考试题库及答案
- 食品安全员抽查考试试题及答案
- 2026年山东县级城建集团工程岗笔试试题(含答案)
- 2026年平安建设专职岗招聘试题(含答案)
- 2026年海南省事业单位联考真题及答案
- 2026年供应链专员招聘考试题(含答案)
- 2025年司法考试模拟试题及答案解析(卷三)
- 企业采购数字化平台搭建及采购成本控制策略
- 京东供应商协同平台(VC30)操作说明
- 设备保温施工专项施工方案
- 云南省2026年事业单位考试真题及答案
- 2026年高考全国二卷英语考试题目及答案
- 烟草制品陈列与销售规范操作手册
- 新一轮千亿斤粮食产能提升行动方案全文
- 骨质疏松治疗方案培训
- 2026内蒙古通辽市人民医院招聘备案制编制护理人员50人考试参考试题及答案解析
- 中草药采购管理制度
- 2026年人群拥挤防踩踏培训
- 加油站特殊作业安全管理制度
评论
0/150
提交评论