oppoRtunityR9的视频和tupqq发的视频保存在哪里里

当前位置: >>
基于s3c2410的嵌入式系统硬件结构设计
Part 5 基于S3C2410的硬件系统设计(一)1 2 3 4S3C2410X简介 存储器接口设计 I/O接口设计 UART设计9看门狗定时器10 日历时钟 11 DMA 12 LCD控制器 13 A/D转换与触摸屏56 7IIC接口设计中断接口时钟和功耗管理PWM定时器14 USB接口15 SPI18 5.1 S3C2410X概述主要内容? 主要特性 ? 系统结构 ? 引脚信号2 5.1 S3C2410X概述S3C2410X是韩国三星公司推出的16/32位 RISC微控制器,其CPU采用的是ARM920T 内核,加上丰富的片内外设,为手持设备和 其它应用,提供了低价格、低功耗、高性能 微控制器的解决方案。3 系统结构主要由两大部分构成: ARM920T内核 片内外设。4 1、ARM920T内核由三部分:ARM9内核ARM9TDMI、32KB的Cache、 MMU( CP15及它的寄存器C13) 、总线接口单元。5 2、片内外设分为高速外设和低速外设,分别用AHB总线和 APB总线。6 主要特性具有16KB指令Cache、 16KB数据Cache和存储器管理单元MMU。 外部存储器控制器,可扩展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个USB主机总线的端口,1个USB设备总线的端口。 有4个具有PWM功能的16位定时器和1个16位内部定时器 。 7 芯片体系结构??? ?? ? ?? ?主要特性 8通道的10位A/D转换器,最高速 率可达500kB/s;提供有触摸屏接 口。 具有117个通用I/O口和24通道的 外部中断源。 兼容MMC的SD卡接口。 具有电源管理功能,可以使系统 以普通方式、慢速方式、空闲方 式和掉电方式工作。 看门狗定时器。 具有日历功能的RTC。 有LCD控制器,支持4K色的STN 和256K色的TFT,配Z有DMA通 道。 具有PLL功能的时钟发生器,时 钟频率高达203MHz。 双电源系统:1.8/2.0V内核供电, 3.3V存储器和I/O供电。8 三、引脚信号S3C微控制器是272FBGA封装。 其信号可以分成: addr0---addr26、 Data0---data31、 GPA0---GPA22 GPB10、GPC15、 GPD15、GPE15、 GPF7、GPG15、 GPH10、EINT23、 nGCS0―nGCS7、 AIN7、IIC、SPI、 OM0---OM3 等,大部分都是复用的BACK9 5.2 S3C2410X的存储器主要内容? 存储器配ZC 存储器概述 C 控制寄存器? Flash及控制器C C C C Flash控制器概述 控制器主要特性 控制器的寄存器 控制器的工作原理10 存储器及存储器映射I/ODBGTCKEN CLKDBGTMS DBGTDIDBGnTRSTARM9局部总线?????? EmbededICE-RT ?¨?è?÷???????????±??CLKEN nIRQDBGTDO DBGnTDOEN ADDR[31:0] WDATA[31:0]????nFIQnRESETCFGBIGENDARM9定义了局部 总线的接口时序×???????DMORE ????LOCK DBGINSTR VALIDARM9 ARM7TDMI-S???í?÷RDATA[31:0] ABORT WRITE SIZE[1:0] PROT[1:0]TRANS[1:0]?????÷????内核DBGRQ DBGBREAKDBGACK存储器 控制器?????÷???í????存储器CPnTRANS CPnOPC CPnMREQ CPSEQCPTBITDBGnEXEC DBGEXT[1] ?÷?? DBGEXT[0]DBGENDBGRNG[1] DBGRNG[0] DBGCOMMRXDBGCOMMTXCPnI CPACPB?????í?÷????各芯片厂商制定了自 己的接口时序一般在两者之间加入存储器控制器11 5.2.1 S3C2410X的存储器配Z一、概 述S3C2410X的存储器管理器提供访问外部存储器的所有 控制信号:27位地址信号、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的存储器格式,可以为大端格式,也可以为 小端格式。12 13 二、存储器的控制寄存器内存控制器为访问外部存储空间提供存储器控制信号, S3C2410X存储器控制器共有13个寄存器。寄存器地 址功 能总线宽度和等待控制 BANK0控制 BANK1控制 BANK2控制 BANK3控制 BANK4控制 BANK5控制 BANK6控制 BANK7控制 SDRAM刷新控制 可变的组大小设置 BANK6模式设置 BANK7模式设置操作读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写复位值0x0 0x0 0x0 0x0 0x08 0xAC xxx xxxBWSCON 0x BANKCON0 0x BANKCON1 0x BANKCON2 0x4800000C BANKCON3 0x BANKCON4 0x BANKCON5 0x BANKCON6 0x4800001C BANKCON7 0x REFRESH 0x BANKSIZE 0x MRSRB6 0x4800002C MRSRB7 0x14 1、总线宽度和等待控制寄存器back31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16ST7 WS7 DW7 ST6 WS6 DW6 ST5 WS5 DW5 ST4 WS4 DW415 14 13 12 11 10ST3 WS3 DW3 ST2 WS29876543X210XDW2ST1 WS1DW1DW0STn:控制存储器组n的UB/LB引脚输出信号。 1:使UB/LB与nBE[3:0]相连; 0:使UB/LB与nWBE[3:0]相连 WSn:使用/禁用存储器组n的WAIT状态 1:使能WAIT;0:禁止WAIT DWn:控制存储器组n的数据线宽 00:8位;01:16位;10:32位;11:保留15 2、BANKn---存储器组控制寄存器(n=0--5)31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 1615 14 13 12 11 10 Tacs Tcos9 Tacc876543210TcohTcahTacpPMCTacs:设置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个16 back Tcoh: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为通常模式。 注:紫色为某实验箱上的配置,其值为0x070017 3、BANK6/7---存储器组6/7控制寄存器31 14 13 12 11 10 Tacs Tcos …… 保留 9 Tacc 8 7 6 5 4 3 2 1back17 16 15 MT 0TcohTcahTacp/ PMC/ Trcd SCANMT:设Z存储器类型 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位18 4、REFRESH---刷新控制寄存器31 …… 保留 24 23 22 21 20 19 18 17 16 Trp Tsrc 保留REFEN TREFMD15 14 13 12 11 10 保留9876543210Refresh_countREFEN:刷新控制。 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:刷新计数值19 backRefresh_count:刷新计数器值 计算公式: 刷新周期=(211- Refresh_count+1)/HCLK例子:设刷新周期=15.6? s,HCLK=60MHz则刷新计数器值=211+1-60×15.6=x459=0b20 5、BANKSIZE---BANK6/7组大小控制寄存器7BURST_EN6X543X21BK76MAP0SCKE_EN SCLK_EN高24位未用。 BURST_EN:ARM突发操作控制 0:禁止突发操作;1:可突发操作 SCKE_EN:SCKE使能控制SDRAM省电模式 0:关闭省电模式;1:使能省电模式 SCLK_EN:SCLK省电控制,使其只在SDRAM访问周期内使能SCLK 0:SCLK一直有效;1:SCLK只在访问期间有效 BK76MAP:控制BANK6/7的大小及映射21 BK76MAP:控制BANK6/7的大小及映射 100:2MB; 101:4MB; 110:8MB 111:16MB; 000:32MB; 001:64MB 010:128MBback22 6、MRSRB6/7---BANK6/7模式设Z寄存器15 14 13 12 11 10 9WBL8765CL43BT21BL0TMWBL:突发写的长度。0:固定长度;1:保留 TM:测试模式。 00:模式寄存器集;其它保留 CL:列地址反应时间000:1个时钟;010:2个时钟; 011:3个时钟;其它保留BT:猝发类型0:连续; 1:保留 000:1个时钟;其它保留23BL:猝发时间 VIVI For s3c2410中Bootloader之存储器初始化 head.s ENTRY(memsetup) mov r1, #MEM_CTL_BASE adrl r2, mem_cfg_val//取址指令mem_cfg_val对应的地址给R2 add r3, r1, #52 1: ldr r4, [r2], #4 smdk2410.h str r4, [r1], #4 cmp r1, r3 /* initial values for DRAM */ Bne 1b //循环操作,直到13个寄存器赋值完成 #define MEM_CTL_BASE 0x mov pc, lr mem_cfg_val: .long vBWSCON #define vBWSCON 0x .long vBANKCON0 #define vBANKCON0 0x .long vBANKCON1 .long vBANKCON2 #define vBANKCON1 0x .long vBANKCON3 #define vBANKCON2 0x .long vBANKCON4 .long vBANKCON5 #define vBANKCON3 0x .long vBANKCON6 #define vBANKCON4 0x .long vBANKCON7 #define vBANKCON5 0x .long vREFRESH .long vBANKSIZE #define vBANKCON6 0x .long vMRSRB6 #define vBANKCON7 0x .long vMRSRB7 13个变量,52个地址单元 #define vREFRESH 0x008e0459#define vBANKSIZE #define vMRSRB6 #define vMRSRB7 0xb2 0x30 0x3024 For 44b0x中Bootloader之存储器初始化;Bank1,3 16位,其余32位;Tacc [10:8] 110 = 10 clocks 111 = 14 clocks存取周期25 ? 5.2.2 Flash一、概述FLASH存储器又称闪存,是一种可在线多次擦除的非易失性 存储器,即掉电后数据不会丢失。FLASH存储器还具有体积小、 功耗低、抗振性强等优点,是嵌入式系统的首选存储设备。 FLASH存储器主要分为两种,一种为NOR型FLASH,另一 种为NAND型FLASH 。26 二、NOR型与NAND型FLASH的区别(1) 接口差别 NOR型FLASH采用的是SRAM接口,提供有足够的地址引脚来寻址, 可以很容易地存取其片内的每一个字节; NAND型FLASH使用复杂的I/O口来串行地存取数据,各个产品或厂 商的方法可能各不相同。通常是采用8个引脚来传送控制、地址和数据信 息。 (2) 读写的基本单位 NOR型FLASH操作是以“字”为基本单位; NAND型FLASH操作是以“页面”为基本单位,页的大小一般为512 字节。 (3) 性能比较 NOR型FLASH的地址线和数据线是分开的,传输效率很高,程序可 以在芯片内执行。NOR型的读速度比NAND型稍快一些; NAND型的写入速度比NOR型快很多(由于NAND型读写的基本单位 为“页面”,所以对于小量数据的写入,总体速度要比NOR型慢);27 (4) 容量和成本 NAND型FLASH具有极高的单元密度,容量可以做得比较大, 加上其生产过程更为简单,价格也就相应地降低了。 NOR主要应用在代码存储介质中,NAND适合于数据存储, NAND在CompactFlash、Secure Digital、PC Cards和MMC存储卡 市场上所占份额最大。 (5) 软件支持 在NOR型FLASH上运行代码不需要任何的软件支持,而在 NAND型FLASH上进行同样操作时,通常需要驱动程序,也就是 内存技术驱动程序MTD (Memory Technology Drivers)。NAND型 和NOR型FLASH在进行写入和擦除操作时都需要MTD(说明, MTD已集成在FLASH芯片内部,它是对FLASH进行操作的接口)。28 三、NOR型Flash存储器这里以SST39VF160为例,介绍NOR型FLASH存储器的结构 及操作。 SST39VF160是SST公司的CMOS多功能FLASH(MPF)器 件,存储容量为2M字节,16位数据宽度(即一个字为2字节),工 作电压为2.7~3.6V。SST39VF160由SST特有的高性能SuperFlash 技术制造而成,SuperFlash技术提供了固定的擦除和编程时间, 与擦除/编程周期数无关。芯片管脚配置如下图所示。29 SST39VF160管脚描述符号 A19~A0 管脚名称 地址输入 数据输入/输出 芯片使能 输出使能 写使能 功能 存储器地址。扇区擦除时,A19~A11用来选择扇区。 块擦除时,A19~A15用来选择块。 读周期内输出数据,写周期内输入数据。 写周期内数据内部锁存。 OE#或CE#为高时输出为三态。 CE#为低时启动器件开始工作。 数据输出缓冲器的门控信号。 控制写操作。DQ15~DQ0 CE# OE# WE#VDDVss NC电源地 不连接供给电源电压: 2.7~3.6V悬空管脚NOR型FLASH存储器采用的是SRAM接口,其地址线和数据 线是分开的。30 SST39VF160工作模式选择模式 读 编程 擦除 等待 写禁止 CE# VIL VIL VIL VIH OE# VIL VIH VIH X WE# VIH VIL VIL X DQ DOUT DIN X 高阻 AIN AIN 扇区或块地址, 芯片擦除时为0xFFH X 地址XXVILXXVIH高阻/DOUT高阻/DOUTXX器件标识符软件模式VILVILVIH31 NOR型FLASH存储器容量越来越大,为了方便数据管理,将 FLASH划分为块(Block),每个块又分成扇区(Sector)。 SST39VF160的块大小为32K字,扇区大小为2K字。?读操作,可以对任何地址的任何字节进行,不受限制; ?写操作,以字形式进行编程。编程前包含字的扇区必须完全 擦除; ?擦除操作,以扇区(2K)、块(32K)或全片为单位进行擦除。 擦除后数据变为0xFF。32 SST39VF160的存储器操作由命令来启动。命令通过标准微 处理器写时序写入器件。第1个总线写周期 命令时序 地址 字编程 扇区擦除 块擦除 芯片擦除 H H 数据 AAH AAH AAH AAH 地址 2AAAH 2AAAH 2AAAH 2AAAH 数据 55H 55H 55H 55H 地址 H H 数据 A0H 80H 80H 80H 地址 WA3 H 5555H 数据 数据 AAH AAH AAH 2AAAH 2AAAH 2AAAH 55H 55H 55H Sax Bax H 10H 地址 数据 地址 数据 第2个总线写周期 第3个总线写周期 第4个总线写周期 第5个总线写周期 第6个总线写周期软件ID入口CFI查询入口 软件ID退出 /CFI退出 软件ID退出 /CFI退出5555H5555H XXHAAHAAH F0H2AAAH2AAAH55H55H5555H5555H90H98H5555HAAH2AAAH55H5555HF0H33 ? 内部操作状态检测: SST39VFl60提供两种软件方式来检测内部操作是 否完成。软件检测方式涉及两个状态位:利用数 据轮询特性Data Polling bit(DQ7)和跳转位特性 Toggle bit(DQ6)。 在WE的上升沿,写入结束检测功能被使能, 同时内部写入或擦除操作也被初始化。 这里只介绍Toggle bit方式。 在内部写入或擦除的过程中,任何对DQ6连 续的读操作都会产生一个不断翻转的1和O。当内 部写入或擦除完成时,DQ6位将停止翻转。void Waitfor_endofprg(void) { volatile unsigned int old_Status,now_Status; old_Status= * ((volatile unsigned short *)0x00);//从任意地址读出数据 while(1) { new_Status=*((volatile unsigned short*)0x00): //从同一地址读出数据 if((old_Status&Ox40)==(new_Status&Ox40)) //比较DQ6位 break; else old_Status=new_Status: }34 ? SST39VF160擦除 Int SST39VF160_Sectorerase(unsigned long SAaddr) { writeflash(0x5555,0xAA) writeflash(0x2AAA,0x55) writeflash(0x) writeflash(0x5555,0xAA) writeflash(0x2AAA,0x55) writeflash(SAaddr,0x30) waitfor_endofprg() }如需擦除最后一个扇区, Saaddr=0xFF800即可, 芯片共2M空间,所以地址范围0x00000-0xfffff 0xff800-0xfffff为2k的空间。35 ?SST39VF160写入Int SST39VF160_wordProg(unsigned long addr,unsigned short dat) { writeflash(0x5555,0xAA) writeflash(0x2AAA,0x55) writeflash(0x) writeflash(addr,dat) waitfor_endofprg() }写入操作是一个字一个字进行的,在需要进行多字(16位)写入时,只要循环调用SST39VF160_wordProg即可。36 四、 Nand Flash及其控制器 Nor flash存储器:读速度高,而擦、写速度低,容量小, 价格高。 Nand flash存储器:读速度不如Nor flash,而擦、写速 度高,容量大,价格低。有取代磁盘的趋势。 因此,现在不少用户从Nand flash启动和引导系统,而 在SDRAM上执 行主程序代码。 (一)Nand Flash控制器概述 S3C2410X微控制器从Nand flash的引导功能:其内部有 一个叫做“起步石(Steppingstone)”的 SRAM缓冲器,系 统 启动时,Nand flash存储器的前面4KByte字节将被自动载 入到起步石中,然后系统自动执行这些载入的引导代码。引 导代 码执行完毕后,自动跳转到SDRAM执行。 Nand flash操作的校验功能:使用S3C2410X内部硬件 ECC功能可以对Nand flash的数据进行有效性的检测。37 (二) Nand Flash控制器主要特性 ? Nand Flash模式:支持读/擦/编程Nand flash存储器。 ? 自动导入模式:复位后,引导代码被送入Steppingstone, 传送后,引导代码在 Steppingstone中执行。 ? 具有硬件ECC(纠错码)功能:硬件产生纠错代码。 ? 内部4KB的SRAM缓冲器Steppingstone,在Nand flash引导 后可以作为其他用途使用。38 Nand Flash控制器功能框图主要由6部分组成 引脚信号: CLE:命令锁存 R/nB :就绪/忙39 (三)Nand Flash 控制器的寄存器寄存器 NFCON地 址 0x4E000000功能操作 读/写复位值 -Nand Flash配置NFCMD 0x4E000004NFADDR 0x4E000008 NFDATA 0x4E00000CNand Flash命令Nand Flash地址 Nand Flash数据读/写读/写 读/写-NFSTAT 0x4E000010NFECC 0x4E000014Nand Flash状态Nand Flash纠错读/写读/写-40 1、NFCON---Flash配Z寄存器15 1413 12NFEN 0 X 011 10 90 087X -65043X -2100IECC NFCETACLETWRPH0PWRPH1NFEN:NF控制器使能控制 0:禁止使用; 1:允许使用 IECC:初始化ECC编码/解码器控制位 0:不初始化ECC; 1:初始化ECC NFCE:NF片选信号nFCE控制位持续时间设Z 0: nFCE为低有效; 0: nFCE为高无效 TACLE:CLE/ALE持续时间设Z值(0---7) 持续时间= HCLK * (TACLS + 1) CLE/ALE :命令/地址锁存允许TWRPH0:写信号持续时间设Z值(0~7) 持续时间= HCLK * (TWRPH0+1) TWRPH1:写信号无效后CLE/ALE保持时间设Z值(0~7) 持续时间= HCLK * (TWRPH1+1)41 2、NFCMD---Flash命令寄存器1514131211109876543210保 留3、NFADDR---Flash地址寄存器 15 14 13 12 11 10 9 8 7 6 5命令字43210保 留地址值高24位未用,低8位为Flash存储器地址值4、NFDATA---Flash数据寄存器 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0保 留输入/输出数据42高24位未用,低8位为读入或者写出的数据 5、NFSTAT---Flash状态寄存器15 14 13 12 11 10 9 8保 留76543210RnBRnB:Nand Flash存储器状态位 0:存储器忙; 1:存储器准备好6、NFECC---Flash错误校正码寄存器31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16保 留 错误校正码#215 14 13 12 11 10错误校正码#19876543210错误校正码#043 (四)Nand Flash 控制器的工作原理1、自动导入启动代码步骤 ?完成复位。 ? 如果自动导入模式使能,Nand flash存储器的前面4K 字节被自动拷贝到Steppingstone 内部缓冲器中。 ? Steppingstone被映射到nGCS0对应的BANK0存储空间。 ? CPU在Steppingstone的4-KB内部缓冲器中开始执行引 导代码。 注意: 在自动导入模式下,不进行ECC检测。因此, Nand flash的前4KB应确保不能有位错误(一 般Nandflash 厂家都确保)。44 2、Nand FLASH模式配Z通过NFCONF寄存器配ZNand flash; 写Nand flash命令到NFCMD寄存器; 写Nand flash地址到NFADDR寄存器; 在读写数据时,通过NFSTAT寄存器来获得 Nand flash的状态信息。应该在读操作前或写入 之 后检查R/nB信号(准备好/忙信号)。 ? 在读写操作后要查询校验错误代码,对错误进 行纠正。 ? ? ? ?45 3、系统引导和 Nand FLASH 配Z ?OM[1:0] = 00b:使能Nand flash控制器自动导 入模式; OM[3:0]为芯片引脚,设Z引导模式、存储器 bank0的数据宽度、时钟模式等。 OM[1:0] = 01b、10b: bank0数据宽度为16位、32位 OM[1:0]=11b:测试模式 ? Nand flash的存储页面大小应该为512字节。 ? NCON (引脚):Nand flash 寻址步骤数选择 0:3步寻址; 1:4步寻址注:如果NAND Flash的容量是256Mbit以下,那么, block adress最高位只到bit24,因此寻址只需要3步。46 4、Nand Flash操作的校验问题S3C2410A在写/读操作时,每512字节数据自动 产生3字节的ECC奇偶代码(24位)。24位 ECC 奇偶代码=18位行奇偶 + 6位列奇偶ECC产生模块执行以下步骤:?当MCU写数据到Nand时,ECC产生模块生成ECC代 码。 ? 当MCU从Nand读数据时,ECC产生模块生成ECC代码同时用户程序将它与先前写入时产 生的ECC代码比较。47 ? Flash――NAND型Flash存储器这里以K9F2808U0C为例,介绍NAND型FLASH存储器的结构 及操作。 K9F2808U0C是SAMSUNG公司生产的NAND型FLASH存储 器,存储容量为16M×8Bit,工作电压为2.7~3.6V。528字节的页 编程操作时间为200μs,16K字节的块擦除操作时间为2ms。页面 的数据以每个字50ns的速度被读出。片内写控制自动实现所有编 程和擦除功能,包括脉冲的周期、内部校验和数据冗余。48 ? Flash――NAND型Flash存储器K9F2808U0C的存储空间分为32K页,每一页有(512+16) 字节。该寄存器被分为两个区:数据区和空闲区。数据区又可分 为上、下两个区,每个区为256字节;空闲区可以用于存放ECC 校验和其它校验信息。49 BACK? 并行Flash――NAND型Flash存储器对K9F2808U0C的操作是通过将特定的指令数据写到芯片指 令寄存器中实现,指令与时序的定义如下表所示。功能 读数据寄存器(数据区) 读数据寄存器(空闲区) 读器件ID 复位 页编程 块擦除 读状态 第一个周期 00h/ 01h 50h 90h FFh 80h 60h 70h 第二个周期 10h D0h O O 忙时可接受的命令50 5.3 输入/输出端口主要内容概述 寄存器 应用举例51 一、概述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个输入/输出口 这些端口都具有多功能,通过引脚配置寄存器,可以 将其设置为所需要的功能,如:I/O功能、中断功能等等。52 二、端口寄存器及引脚配Z每一个端口都有4个寄存器,它们是:引脚配 Z寄存器、数据寄存器、引脚上拉寄存器等。RegisterGPXCON GPXDATAddressR/WDescription端口X配Z寄存器 端口X数据寄存器Reset ValueX X0x R/W 0x R/WGPXUP0x R/W端口X上拉寄存器端口X保留寄存器X-RESERVED 0x560000xC R/W53 1、端口A寄存器及引脚配ZRegisterGPACON GPADATAddressR/WDescription端口A数据寄存器Reset Value-0x R/W 端口A引脚配Z寄存器 0x7FFFFF 0x R/WRESERVED 0xRESERVED 0x5600000C-端口A保留寄存器端口A保留寄存器-GPADAT寄存器为准备输出的数据其值为23位[22:0]注意: (1)当A口引脚配Z为非输出功能时,其输出 无意义; (2)从引脚输入没有意义。54 1、端口A寄存器及引脚配Z位号 位 名 位值:02221 20 19 18GPA22GPA21 GPA20 GPA19 GPA181nFCEnRSTOUT nFRE nFWE ALE位号 位 名 位值:0109 8 7 6GPA10GPA9 GPA8 GPA7 GPA61ADDR25ADDR24 ADDR23 ADDR22 ADDR21输出输出 输出 输出 输出输出输出 输出 输出 输出1716 15 14 13 12 11GPA17GPA16 GPA15 GPA14 GPA13 GPA12 GPA11输出输出 输出 输出 输出 输出 输出CLEnGCS5 nGCS4 nGCS3 nGCS2 nGCS1 ADDR2654 3 2 1 0GPA5GPA4 GPA3 GPA2 GPA1 GPA0输出输出 输出 输出 输出 输出ADDR20ADDR19 ADDR18 ADDR17 ADDR16 ADDR055FCE: Flash片选 2、端口B寄存器及引脚配ZRegisterGPBCON GPBDATAddressR/WDescription端口B数据寄存器Reset Value0x0 -0x R/W 端口B引脚配Z寄存器 0x R/WGPBUP0x R/W-端口B上拉寄存器端口B保留寄存器0x0-RESERVED 0x5600001CGPBDAT---为准备输出或输入的数据 其值为11位[10:0] GPBUP---端口B上拉寄存器,位[10:0]有意义。 0:对应引脚设Z为上拉 1:无上拉功能 注意: 当B口引脚配Z为非输入/输出功能时,其寄存 器中的值没有意义。56 端口B引脚配Z寄存器位号21,2019,18 17,16 15,14 13,12位 名 位值:00GPB10GPB9 GPB8 GPB7 GPB601输出输出 输出 输出 输出10nXDREQ0nXDACK0 nXDREQ1 nXDACK1 nXBACK11ReservedReserved Reserved Reserved Reserved输入输入 输入 输入 输入11,109,8 7,6 5,4 3,2 1,0GPB5GPB4 GPB3 GPB2 GPB1 GPB0输入输入 输入 输入 输入 输入输出输出 输出 输出 输出 输出nXBREQTCLK0 TOUT3 TOUT2 TOUT1 TOUT0ReservedReserved Reserved Reserved Reserved Reserved57 3、端口C寄存器及引脚配ZRegisterGPCCON GPCDATAddressR/WDescription端口C数据寄存器Reset Value0x0 -0x R/W 端口C引脚配Z寄存器 0x R/WGPCUP0x R/W-端口C上拉寄存器端口C保留寄存器0x0-RESERVED 0x5600002CGPCDAT---为准备输出或输入的数据 其值为16位[15:0] GPCUP---端口C上拉寄存器,位[15:0]有意义。 0:对应引脚设Z为上拉 1:无上拉功能 注意: 当C口引脚配Z为非输入/输出功能时,其寄存 器中的值没有意义。58 端口C引脚配Z寄存器位号 位 名 位 值 位号 位名 位 00 01 值 10 110001101131,30 GPC15 输入 输出 VD7 保留 15,14 GPC7 输入 输出 LCDVF2 保留29,28 GPC14 输入 输出 VD6 保留 13,12 GPC6 输入 输出 LCDVF1 保留 27,26 GPC13 输入 输出 VD5 保留 11,10 GPC5 输入 输出 LCDVF0 保留 25,24 GPC12 输入 输出 VD4 保留 23,22 GPC11 输入 输出 VD3 保留 9,8 GPC4 输入 输出 VM 保留 7,6 GPC3 输入 输出 VFRAME 保留21,20 GPC10 输入 输出 VD2 保留19,18 GPC9 输入 输出 VD1 保留 17,16 GPC8 输入 输出 VD0 保留5,4 GPC2 输入 输出 VLINE 保留3,2 GPC1 输入 输出 VCLK 保留 1,0 GPC0 输入 输出 VEND 保留59 4、端口D寄存器及引脚配ZRegisterGPDCON GPDDATAddressR/WDescription端口D数据寄存器Reset Value0x0 -0x R/W 端口D引脚配Z寄存器 0x R/WGPDUP0x R/W-端口D上拉寄存器端口D保留寄存器0xF000-RESERVED 0x5600003CGPDDAT---为准备输出或输入的数据 其值为16位[15:0] GPDUP---端口D上拉寄存器,位[15:0]有意义。 0:对应引脚设Z为上拉 1:无上拉功能 初始化时,[15:12]无上拉功能,而[11:0]有上拉 注意: 当D口引脚配Z为非输入/输出功能时,其寄存 器中的值没有意义。 60 端口D引脚配Z寄存器位号 位 名 位 值 位号 位名 位 00 01 值 10 110001101131,30 GPD15 输入 输出 VD23 nSS0 15,14 GPD7 输入 输出 VD15 保留29,28 GPD14 输入 输出 VD22 nSS1 13,12 GPD6 输入 输出 VD14 保留 27,26 GPD13 输入 输出 VD21 保留 11,10 GPD5 输入 输出 VD13 保留 25,24 GPD12 输入 输出 VD20 保留 23,22 GPD11 输入 输出 VD19 保留 9,8 GPD4 输入 输出 VD12 保留 7,6 GPD3 输入 输出 VD11 保留21,20 GPD10 输入 输出 VD18 保留19,18 GPD9 输入 输出 VD17 保留 17,16 GPD8 输入 输出 VD16 保留5,4 GPD2 输入 输出 VD10 保留3,2 GPD1 输入 输出 VD9 保留 1,0 GPD0 输入 输出 VD8 保留61 5、端口E寄存器及引脚配ZRegisterGPECON GPEDATAddressR/WDescription端口E数据寄存器Reset Value0x0 -0x R/W 端口E引脚配Z寄存器 0x R/WGPEUP0x R/W-端口E上拉寄存器端口E保留寄存器0x0-RESERVED 0x5600004CGPEDAT---为准备输出或输入的数据 其值为16位[15:0] GPEUP---端口E上拉寄存器,位[15:0]有意义。 0:对应引脚设Z为上拉 1:无上拉功能 初始化时,各个引脚都有上拉功能。 注意: 当E口引脚配Z为非输入/输出功能时,其寄存 器中的值没有意义。 62 端口E引脚配Z寄存器位号 位 名 位 值 位号 位名 位 00 01 值 10 110001101131,30 GPE15 输入 输出 IICSDA 保留 15,14 GPE7 输入 输出 SDDAT0 保留29,28 GPE14 输入 输出 IICSCL 保留 13,12 GPE6 输入 输出 SDCMD 保留 27,26 GPE13 输入 输出 SPICLK0 保留 11,10 GPE5 输入 输出 SDCLK 保留 25,24 GPE12 输入 输出 SPISI0 保留 9,8 GPE4 输入 输出 IISSDO 保留 23,22 GPE11 输入 输出 SPISO0 保留 7,6 GPE3 输入 输出 IISSDI 保留21,20 GPE10 输入 输出 SDDAT3 保留 5,4 GPE2 输入 输出 CDCLK 保留19,18 GPE9 输入 输出 SDDAT2 保留 3,2 GPE1 输入 输出 IISSCLK 保留 17,16 GPE8 输入 输出 SDDAT1 保留 1,0 GPE0 输入 输出 IISLRCK 保留63 6、端口F寄存器及引脚配ZRegisterGPFCON GPFDATAddressR/WDescription端口F数据寄存器Reset Value0x0 -0x R/W 端口F引脚配Z寄存器 0x R/WGPFUP0x R/W-端口F上拉寄存器端口F保留寄存器0x0-RESERVED 0x5600005CGPFDAT---为准备输出或输入的数据 其值为8位[7:0] GPFUP---端口F上拉寄存器,位[7:0]有意义。 0:对应引脚设Z为上拉 1:无上拉功能 初始化时,各个引脚都有上拉功能。 注意: 当F口引脚配Z为非输入/输出功能时,其寄存 器中的值没有意义。 64 端口F引脚配Z寄存器位号 15,14 13,12 11,10 9,8 7,6 5,4 3,2 1,0 位名 GPF7 GPF6 GPF5 GPF4 GPF3 GPF2 GPF1 GPF0 位 00 输入 输入 输入 输入 输入 输入 输入 输入 01 输出 输出 输出 输出 输出 输出 输出 输出 值 10 EINT7 EINT6 EINT5 EINT4 EINT3 EINT2 EINT1 EINT0 11 保留 保留 保留 保留 保留 保留 保留 保留65 7、端口G寄存器及引脚配ZRegisterGPGCON GPGDATAddressR/WDescription端口G数据寄存器Reset Value0x0 -0x R/W 端口G引脚配Z寄存器 0x R/WGPGUP0x R/W-端口G上拉寄存器端口G保留寄存器0xF800-RESERVED 0x5600006CGPGDAT---为准备输出或输入的数据 其值为16位[15:0] GPGUP---端口G上拉寄存器,位[15:0]有意义。 0:对应引脚设Z为上拉 1:无上拉功能 初始化时,[15:11]引脚无上拉功能,其它引脚有。 注意: 当G口引脚配Z为非输入/输出功能时,其寄存 器中的值没有意义。66 端口G引脚配Z寄存器位号 位 名00 位 01 值 10 11位号 位名00 01位值 10 1131,30 GPG15 输入 输出 EINT23 nYPON 15,14 GPG7 输入 输出 EINT15 SPICLK1 29,28 GPG14 输入 输出 EINT22 YMON 13,12 GPG6 输入 输出 EINT14 SPISI1 27,26 GPG13 输入 输出 EINT21 nXPON 11,10 GPG5 输入 输出 EINT13 SPISO1 25,24 GPG12 输入 输出 EINT20 XMON 9,8 GPG4 输入 输出 EINT12 23,22 GPG11 输入 输出 EINT19 TCLK1 7,6 GPG3 输入 输出 EINT11 21,20 GPG10 输入 输出 EINT18 保留 5,4 GPG2 输入 输出 EINT10LCDPENnSS1 nSS019,18 GPG9 输入 输出 EINT17 保留17,16 GPG8 输入 输出 EINT16 保留3,2 GPG1 输入 输出 EINT91,0 GPG0 输入 输出 EINT8保留保留LCD-PEN:POWER_ENABLEnSS0:SPI0_SELECT67 8、端口H寄存器及引脚配ZRegisterGPHCON GPHDATAddressR/WDescription端口H数据寄存器Reset Value0x0 -0x R/W 端口H引脚配Z寄存器 0x R/WGPHUP0x R/W-端口H上拉寄存器端口H保留寄存器0x0-RESERVED 0x5600007CGPHDAT---为准备输出或输入的数据 其值为11位[10:0] GPHUP---端口H上拉寄存器,位[10:0]有意义。 0:对应引脚设Z为上拉 1:无上拉功能 注意: 当H口引脚配Z为非输入/输出功能时,其寄存 器中的值没有意义。68 端口H引脚配Z寄存器位号 21,20 19,18 17,16 15,14 位 名 GPH10 GPH9 GPH8 GPH7 位值:00 输入 输入 输入 输入 01 输出 输出 输出 输出 10 11 CLKOUT1 CLKOUT0 UCLK RXD2BACKReserved Reserved Reserved nCTS113,1211,10 9,8 7,6 5,4 3,2 1,0GPH6GPH5 GPH4 GPH3 GPH2 GPH1 GPH0输入输入 输入 输入 输入 输入 输入输出输出 输出 输出 输出 输出 输出TXD2RXD1 TXD1 RXD0 TXD0 nRTS0 nCTS0nRTS1Reserved Reserved Reserved Reserved Reserved Reserved程序示例见VIVI中:S3C2410.h(地址映射)、smdk2410.h(功能设置值 )、smdk.c(将值写到指定地址)69 9、端口其它控制寄存器RegisterMISCCRAddressR/WDescription混合控制寄存器 D时钟控制寄存器Reset Value0x0x R/WDCLKCON 0x R/W70 (1)MISCCR---混合控制寄存器31 …… 20 19 18 17 16保留(为0) nEN_SCKE nEN_SCLK1 nEN_SCLK0 nRSTCON151413USBSUSPND1121110987保留保留USBSUSPND0 保留CLKSEL16543USBPAD2MEM_HZ_CON10CLKSEL0SPUCR_L SPUCR_HnEN_SCKE---SCLK使能位。在电源关闭模式下对SDRAM做 保护 0: 正常状态 1:低电平 nEN_SCLKx---SCLKx使能位。在电源关闭模式下对SDRAM 做保护 0:SCLKx= SCLK 1:低电平 nRSTCON---对nRSTOUT软件复位控制位 0:使nRSTOUT为低,0;1:使nRSTOUT为高,171 151413USBSUSPND1121110987保留保留USBSUSPND0 保留CLKSEL1USBSUSPND1---USB端口1模式 0:正常 1:浮空 USBSUSPND0---USB端口0模式 0:正常 1:浮空 CLKSEL1 --- CLKOUT1引脚输出信号源选择 000:MPLL CLK 001:UPLL CLK 010:FCLK 011:HCLK 100:PCLK 101:DCLK1 11x:保留 CLKSEL0 --- CLKOUT0引脚输出信号源选择 000:MPLL CLK 001:UPLL CLK 010:FCLK 011:HCLK 100:PCLK 101:DCLK0 11x:保留72 6543USBPAD2MEM_HZ_CON10CLKSEL0SPUCR_L SPUCR_HUSBPAD---与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]上拉控制位 0:上拉 1:无上拉73 (2)DCLKCON---D时钟控制寄存器31 … 28 27 26 25 24 23 22 21 20 19 18保留1716DCLK1CMP DCLK1DIV 保留 DCLK1SEL DCLK1EN15 … 12 11 10 9 8 7 6 5 4 3 2保留10DCLK0CMP DCLK0DIV 保留 DCLK0SelCK DCLK0ENDCLK1(0)CMP---DCLK1(0)低电平时间所占的比例数。 设该位值为m,m& DCLK1(0)DIV。 则低、高电平持续时间的源周期数分别为: m+1、DCLK1(0)DIV-m DCLK1(0)DIV---DCLK1(0)分频值 DCLK1(0) frequency = source clock / ( DCLK1(0)DIV + 1 )74 (2)DCLKCON---D时钟控制寄存器(续)31 … 28 27 26 25 24 23 22 21 20 19 18保留1716DCLK1CMP DCLK1DIV 保留 DCLK1SEL DCLK1EN15 … 12 11 10 9 8 7 6 5 4 3 2保留10DCLK0CMP DCLK0DIV 保留 DCLK0SelCK DCLK0ENDCLK1(0)SelCK---DCLK1(0) source clock 选择 0 : 源时钟选择PCLK 1:源时钟选择UCLK ( USB ) DCLK1(0)EN---DCLK1(0) Enable 0:禁止 1:允许75 10、外中断控制寄存器Register Address R/W Description Reset Value0x0 0x0EXTINT0 0x R/W 外中断触发方式寄存器0 EXTINT1 0x5600008C R/W 外中断触发方式寄存器1EXTINT2 0x R/W外中断控制寄存器20x0主要设Z各个外中断源的触发方式、滤波76 (1)EXTINT0---外中断触发方式控制寄存器031 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 X EINT7 X EINT6 9 8 X 7 X 6 EINT5 5 EINT1 4 X 3 X 2 EINT4 1 EINT0 015 14 13 12 11 10 X EINT3 XEINT2EINT0~7---中断请求信号触发方式选择 000:低电平触发 001:高电平触发 01x:下降沿触发 10x:上升沿触发 11x:双边沿触发 第3、7、11、15、19、23、27、31位---保留77 (2)EXTINT1---外中断触发方式控制寄存器131 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 X EINT15 X EINT14 9 8 X 7 X EINT13 6 5 EINT9 4 X 3 X EINT12 2 1 EINT8 015 14 13 12 11 10 X EINT11 XEINT10EINT8~15---中断请求信号触发方式选择 000:低电平触发 001:高电平触发 01x:下降沿触发 10x:上升沿触发 11x:双边沿触发 第3、7、11、15、19、23、27、31位---保留78 (3)EXTINT2---外中断控制寄存器231 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 F23 EINT23 F22 EINT22 9 8 F21 7 F17 EINT21 6 5 4 F20 3 F16 EINT20 2 1 015 14 13 12 11 10 F19 EINT19 F18EINT18EINT17EINT16EINT16~23---外中断请求信号触发方式选择 000:低电平触发 001:高电平触发 01x:下降沿触发 10x:上升沿触发 11x:双边沿触发 第3、7、11、15、19、23、27、31位---为FILTEN 各引脚滤波控制位 0:禁止滤波 1:使能滤波79 11、外中断滤波控制寄存器Register Address R/W Description保留 保留Reset Value-EINTFLT0 0x R/W EINTFLT1 0x R/WEINTFLT2 0x5600009C R/W 外中断滤波控制寄存器2EINTFLT3 0x R/W 外中断滤波控制寄存器30x00x0主要设Z各个外中断源的滤波器设Z80 (1)EINTFLT2---外中断滤波控制寄存器231 FLTCLK19 15 FLTCLK17 14 30 …… EINTFLT19 …… EINTFLT17 8 24 23 FLTCLK18 7 FLTCLK16 6 22 EINTFLT18 …… EINTFLT16 0 16FLTCLK16~19---外中断16~19滤波器时钟选择 0:PCLK 1:外部/振荡时钟(由OM引脚选择) EINTFLT16~19---外中断16~19滤波器宽度(频带宽度)81 (2)EINTFLT3---外中断滤波控制寄存器331 FLTCLK23 15 FLTCLK21 14 30 …… EINTFLT23 …… EINTFLT21 8 24 23 FLTCLK22 7 FLTCLK20 6 22 EINTFLT22 …… EINTFLT20 0 16FLTCLK20~23---外中断20~23滤波器时钟选择 0:PCLK 1:外部/振荡时钟(由OM引脚选择) EINTFLT20~23---外中断20~23滤波器宽度(频带宽度)82 12、外中断屏蔽、标志寄存器Register Address R/W Description外中断屏蔽寄存器 外中断标志寄存器Reset Value0x00FFFFF0 0x0EINTMAK 0x R/W EINTPEND 0x R/W83 外中断屏蔽寄存器位号 23 22 含义 EINT23 EINT22 位号 15 14 含义 EINT15 EINT14 位号 7 6 含义 EINT7 EINT621 2019EINT21 EINT20EINT1913 1211EINT13 EINT12EINT115 43EINT5 EINT4保留18 1716EINT18 EINT17EINT1610 98EINT10 EINT9EINT82 10保留 保留保留0:允许中断 1:禁止中断 注意: EINT0--- EINT3不能在此被屏蔽,在SRCPND中屏蔽。84 外中断标志寄存器位号 23 22 含义 EINT23 EINT22 位号 15 14 含义 EINT15 EINT14 位号 7 6 含义 EINT7 EINT621 2019EINT21 EINT20EINT1913 1211EINT13 EINT12EINT115 43EINT5 EINT4保留18 1716EINT18 EINT17EINT1610 98EINT10 EINT9EINT82 10保留 保留保留0:无中断请求 1:有中断请求 注意:对某位写1,则清除相应标志,即清为0.85 13、外中断状态寄存器Register Address R/WR RDescription外部引脚状态寄存器 芯片ID(标识)寄存器Reset Value不确定 0xGSTATUS0 0x560000AC GSTATUS1 0xGSTATUS2 0x R/WGSTATUS3 0x R/W GSTATUS4 0x R/W复位状态寄存器信息保存寄存器 信息保存寄存器0x10x0 0x0GSTATUS3、4: 复位时被清0,其它情况下其数据不变。 用户可以用于保存数据。86 (1)GSTATUS0---外部引脚状态寄存器31 …… 保 留 4 3 nWEIT 2 nCON 1 RnB 0 nBATT_FLTnWEIT---引脚nWEIT状态nCON---引脚nCON状态RnB---引脚R/nB状态 nBATT_FLT---引脚nBATT_FLT状态 注意:各位的数值0、1,随着对应引脚变化。87 (2)GSTATUS2---复位状态寄存器31 …… 保 留 3 2 WDTRST 1 OFFRST 0BACKPWRSTWDTRST---上电复位控制状态 1:出现了上电复位 对该位写,则将该位清0 OFFRST---掉电模式复位状态。 1:系统出现了从掉电模式唤醒复位 对该位写,则将该位清0 PWRST---看门狗复位状态 1:系统出现了看门狗定时器复位 对该位写,则将该位清088 5.4 UART通用异步串行接口主要内容概述 结构 寄存器 应用举例89 一、概 述S3C2410 的UART(通用异步串行口)有三个独立的异 步串行I/O 端口:UART0、UART1、UART2,每个串口都 可以在中断和DMA 两种模式下进行收发。UART支持的最 高波特率达230.4kbps。 每个UART 包含:波特率发生器、接收器、发送器和 控制单元。波特率发生器以PCLK或UCLK为时钟源。发送 器和接收器各包含1个16 字节的FIFO 寄存器和移位寄存器。 S3C2410 的3个UART都有遵从1.0规范的红外传输功能, UART0、UART1有完整的握手信号,可以连接MODEM。 当发送数据的时候,数据先写到FIFO 然后拷贝到发送 移位寄存器,然后从数据输出端口(TxDn)依次被移位输 出。被接收的数据也同样从接收端口(RxDn)移位输入到 移位寄存器,然后拷贝到FIFO 中。90 通用异步收发嵌入式开发板和PC机的通讯电缆可以 按照如图所示的方式连接。RS-232 串行接口 2 3 PC 5 RS-232 串行接口 2 3 5 嵌入式 开发板?串行数据传送模式: 单工? ? ? ?半双工全双工串行通信方式:? ?同步通信异步通信91 ? 使用UART0通信S3C2410的I/O电压为 3.3V(可承受5V), S3C2410 连接时须注意电平的 匹配。 与PC机相连时,由于 PC机串口是RS232电 平,所以连接时需要 使用RS232转换器。TxD0 RxD0 TxD0 RxD0其它 通信设备TxD0S3C2410 RxD0232 电平转换TxD0 RxD0PC机串口? 要完成最基本的串行通信功能,实际上只需要RXD、TXD和 GND即可,但由于RS-232-C标准所定义的高、低电平信号与 TTL电路所定义的高、低电平信号完全不同 ? 而RS-232-C标准采用负逻辑方式,标准逻辑D1‖对应-5V~15V电平,标准逻辑D0‖对应+5V~+15V电平,显然,两者间 要进行通信必须经过信号电平的转换,目前常使用的电平转 换电路为MAX23292 RS-232-C标准采用的接口是9芯或25芯的D型插头,以常用的9芯D型插头 为例,各引脚定义如下:引脚1 2 3 4 5 6 7名 称DCD RXD TXD DTR GND DSR RTS功能描述数据载波检测 数据接收 数据发送 数据终端准备好 地 数据设备准备好 请求发送89CTSRI清除发送振铃指示5 9 4 8 3 7 2 6 193 二、串行口结构和工作原理1、串行口结构主要有4 部分构成: 接收器、发 送器、波特 率发生器、 控制逻辑等。94 接收器/发送器的结构Tx FIFO中断/DMA请求控制寄存器 FI FO 控 制 寄 存 器 FI FO 状 态 寄 存 器 发 送 缓 冲 寄 存 器 接 收 缓 冲 寄 存 器nCTS: :MODEM状态RnRTSMODEM控制R发送移位寄存器接收移位寄存器TxD错误状态寄存器RxD波特率除数 寄存器: :线路控制寄存器收发状态寄存器Rx FIFO95 2、工作原理 (1)串行口的操作数据帧格式:可编程,包含1个开始位、5 到8 个数据 位、1个可选的奇偶校验位、1个或2个停止位,通过线路控 制器(ULCONn)来设Z。 发送中止信号:迫使串口输出逻辑0 ,这种状态保持一 个传输帧的时间长度。通常在一帧传输数据完整地传输完 之后,再通过这个全0 状态将中止信号发送给对方。中止信 号发送之后,传送数据连续放到FIFO 中(在不使用FIFO 模式下,将被放到输出保持寄存器)。 接收器具有错误检测功能:可以检测出溢出错误,奇 偶校验错误,帧错误和中止状况,每种情况下都会将一个 错误标志在接收状态寄存器Z位。96 (2)串行口的波特率发生器 每个UART 的波特率发生器为传输提供了串行移位时 钟。波特率产生器的时钟源可以从S3C2410 的内部系统时 钟PCLK或UCLK 中来选择。波特率数值决定于波特率除 数寄存器(UBRDIVn)的值,波特率数与UBRDIVn 的关 系为: UBRDIVn=(int)(CLK/( f B*16))- 1 其中CLK为所选择的时钟频率, f B为波特率。 f B= CLK/16/ ( UBRDIVn + 1 ) 例如,如果波特率为115200bps 且PCLK 或UCLK 为 40MHz,则UBRDIVn 为: UBRDIVn =(int)()/()) - 1 = (int)(21.7) - 1 = 21- 1 = 2097 (3)串行口波特率误差极限在应用中,实际波特率往往与理想波特率有差别,其 误差不能超过一定的范围,其极限为:UART传输10bit数 据的时间误差应该小于1.87%(3/160)。 t_true = (UBRDIVn + 1)×16×10 / PCLK 实际的传输10bit所需时间 t_ideal = 10 / baud_rate 理想情况下传输10位需要的时间 UART error=( ( t_true C t_ideal ) / t_ideal )×100%98 (4)串行口的自动流控制功能 UART0和UART1不仅有完整的握手信号,而且有自动 流控制功能,在寄存器UMCONn中设Z实现。自动流控制 是利用信号nRTS、nCTS来实现的。在接收数据时,只要 接收FIFO中有两个空字节就会使nRTS有效,使对方发送 数据;在发送数据时,只要nCTS有效,就会发送数据。其 实现过程如下图所示。 nRTS:请求对方发送 nCTS:清除请求发送99 (5)使用FIFO进行收发主要是通过对FIFO状态寄存器UFSTATn的查询,确定 进行收发。 使用FIFO进行发送: (1)选择发送模式(中断或者DMA模式) (2)查询对方是否有请求发送要求,由MODEM状态 寄存器UMSTATn[0]给出,该位为1,则有请求,再查询 FIFO状态寄存器UFSTATn的数据满状态位是否为1,如果 不是1,可以向发送缓冲寄存器UTXHn写入发送的数据。 上面二者有一个或者两个都不满足,则不发送数据。 使用FIFO进行接收(请求发送): (1)选择接收模式(中断或者DMA模式) (2)请求发送。先要查询FIFO状态寄存器UFSTATn 的数据满状态位是否为1,如果不是1,则可以向对方发出 “请求发送信号”,对MODEM控制寄存器MCONn中的 请求发送信号产生位Z1,使UARTn发出nRTS信号;如果 UFSTATn的数据满状态位是1,则不能够请求发送数据。100 (6)不使用FIFO进行收发主要是通过对收/发状态寄存器UTRSTATn的查询,确定 进行收发。 数据发送: (1)选择发送模式(中断或者DMA模式) (2)查询对方是否有请求发送要求,由MODEM状态寄 存器UMSTATn[0]给出,该位为1,则有请求,再查询发送/接 收状态寄存器UTRSTATn[1]的“发送缓冲器空”状态位是否 为1,如果是1,可以向发送缓冲寄存器UTXHn写入发送的数 据。 数据接收(请求发送): (1)选择接收模式(中断或者DMA模式) (2)请求发送。先要查询发送/接收状态寄存器 UTRSTATn[0]的接收缓冲器“数据就绪状态位”是否为1,如 果是1,需要先读取数据,然后再请求对方发送数据,方法是 对MODEM控制寄存器MCONn中的请求发送信号产生位Z1, 使UARTn发出nRTS信号。如果UFSTATn的数据满状态位是1, 则不能够请求发送数据101 (7)中断或DMA请求每个UART都有3类、7种事件产生中断请求或者DMA 请求。 7种中断请求事件是:溢出错误、奇偶校验错误、帧格 式错误、传输中断信号、接收缓冲器数据就绪、发送缓冲 器空、发送移位器空。 它们可以分成3类:错误中断请求、接收中断请求、发 送中断请求。 ? 接收中断:C C 非FIFO模式:当接收缓冲寄存器收到数据后,产生中断请求。 FIFO模式:Rx FIFO中数据的数目达到了触发中断的水平,或者 超时(在三帧时间内未收到任何数据),均产生中断请求。?C C发送中断:非FIFO模式:当发送缓冲器空时,产生中断请求。 FIFO模式:Tx FIFO中数据的数目达到了触发中断的水平。102 ?错误中断: 一共有4种错误中断:溢出错误、奇偶检验错 误、帧格式错误、传输中断信号错误。说明: (1)对于“奇偶校验错误、帧格式错误、传 输中断信号错误”中断,在数据接收时就产生了, 但是在数据接收产生时并非出现中断请求,而是在 读出错误数据时才出现中断请求。 (2)如果设Z的是DMA模式,而不是中断请 求模式,对于以上所出现的中断请求,应该是 DMA请求。 (3)传输中断信号定义:在超出一帧的时间 内,全部输出低电平。103 (8)循环检测模式S3C2410X的每一个UART都提供有检测功能,它是一 种数据循环流动的自发、自收方式,数据从发送缓冲器传 送到TXD,数据不经过引脚输出,在内部将数据传到接收 引脚RXD,再传输到接收缓冲器。104 三、UART专用寄存器3个UART,每个都有11个专用寄存器,共31个寄存器 (UART2无MODEM寄存器) RegisterULCONnAddress0xR/WR/WDescription线路控制寄存器Reset Value0x00UCONnUFCONn UMCONn0x0xR/WR/W R R控制寄存器FIFO控制寄存器 发送/接收状态寄存器 Rx错误状态寄存器0x000x00 0x00 0x6 0x00x5000x00C R/W MODEM控制寄存器*UTRSTATn 0x UERSTATn 0xUFSTATnUTXHn URXHn UBRDIVn0xRR R R/WFIFO状态寄存器MODEM状态寄存器* 发送缓冲寄存器 接收缓冲寄存器 波特率除数寄存器0x000x0 105UMSTATn 0xx 0x0x WNEXT 1、线路控制寄存器(ULCON)RegisterULCON0backReset Value0x00Address0xR/WDescriptionR/W UART0线路控制寄存器ULCON1ULCON20x0xR/W UART1线路控制寄存器R/W UART2线路控制寄存器0x000x00字段名Infra-Red-Mode Parity Mode位76 5:3意 义保留红外模式设Z位。0:正常模式;1:红外 奇偶校验类型。 0xx:不校验; 100:奇校验; 101:偶校验; 110:强制为1; 111:强制为0初值00 000Num of stop bitWord Length21:0停止位个数。 0:1个;1:2个数据位数目。 00:5位; 01:6位; 10:7位; 11:8位000106 2、控制寄存器(UCON)RegisterUCON0 UCON1Address0xxR/WR/W R/WDescriptionUART0控制寄存器 UART1控制寄存器Reset Value0x00 0x00UCON20xR/WUART2控制寄存器0x00107 2、控制寄存器(UCON)字段名Clock Selection Tx Int Type Rx Int Type Rx Time OV Ena Rx ERR Int Ena Loopback Mode Send Break Signal Transmit Mode Receive Modeback初值0 0 0 0 0 0 0 00 00108位10 9 8 7 6 5 4 3:2意 义波特率时钟源选择。0:PCLK;1:UCLK 发送中断请求类型。0 :脉冲型;1:电平 接收中断请求类型。0 :脉冲型;1:电平 接收超时中断控制。0:禁止;1:允许 接收错误中断控制。0:禁止;1:允许 回送模式控制。0 = 正常操作;1 = 回送模式 发送暂停信号控制。 0 = 正常传输;1 = 发送暂停信号(全为0)发送/接收模式控制。00:禁止发送/接收; 01:中断或查询模式;10:UART0、2用 1:0 DMA0、DMA3;11:UART1用DMA1 3、FIFO控制寄存器(UFCON)RegisterUFCON0UFCON1 UFCON2AddressR/WDescriptionReset Value0x000x00 0x000x R/W UART0 FIFO控制寄存器0x R/W UART1 FIFO控制寄存器 0x R/W UART2 FIFO控制寄存器109 back3、FIFO控制寄存器字段名 位 意 义 初值00Tx FIFO的触发电平设置。 00:空; Tx FIFO Tri Leve 7:6 01:减少到4字节;10:减少到8字节; 11:减少到12字节 lRx FIFO Tri Level reserved5:43Rx FIFO的触发电平设置。 00:增加到4字节; 01:增加到8字节; 10:增加到12字节;11 :增加到16字节 保 留000Tx FIFO ResetRx FIFO Reset FIFO Enable21 0Tx FIFO清除控制。0:正常;1:清零Rx FIFO清除控制。0:正常;1:清零 FIFO应用控制。 0:失能;1:使能00 0110 4、MODEM控制寄存器(UMCON)Register Address R/W DescriptionUMCON0 0x5000000C R/W UART0 MODEM控制寄存器backReset Value0x00UMCON1 0x5000400C R/W UART1 MODEM控制寄存器0x00-reserved 0x5000800C 字段名reserved-保留位7:5 4 3:1 0意 义保留(为0)初值000 0 000 0111Auto Flow Control (AFC)reserved Request to Send自动流控制。 0:一般方式;1:自动流控制保留(为0) nRTS引脚信号控制。 0:nRTS 为 高电平;1:nRTS为低电平,有效。 5、发送/接收状态寄存器(UTRSTAT)Register Address R/WRbackDescriptionUART0状态寄存器Reset Value0x06UTRSTAT0 0xUTRSTAT1 0xUTRSTAT2 0xRRUART1状态寄存器UART2状态寄存器0x060x06字段名 Transmitter empty Transmit buffer empty Receive buffer data ready位2 1 0意 义 发送器空状态位。 0:发送器未空 1:发送器、发送缓冲器均空。发送缓冲器空状态位。 0:未空;1:空 在非FIFO模式,激发中断或DMA请求 接收缓冲器状态位。 0:空;1:有数据 在非FIFO模式,激发中断或DMA请求初值1 1 0112 6、Rx错误状态寄存器(UERSTAT)Register Address R/W DescriptionUERSTAT0 0x R UART0Rx错误状态寄存器backReset Value0x0UERSTAT1 0xUERSTAT2 0xR UART1Rx错误状态寄存器R UART2Rx错误状态寄存器0x00x0字段名 Break Detect Frame Error Parity Error Overrun Error位3 2 1 0意 义暂停信号状态。 0:无暂停信号; 1:收到暂停信号(产生中断请求) 帧错误状态位。 0:无帧错误; 1:有帧错误(产生中断请求) 奇偶校验错误状态。0:无奇偶校验错 1:有奇偶校验错误(产生中断请求) 溢出错误状态位。 0:无溢出错误; 1:溢出错误(产生中断请求)初值0 0 0 0113 7、FIFO状态寄存器(UFSTAT)Register Address R/WRbackDescriptionUART0 FIFO状态寄存器Reset Value0x00UFSTAT0 0xUFSTAT1 0xUFSTAT2 0xRRUART1 FIFO状态寄存器UART2 FIFO状态寄存器0x000x00字段名 Reserved Tx FIFO Full位15:10 保留(为0) 9意 义发送FIFO满状态。 0:未满; 1:满初值0 0Rx FIFO Full8接收FIFO状态位。 0:未满; 1:满 发送FIFO中数据的数目,字节单位。接收FIFO中数据的数目,字节单位。0 00114Tx FIFO Count 7:4Rx FIFO Count 3:0 8、MODEM状态寄存器(UMSTAT)Register Address R/W DescriptionbackReset Value0x0 0x0UMSTAT0 0x5000001C R UART0 Modem状态寄存器 UMSTAT1 0x5000401C R UART1 Modem状态寄存器Reserved 0x5000801C R 字段名 位Reserved Delta CTS Reserved Clear to Send3 2 1 0 保留(为0)意保留 义-初值0 0 0 0115nCTS引脚信号自上次读后变化状态。 0:未改变;1:已改变。 保留(为0) nCTS引脚信号状态。 0:nCTS为高 电平;1:nCTS引脚为低电平,有效。 9、发送缓冲寄存器(UTxH)RegisterUTxH0back Reset Value-AddressR/WDescription0x(L) W UART0 发送缓冲寄存器 0x(B) (byte) 0x(L) W UART1发送缓冲寄存器 0x(B) (byte) 0x(L) W UART2发送缓冲寄存器 0x(B) (byte)UTxH1UTxH2-字段名 Tx DATAn位7:0意 义UARTn发送的一个字节数据初值-116 10、接收缓冲寄存器(URxH)RegisterURxH0backAddressR/WDescriptionReset Value0x000x(L) R UART0 接收缓冲寄存器 0x(B) (byte) 0x(L) R UART1接收缓冲寄存器 0x(B) (byte) 0x(L) R UART2接收缓冲寄存器 0x(B) (byte)URxH1URxH20x000x00字段名 Rx DATAn位7:0意 义UARTn接收的一个字节数据。初值-117 11、波特率除数寄存器(UBRDIV)Register Address R/W DescriptionUBRDIV0 0x R/W UART0 波特率除数寄存器 -backReset Value-UBRDIV1 0x R/W UART1 波特率除数寄存器UBRDIV2 0x R/W UART2 波特率除数寄存器字段名 UBRDIV位意 义初值-15:0 波特率除数值。UBRDIVn &0118 四、UART应用举例例1:编写一程序,使用S3C2410X的UART2进行串行数 据收发,要求用脉冲请求中断的方式、使用收/发FIFO,8 个数据位、1个停止位、不校验,波特率为125kb/s。设Pclk 为50MHz。(提示:主程序对UART2初始化、引脚配Z、 中断初始化等,并进行一次发送;中断服务程序进行数据 收发,标签清除中断请求标志和中断服务标志) 解: (1)计算波特率除数: 由公式: UBRDIVn=(int)(CLK/( f B*16))- 1 这里: Pclk=50MHz, f B = 125kb/s 计算得: UBRDIVn=25 -1=24 (2)UART2控制寄存器: 线路控制寄存器: ULCON2=0 0 000 0 11=0x03 含义:非红外、不校验、 1个停止位、 8个数据位1、线路控制寄存器(ULCON)RegisterULCON0 ULCON1 ULCON2Address0xxxR/WR/W R/W R/WDescriptionUART0线路控制寄存器 UART1线路控制寄存器 UART2线路控制寄存器Reset Value0x00 0x00 0x00字段名Infra-Red-Mode Parity Mode Num of stop bit Word Length位7 6 5:3 2 1:0意义初值0 0 000 0 00保 留 红外模式设Z位。0:正常模式;1:红外 奇偶校验类型。 100:奇校验; 110:强制为1; 停止位个数。 0xx:不校验; 101:偶校验; 111:强制为0 0:1个;1:2个 00:5位; 11:8位数据位数目。 01:6位; 10:7位;119 控制寄存器: UCON2=0b 0 0 0 0 0 0 0 01 01=0x05 含义:选Pclk、发/收中断脉冲请求、关闭接收超时中断、 允许接收错误中断、不回送、不发送暂停信号、发/收用中 断方式。 FIFO控制寄存器:UFCON2=0b 10 01 0 0 0 1=0x91 含义:发/收FIFO选8字节触发、保留位为0、不复位发/收 FIFO、使能FIFO。 (3)引脚配Z 需要设ZTxD2、RxD2,它们对应GPH6、GPH7,在 GPH配Z寄存器GPHCON中的位Z为:2、控制寄存器(UCON)位 9 8 7 6 5 4 意 义 10 字段名 初值 0 0 0 0 0 0 0 Clock Selection Tx Int Type Rx Int Type 波特率时钟源选择。0:PCLK;1:UCLK 发送中断请求类型。0 :脉冲型;1:电平 接收中断请求类型。0 :脉冲型;1:电平 接收超时中断控制。0:禁止;1:允许 接收错误中断控制。0:禁止;1:允许 Rx Time OV Ena Rx ERR Int Ena Loopback Mode 回送模式控制。0 = 正常操作;1 = 回送模式 发送暂停信号控制。 0 = 正常传输;1 = 发送暂停信号(全为0) Send Break Signal Transmit Mode Receive Mode 3:2 1:0 发送/接收模式控制。00:禁止发送/接收; 01:中断或查询模式;10:UART0、2用 DMA0、DMA3;11:UART1用DMA1 00 003、FIFO控制寄存器意 义字段名位初值00Tx FIFO Tri Leve7:6Tx FIFO的触发电平设置。 00:空; 01:减少到4字节;10:减少到8字节; 11:减少到12字节lRx FIFO Tri Level reserved5:4 3 2 1 0Rx FIFO的触发电平设置。 00:增加到4字节; 01:增加到8字节; 10:增加到12字节;11 :增加到16字节 保 留 Tx FIFO清除控制。0:正常;1:清零 FIFO应用控制。 0:失能;1:使能00 0 0 0 0Tx FIFO Reset FIFO EnableRx FIFO ResetRx FIFO清除控制。0:正常;1:清零0b 1 0 1 0 ** ** ** ** ** ** 方法:GPHCON= GPHCON&~(0xF&&12)|(0xA&&12)端口H引脚配Z寄存器位号21,20 19,18 17,16 15,14 13,12 11,10 9,8 7,6 5,4 3,2 1,0位名位值:00输入 输入 输入 输入 输入 输入 输入 输入 输入 输入 输入01输出 输出 输出 输出 输出 输出 输出 输出 输出 输出 输出10CLKOUT1 CLKOUT0 UCLK RXD2 TXD2 RXD1 TXD1 RXD0 TXD0 nRTS0 nCTS011Reserved Reserved Reserved nCTS1 nRTS1 Reserved Reserved Reserved Reserved Reserved ReservedGPH10 GPH9 GPH8 GPH7 GPH6 GPH5 GPH4 GPH3 GPH2 GPH1 GPH0UCLK为USB的120 2、INTMOD---中断模式寄存器(4)中断寄存器设Z 中断模式寄存器:INTMOD&=~(1&&15) INT_UART2位于第15位,将UART2设Z为IRQ中断 中断屏蔽寄存器:INTMSK&=~(1&&15) 中断优先级寄存器PRIORITY: 不设Z,使用固定优先级。 子中断屏蔽寄存器:INTSUBMSK&=~(7&&6) INT_ERR2、INT_TXD2、INT_RXD2位于子中断屏蔽寄存 器中的8、7、6位。 (5)在中断服务程序中对寄存器的操作 清除中断标志寄存器相应位: SRCPND&=~(1&&15) 清除中断服务寄存器相应位: INTPND&=~(1&&15)31 30 29 28 27 26 25 24INT_ADC INT_RTC INT_SPI1 INT_IIC位号中断源位号23 22 21 20 19 18 17 16中断源位号15 14 13 12 11 10 9 8中断源位号7 6 5 4 3 2 1 0中断源保留INT_UART1 INT_SPI0 INT_SDIINT_UART2 INT_TIM4 INT_TIM3 INT_TIM2 INT_TIM1 INT_TIM0 INT_WDTnBATT_FLT EINT8_23 EINT4_7 EINT3 EINT2 EINT1 EINT0INT_UART0 INT_USBH INT_USBD 保留INT_DMA3 INT_DMA2 INT_DMA1 INT_DMA0 INT_LCDINT_TICK该寄存器是设Z各中断源是FIQ中断还是IRQ中断 各位: 1:对应中断源设为FIQ中断模式 0:对应中断源设为IRQ中断模式3、INTMSK---中断屏蔽寄存器位号23 22 21 20 19 18 17 16位号31 30 29 28 27 26 25 24中断源中断源位号15 14 13 12 11 10 9 8中断源位号7 6 5 4 3 2 1 0中断源保留INT_ADC INT_RTC INT_SPI1 INT_IICINT_UART1 INT_SPI0 INT_SDIINT_UART2 INT_TIM4 INT_TIM3 INT_TIM2 INT_TIM1 INT_TIM0 INT_WDTnBATT_FLT EINT8_23 EINT4_7 EINT3 EINT2 EINT1 EINT0INT_UART0 INT_USBH INT_USBD 保留INT_DMA3 INT_DMA2 INT_DMA1 INT_DMA0 INT_LCDINT_TICK各位:1:屏蔽对应中断源 0:开放对应中断源8、INTSUBMSK---子中断源屏蔽寄存器中断源 保 留 位号 7 6 5 4 中断源 位号 3 2 1 0 中断源位号 10 9 831:11INT_TXD2INT_RXD1 INT_ERR0 INT_TXD0INT_ADC INT_TCINT_RXD2 INT_ERR1 INT_TXD1INT_ERR2INT_RXD0对有多个中断源的外设,对具体的中断源进行屏蔽 各位: 1:屏蔽对应的子中断源 0:开放对应的子中断源121 例2:S3C2410的UART 的应用?1.电路接口和I/O口设置S3C2410的串行应用接口占用H端口中的 PH7,PH6,PH5,PH4,PH3,PH2多功能I/O口,因此,在编 写串口数据收发程序之前,首先需要对PH口的工作模 式进行设置。端口H引脚配Z寄存器位值:00 01输入 输入 输入 输入 输入 输入 输入 输入 输入 输入 输入 输出 输出 输出 输出 输出 输出 输出 输出 输出 输出 输出位号位 名GPH9 GPH8 GPH7 GPH6 GPH5 GPH4 GPH3 GPH2 GPH1 GPH0101121,20 19,18 17,16 15,14 13,12 11,10 9,8 7,6 5,4 3,2 1,0GPH10CLKOUT1 CLKOUT0 UCLK RXD2 TXD2 TXD1 TXD0 nRTS0 nCTS0 RXD1 RXD0Reserved Reserved Reserved nCTS1 nRTS1Reserved Reserved Reserved Reserved Reserved ReservedUCLK为USB的rGPHCON= 0x00000FAAA|(rPCONH&0xFFFF0000); rPUPC = 0x000007 //设置内部上拉/* inital values for GPIOs */ #define vGPACON #define vGPBCON #define vGPBUP 0x007fffff 0xx000007ff 0xaaaaaaaa 0x0000ffff 0xaaaaaaaa 0x0000ffff 0xaaaaaaaa 0x0000ffff 0x000051aa//0x000055aa 0x000000ef//0x000000ff 0xfd95ffba //0xff95ffba 0x0000efff //0x0000ffff 0x00aaaa 0x0016faaa 0x000007ff 0xxx端口初始化(smdk2410.h):#define vGPCCON #define vGPCUP #define vGPDCON #define vGPDUP #define vGPECON #define vGPEUP #define vGPFCON #define vGPFUP #define vGPGCON #define vGPGUP //#define vGPHCON #define vGPHCON #define vGPHUP #define vEXTINT0 #define vEXTINT1 #define vEXTINT2122 S3C2410的UART 的应用Ⅱ/* initial values for serial */ #define vULCON 0x3 #define vUCON 0x245 #define vUFCON 0x0 #define vUMCON 0x0 /* UART, no parity, one stop bit, 8 bits */BACK? 2.UART初始化smdk2410.h ? 所有寄存器映射的存储器地址在s3c2410.h中//串口地址定义reg2410.h 0x UART_CTL_BASE UART_CTL_BASE + 0x4000 UART_CTL_BASE + 0x8000 __REG(UART_CTL_BASE + (x)*0x4000 + (Nb))#define UART_CTL_BASE #define UART0_CTL_BASE #define UART1_CTL_BASE #define UART2_CTL_BASE #define bUART(x, Nb) /* Offset */ #define oULCON #define oUCON #define oUFCON #define oUMCON #define oUTRSTAT #define oUERSTAT #define oUFSTAT #define oUMSTAT #define oUTXHL #define oUTXHB #define oURXHL #define oURXHB #define oUBRDIV0x00 0x04 0x08 0x0C 0x10 0x14 0x18 0x1C 0x20 0x23 0x24 0x27 0x28/* R/W, UART line control register */ /* R/W, UART control register */ /* R/W, UART FIFO control register */ /* R/W, UART modem control register */ /* R , UART Tx/Rx status register */ /* R , UART Rx error status register */ /* R , UART FIFO status register */ /* R , UART Modem status register */ /* /* W, UART transmit(little-end) buffer */ W, UART transmit(big-end) buffer *//* R , UART receive(little-end) buffer */ /* R , UART receive(big-end) buffer */ /* R/W, Baud rate divisor register */对UART口的可配置参数进行初始化,使其能够按照所要求的 通讯方式进行通讯。? 3.字符发送程序Uart_SendByten() ? 4.字符接收程序Uart_Getchn() ? 5.应用程序int main(void) { // char c1[1]; ARMTargetInit(); // do target (uHAL based ARM system) initialisation // while(1) { Uart_SendByten(0,0xa);//换行 Uart_SendByten(0,0xd);//回车 err=Uart_Getchn(c1,0,0); //从串口采集数据 Uart_SendByten(0,c1[0]); //显示采集的数据 } }void Uart_SendByten(int Uartnum, U8 data)//ok eric rong { // if(Uartnum==0) { while(!(rUTRSTAT0 & 0x4)); //Wait until THR is empty. hudelay(10); WrUTXH0(data); } else { while(!(rUTRSTAT1 & 0x4)); //Wait until THR is empty. hudelay(10); WrUTXH1(data); } } #define WrUTXH0(ch) (*(volatile unsigned char *)0x)=(unsigned char)(ch) #define WrUTXH1(ch) (*(volatile unsigned char *)0x)=(unsigned char)(ch)char Uart_Getchn(char* Revdata, int Uartnum, int timeout) { if(Uartnum==0){ while(!(rUTRSTAT0 & 0x1)); //Receive data read *Revdata=RdURXH0(); return TRUE; } else{ while(!(rUTRSTAT1 & 0x1));//Receive data read *Revdata=RdURXH1(); return TRUE; } } #define RdURXH0() (*(volatile unsigned char *)0x) #define RdURXH1() (*(volatile unsigned char *)0x)123 5.5 I2C(IIC)串行总线接口主要内容1、概述 2、结构与工作原理 3、寄存器 4、应用方法 5、IIC应用举例124 一、概 述IIC总线的产生和应用:IIC总线是PHILIPS公司开发的 一种串行总线。IIC总线应用越来越广泛,现在在很多器件 上都配Z有IIC总线接口,如EEPROM、时钟芯片等。 IIC总线信号:为两线,双向传输的数据线SDA、双向传 输的时钟线SCL。是信号线最少的串行总线。 S3C2410的IIC总线的特点: (1)有一个IIC总线接口。 (2) IIC总线的速度:可以标准速度传输(100kb/s), 也可以高速传输(高达400kb/s)。 (3)可以查询方式和中断方式工作。 (4)可以主设备身份传输,也可以从设备身份传输,因 此共有4种操作模式: 主机发送模式、主机接收模式 从机发送模式、从机接收模式125 二、S3C2410的IIC结构与工作原理1、IIC总线系统组成 IIC总线是多主系统:系统可以有多个IIC节点设备组成, 并且可以是多主系统,任何一个设备都可以为主IIC;但是任 一时刻只能有一个主IIC设备,IIC具有总线仲裁功能,保证 系统正确运行。 主IIC设备发出时钟信号、地址信号和控制信号,选择通 信的从IIC设备和控制收发。 系统要求:(1)各个节点设备必须具有IIC接口功能; (2)各个节点设备必须共地;(3)两个信号线必须接上拉 电阻。如下图所示。 +Vcc上拉电阻 SCLSDAIIC 1主IICIIC 2……IIC n126 I2C总线接口均为开漏或开集电极输出,因此需要为总线 增加上拉电阻Rp。 总线速率越高,总线上拉电阻VD D Rp Rp就越小,100Kbit/s总线速率,通 常使用5.1K欧姆的上拉电阻 I2C BUSSDA SC LSDA SC LSCL出SDA出器件1器件2SCL入SDA入――电气连接127 2、IIC总线的工作原理(1)IIC总线对数据线上信号的定义:1)总线空闲状态:时钟信号线和数据信号线均为高电平。 2)起始信号:即启动一次传输,时钟信号线是高电平时, 数据信号线由高变低。 3)停止信号:即结束一次传输,时钟信号线是高电平时, 数据信号线由低变高。数据位信号 数据位SDASCL起始信号结束信号128 4)数据位信号:时钟信号线是低电平时,可以改变数据 信号线电位;时钟信号线是高电平时,应保持数据信号线上 电位不变。 5)应答信号:占1位,数据接收者接收1字节数据后,应 向数据发出者发送一应答信号。低电平为应答,继续发送; 高电平为非应答,结束发送。 6)控制位信号:占1位,主IIC设备发出的读写控制信号, 高为读、低为写(对主IIC设备而言)。控制位在寻址字节中。数据位信号 数据位SDA SCL起始信号结束信号129 7)地址信号:为从机地址,占7位,如下表所示,称 之为“寻址字节”,各字段含义如下:D7 DA3 D6 DA2 D5 DA1 D4 DA0 D3 A2 D2 A1 D1 A0 D0 R/ W器件地址(DA3---DA0):是IIC总线接口器件固有的地 址编码,由器件生产厂家给定。如IIC总线EEPROM AT24C××的器件地址为1010等。 引脚地址(A2、A1、A0):由IIC总线接口器件的地址 引脚A2、A1、A0的高低来确定,接电源者为1,接地者为0。 读写控制位(R/ W):1表示主设备读,0表示主设备写。 7位地址和读写控制位组成1个字节。130 (2)IIC总线数据传输格式1)一般格式: S 从IIC地址(7位) R/W A 传输数据 …… A P2)主控制器写操作格式:S 从IIC地址 W A 数据1 A 数据2 A …… 数据n A/A P红色起始信号S、地址信号、控制信号W、各个数据、结 束信号P,均为主IIC设备发送、从IIC设备接收;黑色的应答 信号A/A为从IIC设备发送、主IIC设备接收。 3)主控制器读操作格式:S 从IIC地址 R A 数据1 A 数据2 A …… 数据n A P红色的信号均为主IIC设备发送、从IIC设备接收;黑色的 信号均为从IIC设备发送、主IIC设备接收。131 4)主控制器读/写操作格式: 由于在一次传输过程中要改变数据的传输方向,因此 起始信号和寻址字节都要重复一次,而中间可以不要结束 信号。 在一次传输中,可以有多次启动信号。S 从IIC地址 R A 数据1 A 数据2 A… A rS 从地址 W A数据1 A 数据2 A数据3 A……数据m A/A P132 (3)读写操作在发送器模式下,数据被发送之后,IIC 总线接口会等 待直到 IICDS(IIC 数据移位寄存 器)被程序写入新的数 据。在新的数据被写入之前,SCL 线都被拉低。新的数据 写入之后, SCL 线被释放。 S3C2410X 可以利用中断来判断当前数据字节是否已经 完全送出。在 CPU 接收到中断请求后,在中断处理中再次 将下一个新的数据写入 IICDS,如此循环。 在接收模式下,数据被接收到后,IIC 总线接口将等待 直到 IICDS 寄存器被程序读出。 在数据被读出之前,SCL 线保持低电平。新的数据从读出之后,SCL 线才释放。 S3C2410X 也利用中断来判别是否接收到了新的数据。 CPU 收到中断请求之后,处理程序将从 IICDS 读取数据。133 (4)总线仲裁 总线仲裁: 若两个主设备在SDA线上同时为低电平(发送 起始信号),则需进行总线仲裁。 每个主设备应该测试地址位。小地址优先。 原因:数据总是从最高位MSB开始发送;低 电平强于高电平。134 3、S3C2410的IIC结构S3C2410的IIC主要有5部分构成:数据收发寄存器、数 据移位寄存器、地址寄存器、时钟发生器、控制逻辑等部 分。如下图所示。 状态寄存器SCL Pclk比 较 器分 频 器地址寄存器 移位寄存器 数据收发寄存器片内数据总线135IIC控制逻辑 控制寄存器SDA 三、IIC专用寄存器S3C2410有4个专用寄存器RegisterIICCONAddress0xR/WR/W R/WDescriptionIIC总线控制寄存器 IIC总线地址寄存器Reset Value 0x0XIICSTATIICADD IICDS0x0xR/W IIC总线控制/状态寄存器0x00xXX 0xXX0x5400000C R/W IIC数据发送/接收寄存器136 1、IIC控制寄存器(IICCON)字段名 位 7 意 义 初值 00Acknowledge generationTx clock source selection Tx/Rx Interrupt Interrupt Pending flag65 4 3:0应答使能。0:禁止应答;1:自动应答 应答电平:Tx时为高;Rx时为低 发送时钟分频选择。 0:IICCLK = f PCLK /16; 1:IICCLK = f PCLK /512收发中断控制位。0:禁止;1:允许 中断标志位。读:0无,1示有中断请求 写:写0清除中断标志,写1不操作00 0 0Transmit clock value发送时钟预分频值。 Tx clock = IICCLK/(IICCON[3:0]+1)说明:(1)应答使能问题:一般情况下为使能;在对EEPROM读最后1个数据 前可以禁止应答,便于产生结束信号。 (2)中断事件:1)完成收发;2)地址匹配;3)总线仲裁失败。 (3)中断控制位问题:设为0时,中断标志位不能正确操作,故总设为1。 (4)时钟预分频问题:当分频位选择为0时,预分频值必须大于1。137 2、IIC控制状态寄存器(IICSTAT)字段名 Mode selection 意 义 7:6 工作模式选择。 00:从收; 01:从发 10:主收; 11:主发 5 忙状态/启、停控制。读:1示忙;0示闲 写:0产生结束信号,1产生启动信号 4 数据发送控制。0:禁止;1:允许发送 3 仲裁状态标志。0:仲裁成功; 1:仲裁失败(因为在连续I/O中) 2 从地址匹配状态。 0:与IICADD不匹配 1:匹配。在收到START/STOP时清0 地址状态标志。 0:收到的为非0地址 1 1:收到0地址。在收到START/STOP时清0 最后收到位状态。0:最后位为0,收到 0 ACK; 1:最后位为1,未收到ACK。 位 初值 00 0 0 0 0 0 0Busy / START STOP condition Serial output Arbitration Status flag Address-as-slave status flag Address zero status flag Last-received bit status flagIICSTAT控制字: 启动主设备发送:0xF0;结束主设备发送:0xD0 启动主设备接收:0xB0;结束主设备接收:0x90138 3、IIC地址寄存器(IICADD)RegisterIICADDAddressR/WDescription地址寄存器Reset Value0xXX0x R/W字段名Slave address Not mapped位7:1 0 7位从地址。 不用意 义初值0xXX -说明: (1)对从设备,该地址有意义,对主设备其值无意义。 (2)只有在不发送数据时(数据传输控制位IICSTAT[4] =0)才能对其写;任何时间都可以读。139 4、IIC数据发送/接收寄存器(IICDS)RegisterIICDSAddressR/WDescriptionReset Value0xXX0x5400000C R/W 数据发送/接收移位寄存器字段名 Data shift位7:0意 义8位移位接收或移位发送的数据初值0xXX说明: (1)在本设备接收时,对其作读操作得到对方发来的数 据。任何时间都可以读。 (2)在本设备发送时,对其写操作,将数据发向对方。 (3)欲发送数据,必须使数据传输控制位IICSTAT[4] =1 才能对其写。140 四、IIC操作方法1、 主 模 式 发 送 流 程开 始 设ZIICCON 从地址写入IICDS 写0xF0到IICSTAT主机发送数据 ACK、产生中断 Y 要停止? N 发送数据写入IICDS 清除中断标志 写0xD0到IICSTAT 清除中断标志写START 启动传输写STOP 结束传输等待停止位起作用结 束141 开 始2、 主 模 式 接 收 流 程设ZIICCON 从地址写入IICDS 写0xB0到IICSTAT主机发送寻址字节 ACK、产生中断 要停止? N 从IICDS中读数据 清除中断标志 Y写START 启动传输写STOP 结束传输写0x90到IICSTAT 清除中断标志等待停止位起作用结 束142主机发送数据 五、IIC接口应用举例? I2C总线接口 ――常用I2C器件随着I2C总线技术的推出。很多电子厂商都推出了 许多带I2C总线接口的器件,大量应用于视频、音像及 通讯等领域。 常用的通用I2C接口的种类、型号及寻址字节。种类 128B E2PROM 256B E2PROM 512B E2PROM 实时时钟/日历时钟 键盘及LED驱动器 带32×4位RAM 低复用率的通用LCD 驱动器 通用低复用率LCD 驱动器 型号 CAT24WC01 CAT24WC02 CAT24WC04 PCF8563 ZLG7290 PCF8562 PCF8576 器件地址及寻址字节 (1) 1 0 1 0 A2 A1 A0 R/ W (2) 1 0 1 0 A2 A1 A0 R/W (3) 1 0 1 0 A2 A1 A0 R/W 读:0A3H 写:0A2H 从地址:070H 只写:0 1 1 1 0 0 SA0 R/ W (SA0为该器件的引脚) 只写:0 1 1 1 0 0 SA0 R/ W (SA0为该器件的引脚)内嵌I2C总线、E2PROM、RESET、 WDT功能的电源监控器件CAT1161/21 0 1 0 a10 a9 a8 R/ W143 ? I2C总线接口 ――CAT24WC02CAT24WC02是一款I2C总线接口的E2PROM器件, ?各引脚的功能说明如下: 其引脚如下图所示。器件地址选择?SCL 串行时钟。遵循 ISO/IEC7816同步协议;漏极 开路,需接上拉电阻。 ?SDA 串行数据线;漏极开路, 需接上拉电阻。 ?A0、A1、A2 器件/页面寻址 地址输入端。 ?WP 读写保护 ?Vcc/GND 一般输入+5V的工 作电压。CAT24WC02的I2C总线地址的高4位固定为1010,低三位 由A2、A1和A0决定。当A2A1A0引脚悬空时,默认值为000。144 U18 AT24LC041 2 3 4GNDA0 A1 A2 GN DVD D WP SCL SDA8 7 6 5VD D3 3IICSCL IICSDAGN D145 例:试编写一程序,用S3C2410的IIC接口对串行 EEPROM(IIC接口)进行读/写操作,写入一组数据,然 后读出并显示出来,检验是否正确。 分析:S3C2410的IIC为主设备,EEPROM的IIC为从 设备,进行的操作为主设备写、和主设备读。 解: (1)设ZIIC控制寄存器 1)收发传输:IICCON=0b 1 0 1 0 1111 = 0xAF 含义:应答使能、时钟分频为 IICCLK = f PCLK /16 、 中断使能、清除中断标志、预分频值取15。 2)接收结束传输:IICCON=0b 0 0 1 0 1111 = 0x2F 含义:禁止应答(非应答)、时钟分频为 IICCLK = f PCLK /16 、中断使能、清除中断标志、预分频 值取15。146 (2)IIC控制状态寄存器1)主模式发送、启动传输 IICSTAT=0b 11 1 1 0 0 0 0 = 0xF0 含义:主设备发送、启动传输、输出使能、低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 含义:主设备接收、结束传输、输出使能、低4位为状态147 (3)地址寄存器设Z1)S3C2410地址寄存器: 作为从设备地址为0x10(作为主设备无意义) 2)EEPROM芯片地址: 作为从设备地址为 0xA0所寻从设备地址+操作控制命令(R/W): 1)主设备发送: 0xA0 2)主设备接收: 0xA1(4)寻址字节值148 #include &string.h& #include &2410addr.h& #include &2410lib.h& #include &def.h“ U32 _iicS149 端口E引脚配Z寄存器位号位 名 00 01 输入 输入 输入 输入 输入 输入 输入 输入位值 10 IICSDA IICSCL 11 保留 保留 保留 保留 保留 保留 保留 保留位号 15,14 13,12 11,10 9,8 7,6 5,4 3,2 1,0位名 00 GPE7 GPE6 GPE5 GPE4 GPE3 GPE2 GPE1 GPE0 输入 输入 输入 输入 输入 输入 输入 输入 01位值 10 11 保留 保留 保留 保留 保留 保留 保留 保留31,30 GPE15 29,28 GPE14 27,26 GPE13 25,24 GPE12 23,22 GPE11 21,20 GPE10 19,18 17,16 GPE9 GPE8输出 输出 输出 输出 输出 输出 输出 输出输出 输出 输出 输出 输出 输出 输出 输出SDDAT0 SDCMD SDCLK IISSDO IISSDI CDCLK IISSCLK IISLRCKSPICLK0 SPISI0 SPISO0 SDDAT3 SDDAT2 SDDAT11、IIC控制寄存器(IICCON)void Test_Iic(void) { unsigned int i,j; static U8 data[256];字段名Acknowledge generation Tx clock source selection Tx/Rx Interrupt Interrupt Pending flag Transmit clock value位7 6 5 4 3:0意义初值00 0 0 0 0应答使能。0:禁止应答;1:自动应答 应答电平:Tx时为高;Rx时为低 发送时钟分频选择。 0:IICCLK = f PCLK /16; 1:IICCLK = f PCLK /512 收发中断控制位。0:禁止;1:允许 中断标志位。读:0无,1示有中断请求 写:写0清除中断标志,写1不操作 发送时钟预分频值。 Tx clock = IICCLK/(IICCON[3:0]+1)2、IIC控制状态寄存器(IICSTAT)字段名 Mode selection 位 7:6 5 4 3 2 1 0 意 义 01:从发 初值 00 0 0 0 0 0 0 工作模式选择。 00:从收; 10:主收; 11:主发Busy / ST ART STOP condition Serial output Arbitration Status flag Address-as-slave status flag Address zero status flag Last-received status flag bit忙状态/启、停控制。读:1示忙;0示闲 写:0产生结束信号,1产生启动信号 数据发送控制。0:禁止;1:允许发送 仲裁状态标志。0:仲裁成功; 1:仲裁失败(因为在连续I/O中) 从地址匹配状态。 0:与IICADD不匹配 1:匹配。在收到ST ART/STOP时清0 地址状态标志。 0:收到的为非0地址 1:收到0地址。在收到ST ART/STOP时清0 最后收到位状态。0:最后位为0,收到 ACK; 1:最后位为1,未收到 ACK。Uart_Printf(&[ IIC Test using AT24C02 ]\n&);rGPEUP |= 0xc000; rGPECON |= 0xa00000; //Pull-up disable //GPE15:IICSDA //GPE14:IICSCLrIICCON = (1&&7) | (0&&6) | (1&&5) | (0xf); rIICADD = 0x10; //2410 slave address = [7:1] rIICSTAT = 0x10; //IIC bus data output //enable(Rx/Tx)150 Uart_Printf(&Write test data into AT24C02(0-255)\n&);存储器地址 for(i=0;i&256;i++) _Wr24C02(0xa0,(U8)i,i);for(i=0;i&256;i++) data[i] = 0;所写数据Uart_Printf(&\nRead test data from AT24C02\n&);存储数据for(i=0;i&256;i++) _Rd24C02(0xa0,(U8)i,&(data[i]));存储器地址151 for(i=0;i&16;i++) { for(j=0;j&16;j++) Uart_Printf(&%2x &,data[i*16+j]); Uart_Printf(&\n&); } }152 void _Wr24C02(U8 slvAddr,U8 addr,U8 data) { rIICDS = slvA //发送从设备地址 rIICSTAT = 0xf0; //启动发送 while(rIICCON & 0x10==0); rIICDS = rIICCON = 0 while(rIICCON & 0x10==0); rIICDS = rIICCON = 0 //查询Tx中断状态 //发送存储器地址 //清除中断状态 //查询中断状态 //发送数据 //清除中断状态.153 while(rIICCON & 0x10==0); while(rIICSTAT&1); rIICSTAT = 0xd0; Delay(1); }//查询中断状态 //等待应答ACK //Stop(Write) //等待结束生效154 BACK I2C写AT24C04程序 /********************************* * name:Wr24C040 * func: Write data to 24C04O * para: slvAddr---chip slave address 中断服务程序: * addr: data address * data: data value Void IICInt(void) **********************************/ void Wr24C040(U32 slvAddr,U32 addr,U8 data) { { iGetACK= 0; rI_ISPC=BIT_IIC; /*Send control byte*/ rIICDS = slvAddr; //0xa0 iGETACK = 1; rIICSTAT=0xf0; //Master Tx,Start while(iGetACK==0); //wait ACK } iGetACK=0; /* send address */ 第一行:必须在中断处理 rIICDS = addr; 程序中对其服务标志位清 rIICCON = 0 0。方法为对某位写1便清 //resumes IIC operation. 除为0。 while(iGetACK==O); //Wait ACK iGetACK=0; /* Send data */ rIICDS= rIICCON = 0 //resumes IIC operation. while(iGetACK==0); //wait ACK iGetACK=0; /*end send*/ rIICSTAT = 0xd0; rIICCON=0xaf; 155 DelayMs(5); } 5.6 中断主要内容概述 结构与工作原理 寄存器 应用举例156 一、概 述S3C2410X中断控制器有55个中断源,对外提 供24个外中断输入引脚,内部所有设备都有中断请 求信号,例如DMA控制器、UART、IIC等等。(55 Interrupt sources(One Watch dog timer, 5 timers, 9 UARTs, 24external interrupts, 4 DMA, 2 RTC, 2 ADC, 1 IIC,2 SPI, 1 SDI, 2 USB, 1 LCD, and 1 Battery Fault)S3C2410X的ARM920T内核有两个中断,IRQ 中断和快速中断FIQ。 中断仲裁:当中断控制器接收到多个中断请求 时,其内的优先级仲裁器裁决后向CPU发出优先级 最高的中断请求信号或快速中断请求信号。157 二、S3C2410X中断系统结构1、中断系统结构主要由中断源和控制寄存器两大部分构成,其 寄存器主要有4种:模式、屏蔽、优先级、挂起 (标志)寄存器等。中断源(有子寄存器)子中断源 挂起寄存器子中断源 屏蔽寄存器 中断模式中断源(无子寄存器)FIQ 中 断 挂 起中断屏蔽 优先级仲裁中断源挂起158IRQ 2、中断优先级仲裁器及工作原理中断系 统有6个分 仲裁器和1 个总仲裁器, 每一个仲裁 器可以处理 6路中断。159 三、中断控制器专用寄存器有8个专用寄存器RegisterSRCPND INTMOD INTMSKAddressR/WDescription中断源挂起寄存器 中断模式寄存器 中断屏蔽寄存器 中断优先级寄存器Reset Value0xxxFFFFFFFF 0x7F0x4A000000 R/W 0x4A000004 R/W 0x4A000008 R/WPRIORITY 0x4A00000C R/WINTPND0x4A000010 R/WR中断服务寄存器中断偏移寄存器 子源挂起寄存器0x0xxx7FFINTOFFSET 0x4A000014SUBSRCPND 0x4A000018 R/WINTSUBMSK 0x4A00001C R/W 中断子源屏蔽寄存器10、外中断控制寄存器RegisterEXT INT 0 EXT INT 1 EXT INT 2Address0xxxR/WR/W R/W R/WDescription外中断触发方式寄存器0 外中断触发方式寄存器1 外中断控制寄存器2ResetValue0x0 0x0 0x0主要设Z各个外中断源的触发方式、滤波160 1、SRCPND---中断源挂起(标志)寄存器 BACK位号3130 29 27中断源INT_ADCINT_RTC INT_SPI1 INT_IIC位号22 21中断源INT_SPI0 INT_SDI位号14 13 12 11中断源 位号INT_TIM4 INT_TIM3 INT_TIM2 INT_TIM1中断源nBATT_FLT保留 EINT8_23 EINT4_7 EINT323 INT_UART1 15 INT_UART2 76 5 4 328 INT_UART0 20 INT_DMA3 19 INT_DMA22625 24INT_USBHINT_USBD 保留18 INT_DMA117 INT_DMA0 16INT_LCD109 8INT_TIM0INT_WDT INT_TICK21 0EINT2EINT1 EINT0该寄存器也就是中断标志}

我要回帖

更多关于 微信视频保存在哪里 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信