06S3C2410系统接口操作原理及实验_第1页
06S3C2410系统接口操作原理及实验_第2页
06S3C2410系统接口操作原理及实验_第3页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

1、第6章S3C2410 系统接口操作原理及实验在第 5 章接口电路的根底上, 本章讲解该系统的各接口原理, 并辅以实验代码加以说明。 通 过本章,读者能掌握 S3C2410 处理器的常用接口开发。本章主要内容: 1 I/O 接口实验2串口通信实验3中断实验4键盘控制实验5实时时钟实验6看门狗实验7串行通信实验 8 A/D 转换实验9 ) Nand Flash 读写实验I/O 接口实验实验目的 1掌握 S3C2410X 芯片的 I/O 控制存放器的配置。 2通过实验掌握 ARM 芯片使用 I/O 端口控制 LED 显示。 3了解 ARM 芯片中复用 I/O 接口的使用方法。实验设备 1硬件: Em

2、best ARM 教学实验系统、 ULINK USB-JTAG 仿真器套件、 PC 机。 2软件: MDK 集成开发环境, Windows 98/2000/NT/XP 。实验内容编写程序,控制实验平台的发光二极管 LED1 、LED2 、 LED3 、 LED4 ,使它们有规律地 点亮和熄灭,具体顺序如下:LED1亮f LED2亮f LED3亮 f LED4亮f LED1灭f LED2灭fLED3灭f LED4灭f全亮 f全灭,如此反复。实验原理S3C2410X 芯片上共有 71 个多功能的输入 / 输出引脚,它们分为 7 组 I/O 端口:11个 23 位的输出端口端口 A。22个 11 位

3、的输入 /输出端口端口 B、H。34个 16 位的输入 /输出端口端口 C、 D、 E、 G。在运行程序之前必须对每个用到的引脚功能进行设置,如果某些引脚的复用功能没有使 用, 可以先将该引脚设置为 I/O 端口1 S3C2410X I/O 口常用的控制存放器 1 端口控制存放器 GPACON-GPHCON 。在 S3C2410X 中,大多数的引脚都复用,所以必须对每个引脚进行配置。端口控制存放器 PnCON 定义了每个引脚的功能。如果 GPF0-GPF7 和 GPG0-GPG7 在掉电模式使用了弱上拉信号,这些端口必须在中断模式 配置。 2 端口数据存放器 GPADAT-GPHDAT 。如果

4、端口被配置成了输出端口,可以向 PnDAT 的相应位写数据。如果端口被配置成了输入 端口,可以从 PnDAT 的相应位读出数据。 3 端口上拉存放器 GPBUP-GPHUP 。端口上拉存放器控制了每个端口组的上拉电阻的允许/ 禁止。如果某一位为 0,相应的上拉电 阻被允许;如果是 1,相应的上拉电阻被禁止。如果端口的上拉电阻被允许,无论在哪种状态 INPUT 、OUTPUT 、 DATAn 、EINTn 等 下,上拉电阻都要起作用。24 个外部中断有各种各样的中断请求信号, EXTINTN 存放器可以配置信号的类型为低电 平 触发、高电平触发、下降沿触发、上升沿触发、两沿触发中断请求。本实验用

5、到了 GPF端口,表6-1表6-4列出了端口 F控制存放器中GPFCON、GPFDAT、GPFUP 的含义存放器地址读/写描述复位值GPFCONOxR/W端口F配置存放器0x0GPFDATOxR/W端口F数据存放器未定义GPFUP0xR/W端口F上拉控制存放器0x0Reserved0x5600005C保留未定义表6-2 GPFCON存放器GPFCON位描述GPF715:1400 = In put 01 = Output10 = EINT7 11 = ReservedGPF613:1200 = In put 01 = Output10 = EINT6 11 = Reserved续表GPFCON位

6、描述GPF511:1000 = In put 01 = Output10 = EINT5 11 = ReservedGPF49:800 = In put 01 = Output10 = EINT4 11 = ReservedGPF37:600 = In put 01 = Output10 = EINT3 11 = ReservedGPF25:400 = In put 01 = Output10 = EINT2 11 = ReservedGPF13:200 = In put 01 = Output10 = EINT1 11 = ReservedGPF01:000 = In put 01 = Ou

7、tput10 = EINT0 11 = Reserved表6-3 GPFDAT存放器GPFDAT位描述GPF7:07:0当端口被配置成输入时,外部数据可以从对应的端口中 读出;当端口被配置成输出时,写入该存放器的数据会被 送到对应的引脚上;当端口被配置成功能脚时,此存放器 未定义表6-4 GPFUP存放器GPFUP位描述GPF7:07:00 :使能对应引脚的上拉功能1:对应引脚的上拉功能无效如果端口 F被配置为输入端口,可以从引脚读出相应外部输入源输入的数据。如果端口 被配置为输出端口,向存放器写的数据可以被送往相应的引脚。 如果端口被配置为功能引脚, 从该引置位 GPFUP15:0的某一位允

8、许相应 引脚的上拉功能,否那么禁止上拉功能电路设计如图6-1所示。脚读出的数据不确定。女口图6-1所示, LED_1LED_4分别与GFP7GPF4相连,通过GFP7GPF4引脚的上下电平来控制发光二极管的亮与灭。当这几个引 脚输出高电平的时候发光二极管熄灭,反之,发光二极管点亮。实验操作步骤1 准备实验环境图6-1 LED接线原理图(1 )把光盘CodeChapter6文件夹的内容复制到主机(如果已经复制,跳过该操作)。(2)使用EduKit-川目标板附带的串口线连接目标板上UARTO和PC机串口 COMx,并连接好ULINK2仿真器套件。2 串口接收设置在PC机上运行 Windows自带的

9、超级终端串口通信程序(波特率为115200Bd、 1位停止位、 无校验位、无硬件流控制),或者使用其他串口通信程序。3 翻开实验例程(1)运行MDK开发环境,进入实验例程目录 MDKled_test子目录下的例程, 编译链接工程。2 根据 ReadMe 目录下的及文件配置集成开发环境,在 Option for Target 对话框的 Linker页中选择分散加载文件,单击 MDK 的 Debug 菜单,选择 Start/Stop Debug Session 项或单击, 下 载工程生成的 .axf 文件到目标板的 RAM 中调试运行 3在 Option for Target 对话框的 Linke

10、r 页中选择分散加载文件,单击 MDK 的 Flash 菜单, 选择 Download 烧写调试代码到目标系统的 Nor Flash 中,重启目标板,目标板自动运行烧写 到 Nor Flash 中的代码。4在工程管理窗口中双击 就会翻开该文件,分别在约第 34行 fori = 0;i<100000; i+; 和 58 行 fori = 0;i<100000;i+ ; 设置断点后,单击 Debug 菜单 Go 运行程序。 5 程序停到第一个断点处,观察四个灯是否都被点亮注意观察渐变过程,按Step Out跳出这个子函数,继续执行。 6 程序运行到 led_off ,按 step in

11、to ,停到第二个断点处,观察四个灯是否都熄灭 注意观 察渐变过程。按 Step Out ,继续执行。 7 去掉断点,重新下载,执行程序。4观察实验结果 观察发光二极管的亮灭情况,可以观察到的现象与前面实验内容中的相符,说明实验成 功地 实现了对 I/O 的操作。boot success.I/O Diode Led Test Example end.实验参考程序*/#include ""/* name: led_xxxfunc: the led operations para: none ret: nonevoid led_on(void) int i,nOut; nOut

12、=0xF0; rGPFDAT=nOut & 0x70; for(i=0;i<100000;i+); rGPFDAT=nOut & 0x30; for(i=0;i<100000;i+); rGPFDAT=nOut & 0x10; for(i=0;i<100000;i+); rGPFDAT=nOut & 0x00; for(i=0;i<100000;i+);void led_off(void)int i,nOut; nOut=0;rGPFDAT = 0; for(i=0;i<100000;i+); rGPFDAT = nOut | 0x

13、80; for(i=0;i<100000;i+); rGPFDAT |= nOut | 0x40; for(i=0;i<100000;i+); rGPFDAT |= nOut | 0x20; for(i=0;i<100000;i+); rGPFDAT |= nOut | 0x10; for(i=0;i<100000;i+);void led_on_off(void)int i;rGPFDAT=0; for(i=0;i<100000;i+); rGPFDAT=0xF0; for(i=0;i<100000;i+);串口通信实验实验目的1了解 S3C2410X 处

14、理器的 UART 相关控制存放器的使用。2熟悉 ARM 处理器系统硬件电路中 UART 接口的设计方法。3掌握 ARM 处理器串行通信的软件编程方法。实验设备1) 硬件:Embest EduKit-川实验平台、ULINK2仿真器套件、PC机2) 软件: MDK 集成开发环境、Win dows 98/2000/NT/XP 。实验内容1) 编写S3C2410X处理器的串口通信程序。2) 监视串行口 UART0动作。3) 将从UART0接收到的字符串回送显示。实验原理1 . S3C2410X串行通信(UART )单元S3C2410X UART单元提供3个独立的异步串行通信接口,皆可工作于中断和DMA

15、模式。使 用系统时钟最高波特率达 s,如果使用外部设备提供的时钟,可以到达更高的速率。每一个UART单元包含一个16字节的FIFO,用于数据的接收和发送。S3C44B0X UART支持可编程波特率,红外发送/接收,一个或两个停止位,5bit/6bit/7bit/或8bit数据宽度和奇偶校验。2. 波特率的产生波特率由一个专用UART波特率分频存放器(UBRDIVn )控制,计算公式如下:的UBRDIVn 二(int)(ULK/(bps16 X ) ) - 1或者UBRDIVn 二(int)(PLK/(bps16) ) - 1 X其中:时钟选用还是PLK由UART控制存放器UCONn10的状态决

16、定。ULK如果UCONn10 = 0,用PLK作为波特率发生,否那么选用ULK做波特率发生。UBRDIVn的值必须1(216- 1)之间。例如: ULK 或者 PLK 等于 40MHz ,当波特率为 115 200 时,UBRDI Vn 二(int) (40 000 000/(115 20016) ) -1 X= (int) -1= 21 - 1 = 203 UART 通信操作下面简要介绍 UART 操作,关于数据发送,数据接收,中断产生,波特率产生,轮流检测模 式,红外模式和自动流控制的详细介绍,请参照相关教材和数据手册。发送数据帧是可编程的。一个数据帧包含一个起始位,58 个数据位,一个可

17、选的奇偶校验位和 1 2 位停止位,停止位通过行控制存放器 ULCONn 配置。与发送类似,接收数据帧也是可编程的。接收数据帧由一个起始位,5 8 个数据位,一个可选的奇偶校验和 1 2 位行控制存放器 ULCONn 里的停止位组成。 接收器还可以检测溢出错、奇 偶校验错、帧错误和传输中断,每一个错误均可以设置一个错误标志。( 1 )溢出错误 ( Overrun Error )是指已接收到的数据在读取之前被新接收的数据覆盖。(2) 奇偶校验错是指接收器检测到的校验和与设置的不符。(3) 帧错误指没有接收到有效的停止位。(4) 传输中断表示接收数据 RxDn 保持逻辑 0 超过一帧的传输时间。在

18、 FIFO 模式下,如果 RxFIFO 非空,而在 3 个字的传输时间内没有接收到数据,那么产生超时。4 UART 控制存放器1 UART 行控制存放器 ULCONn该存放器的第6位决定是否使用红外模式,位53决定校验方式,位2决定停止位长度, 位1 和位 0 决定每帧的数据位数。 2 UART 控制存放器 UCONn该存放器决定 UART 的各种模式,其含义如表 6-5 所示。UCO Nn位描述初始值Clock Selectio n100 : PLK做比特率发生1 : ULK做比特率发生0Tx In terrupt Type90 : Tx中断脉冲触发1 : Tx中断电平触发0Rx In te

19、rrupt Type80 : Rx中断脉冲触发1: Rx中断电平触发0Rx Time Out En able70 :接收超时中断不允许1:接收超时中断允许0Rx Error Status In terruptEn able60 :不产生接收错误中断1:产生接收错误中断0Loopback Mode50 :正常模式1:发送直接传给接收方式Loopback0Reserved40:正常模式发送1:发送间断信号0Tran smit Mode3:2发送模式选择00 :不允许发送01 :中断或查询模式10:DMA0 请求UART0DMA3 请求UART211: DMA1 请求UART100Receive M

20、ode1:0接收模式选择00 :不允许接收01 :中断或查询模式10:DMA0 请求UART0DMA3 请求UART211 : DMA1 请求UART1003) UART MODEM 控制存放器 UMCONn(n 二 0 或 1)表6-6UMCONn位描述初始值Reserved7:5保存,必须全为000Auto Flow Con trol (AFC)40 :不允许使用AFC模式1 :允许使用AFC模式0Reserved3保存,必须全为000Request to Send00:不激活nRTS1 :激活n RTS0(4 )发送存放器UTXH和接收存放器URXH这两个存放器存放着发送和接收的数据,当

21、然只有一个字节8位数据。需要注意的是,在发生溢出错误的时候,接收的数据必须被读出来,否那么会引发下次溢出错误。(5)波特率分频存放器UBRDIV在例程目录下的commoninelude'文件中有关于 UART单兀各存放器的定义。nBaud+ -1 ); nBaud) -1 ); break;ease UART2:rULCON2 = 0x3; rUC0N2 = 0x245;rUBRDIV2=( (int)(nMainClk/16./nBaud) -1 );rUFC0N20x0;UART0 Communi eatio n Test ExamplePlease in put words, t

22、he n press En ter: />如果输入字符就会马上显示在超级终端上图6-3 Embest ARM教学系统超级终端配置(假设输入为abedefg ),输入回车符后打印一整串字符:The words that you in put are: abedefg实验参考程序本实验的参考程序如下:I* in elude files */ #i nclude "" I* function declare *I void uartO_test()char cln put256;U8 ucln No=0;char c;uart_i nit(0,115200,0);uart_

23、pri ntf("n UART0 commu nication test!n");uart_pri ntf( Please in put words that you want to tran smit:n"); uart_pri ntf(""); g_n KeyPress = 1;电f IHtOPRI21 MM -CDQkQCDSIend.按下SB1203键,超级终端主窗口中继续显示:Exter nal In terrupt Test Example(default here)Select number to change the exter

24、nal interrupt type: Press the Buttons (SB1202/SB1203) to test.Press SPACE(PC) to exit.EINT11 in terrupt occurred. end.其他选择类似。实验参考程序1 .中断初始化程序void int_in it(void)rSRCPND = rSRCPND; .n");uart_pri ntf(" Press SPACE(PC) to exit.n"); int_ini t();g_n KeyPress = 3; n");2 .中断效劳程序void _ir

25、q in t0_i nt(void)uart_pri ntf( " EINT0 in terrupt occurred.n");ClearPe ndi ng( BIT_EINT0 );if( g_n KeyPress )g_n KeyPress-=1;void _irq in t11 _in t(void) if(rEINTPEND=(1<<11) uart_pri ntf(" EINT11 in terrupt occurred.n"); rEINTPEND=(1<<11);else if(rEINTPEND=(1<<

26、;19)uart_printf(" EINT19 interrupt occurred.n"); rEINTPEND=(1<<19);elseuart_printf(" rEINTPEND=0x%xn",rEINTPEND); rEINTPEND=(1<<19)|(1<<11);ClearPending(BIT_EINT8_23);键盘控制实验实验目的1通过实验掌握键盘控制与设计方法。2熟练编写 ARM 核处理器 S3C2410X 中断处理程序。实验设备 PC 机1硬件:Embest EduKit-川实验平台、 Emb

27、est ARM标准/增强型仿真器套件、2软件: MDK 集成开发环境、 Windows 98/2000/NT/XP 。实验内容1 使用实验板上 5x4 用户键盘,编写程序接收键盘中断。2通过 IIC 总线读入键值,并将读到的键值发送到串口。实验原理1 常规键盘电路设计原理用户设计行列键盘接口,一般常采用三种方法读取键值。一种是中断式,另两种是扫描法和反转法中断式在键盘按下时产生一个外部中断通知CPU,并由中断处理程序通过不同的地址读取数据线上的状态,判断哪个按键被按下。本实验采用中断方式实现用户键盘接口。扫描法对键盘上的某一行发送低电平,其他为高电平,然后读取列值,假设列值中有一位是低, 说明

28、该行与低电平对应列的键被按下;否那么扫描下一行。反转法先将所有行扫描线输出低电平,读列值,假设列值有一位是低,说明有键按下;接着所 有列扫描线输出低电平,再读行值。根据读到的值组合就可以查表得到键码。2 .使用ZLG7290的键盘电路设计原理1) ZLG7290的特点 IIC串行接口,提供键盘中断信号,方便与处理器接口 可驱动8位共阴数码管或64只独立LED和64个按键。 可控扫描位数,可控任一数码管闪烁。 提供数据译码和循环、移位、段寻址等控制。 8个功能键,可检测任一键的连击次数。 无须外接元件即直接驱动 LED,可扩展驱动电流和驱动电压。2 ZLG7290的引脚说明。采用24引脚封装,引

29、脚图如图6-7所示。3ZLG7290的存放器说明。 系统存放器SystemReg :地址为00H,复位值为B。系统存放器保存ZLG7290的 系统状态,并可对系统运行状态进行配置。 KeyAvi 位:置1时表示有效的按键动作普通键的单击、连击和功能键状态变化, /INT引脚信号有效变为低电平;清 0时表示无按键动作,/INT引脚信号无效0引变为'高阻 态。有效的按键动作消失后或读 Key后KeyAvi位自动清0。 键值存放器Key:地址为01H,复位值为00H。 Key表示被按键的键值。当Key=0时,表示没有键被按。 连击次数计数器RepeatCnt :地址为02H,复位值为 00H

30、。 RepeatCnt=0时,表示 单击 键。RepeatCnt大于0时,表示键的连击次数。用于区别出单击键或连击键,判断连击 次数,检测被按时间。 功能键存放器FunctionKey :地址为 03H,复位值为 0FFH。FunctionKey对应位的值二0时,表示对应功能键被压按对应 S64S57 。 命令缓冲区CmdBuf0CmdBufl :地址07H08H,复位值00H。用于传输指 令。 闪烁控制存放器Flash On Off :地址为0CH,复位值为0111B/0111B。高4位表示 闪烁 时亮的时间,低4位表示闪烁时灭的时间,改变其值同时也改变了闪烁频率,也能改变亮和灭的 占空比。

31、FlashOnOff的1个单位相当于150250ms 亮和灭的时间范围为:116 ,0000B相当1个时间单位,所有像素的闪烁频率和占空比相同。 扫描位数存放器 ScanNum :地址为 0DH ,复位值为 7 。用于控制最大的扫描显示位数 有效范围为07,对应的显示位数为18,减少扫描位数可提高每位显示扫描时间 的占空比, 以提高 LED 亮度。不扫描显示的显示缓存存放器那么保持不变。 如 ScanNum=3 时, 只显示 DpRam0 DpRam3 的内容 显示缓存存放器 DpRam0 DpRam7 :地址为 10H 17H ,复位值为 00H 00H 。缓存 中位置 1 表示该像素亮,

32、DpRam7 DpRam0 的显示内容对应 Dig7 Dig0 引脚。 4ZLG7290 的通信接口。ZLG7290 的 IIC 接口传输速率可达 32kbit/s ,容易与处理器接口通信,并提供键盘中断信 号, 提高主处理器时间效率。 ZLG7290 的从地址 Slave Address 为 70H01110000B 。我们从 它的键值 存放器 01H 中读取按键值 ucChar 用于保存读到的键值:iic_read0x70, 0x1,&ucChar 。有效的按键动作都会令系统存放器 SystemReg 的 KeyAvi 位置 1, /INT 引脚信号有效 变 为低电平。用户的键盘处

33、理程序可由 /INT 引脚低电平中断触发,以提高程序效率;也可以 不 采样 /INT 引脚信号节省系统的 I/O 数,而轮询系统存放器的 KeyAvi 位。要注意读键值存放 器 会令 KeyAvi 位清 0,并会令 /INT 引脚信号无效。 为确保某个有效的按键动作所有参数寄 存器的 同步性,建议利用 IIC 通信的自动增址功能连续读 RepeatCnt 、 FunctionKey 和 Key 寄 存器,但用户无须太担忧存放器的同步性问题,因为键参数存放器变化速度较缓慢典型的为250ms , 最快的为 9ms 。ZLG7290内可通过IIC总线访问的存放器地址范围为00H17H,任一存放器都可

34、按字节直接读写,也可以通过命令接口间接读写或按位读写,请参考ZLG7290 芯片手册。ZLG7290 支持自动增址功能 访问一存放器后存放器子地址自动加一 和地址翻转功能 访问最后一存放器后存放器子地址翻转为00H 。ZLG7290 的控制和状态查询全部都是通过读/写寄存器实现的, 用户只需像读写 24C02 内的单元一样即可实现对 ZLG7290 的控制, 关于 IIC 总 线访 问的细节请参考 IIC 总线标准。实验设计1 .键盘硬件电路设计1键盘连接电路图6-8 5 X 4键盘连接电路5X 4键盘连接电路如图6-8所示。2 键盘控制电路键盘控制电路使用芯片ZLG7290控制,如图6-9所

35、示。对应图6-9中的14引脚KEY_INT捕 捉由键盘按下产生的中断触发信号。3 工作过程键盘动作由芯片ZLG7290检测,当键盘按下时,芯片检测到后在 INT引脚产生中断触发 电 平通知处理器,处理器通过 IIC总线读取芯片ZLG7290键值存放器01H 中保存的键 值具体 的读取方法可以参考IIC串行通信实验。实验操作步骤1.准备实验环境1把光盘CodeChapter6文件夹内容复制到主机如果已经复制,跳过该操作。2使用EduKit-川目标板附带的串口线连接目标UARTO和PC机串口 COMx,并连板上接好ULINK2仿真器套图6-9 5 X 4键盘控制电路自带的超级终端串口通信程序(波1

36、15 200Bd、1位停止位、在PC机上运行Windows特率为2 .串口接收设置无校验位、无硬件流控制);或者使用其他串口通信程序。3. 翻开实验例程(1)运行MDK开发环境,进入实验例程目录 keyboard_test子目录下的 例程,编译链接工程。(2 )根据common目录下的及本工程目录下的文件配置集成开发环境,在Option forTarget对话框的Linker页中选择分散加载文件,单击MDK的Debug菜单,选择Start/Stop Debug Session项或单击,下载工程生成的.axf文件到目标板的 RAM中调试运行。(3)在Option for Target对话框的Li

37、nker页中选择分散加载文件,单击MDK的Flash菜单,选择 Download 烧写调试代码到目标系统的 Nor Flash 中,重启目标板,目标板自动运行烧写到Nor Flash 中的代码4观察实验结果1)在 PC 机上观察超级终端程序主窗口,可以看到如下界面:Boot success ?Keyboard Test Example2)用户可以按下实验系统的5 4 键盘,在超级终端上观察结果。实验参考程序1键盘控制初始化其代码如下。void keyboard_test(void)UINT8T ucChar;UINT8T szBuf40;uart_printf("n Keyboard

38、 Test Examplen"); uart_printf(" Press any key to exit.n"); keyboard_init(); g_nKeyPress=0xFE;while(1)f_nKeyPress = 0; while(f_nKeyPress=0)if(uart_getkey()hrK I Vk (nil 'I ML ih. kRU RSIX I IrlcX I【Z2r Clotk IhvHjcrrlllzV1'H ii-IX卄R t( 1 ONRcxl Key isletI'l l . r I 心Li .血Ml

39、imi Gcrx'rijrkHKTCALMrmv. m r M1 IIM I tX【Ml1円1N4I48R72:_CD HAT I 士C47C46 BA1I1 RY Ti st VDI>RTC"ISP GND丄t %"T IMm;while(!uart_getkey() while(1) if(rBCDYEAR=0x99) g_nYear = 0x1999; else g_nYear = 0x2000 + rBCDYEAR; g_nMon th = rBCDMON; g_nWeekday = rBCDDAY; g_n Date = rBCDDATE; g_nH

40、 our = rBCDHOUR; g_n Min = rBCDMIN; g_nSec = rBCDSEC; if(g_nSec!=nTmp) n );实验操作步骤1 .准备实验环境(1 )把光盘CodeChapter6文件夹内容复制到主机(如果已经复制,跳过该操作);(2)使用EduKit-川目标板附带的串口线连接目标板上UART0和PC机串口 COMx,并连接好ULINK2仿真器套件。2 .串口接收设置115 200Bd、1位停止位、在PC机上运行 Windows自带的超级终端串口通信程序(波特率为无校验位、无硬件流控制);或者使用其他串口通信程序。超级终端配置如图6-12所示。3 .运行实

41、验例程(1 )运行MDK开发环境,进入实验例程目录rtc_test子目录下的例程,编译链接工程。(2)根据common目录下的及本工程目录下的文 件配置集成开发环境,在Option for Target对话框的 图6-12 Embest ARM教学系统超级终端配置Linker页中选择分散加载文件,单击MDK的Debug菜单,选择 Start/Stop Debug Session 项或单击,下载工程生成的.axf文件到目标板的RAM中调试运行。(3)在Option for Target对话框的Linker页中选择分散加载文件,单击MDK的Flash菜单,选择Download烧写调试代码到目标系统

42、的Nor Flash中,重启目标板,目标板自动运行烧写到Nor Flash中的代码。4 .观察实验结果1 )在PC机上观察超级终端程序主窗口,可以看到如下界面:boot success.RTC Test ExampleRTC Check (Y/N) ?Y2)用户可以选择是否对 RTC进行检查,检查正确的话,那么继续执行程序,检查不正确时也会提示是否重检查。RTC Alarm Test for S3C24103f:26:06RTC Alarm In terrupt .3f:26:080. RTC Time Setti ng 1. Only RTC DisplayPlease Selet :3)

43、用户可以选择是否重新进行时钟设置,当输入不正确时也会提示是否重新设置。please Selet : 0Please input 0x and Two digit then press Enter, such as 0x99.Year (0x?): 0x07Month (0x?): 0x06Date (0x?): 0x031:Sunday 2:Monday 3:Thesday 4:Wednesday 5:Thursday 6:Friday7:SaturdayDay of week : 1Hour (0x?): 0x21Minute(0x?): 0x30Second(0x?): 0x014) 最终

44、超级终端输出信息如下。Display current date and time: Press any key to exit.21:30:01 Sunday, 06/03/2007Exit display.Press any key to exit.实验参考程序1 RTC 报警控制程序其程序如下。int rtc_alarm_test(void)n");uart_printf(" Year (0x?): "); g_nYear = uart_getintnum();uart_printf(" Month (0x?): "); g_nMonth

45、= uart_getintnum();uart_printf(" Date (0x?): ");g_nDate = uart_getintnum();uart_printf("n 1:Sunday 2:Monday 3:Thesday 4:Wednesday 5:Thursday 6:Friday uart_printf(" Day7:Saturdof week : ");ayn");g_nWeekday = uart_getintnum(); uart_printf("n Hour (0x?): ");g_nHo

46、ur = uart_getintnum(); uart_printf(" Minute(0x?): ");g_nMin = uart_getintnum(); uart_printf(" Second(0x?): ");g_nSec = uart_getintnum();0x1;rRTCCONrRTCCON&(0xf)WTCON|I5 :WTCON4:38JWICON 2| wrc () N(0r-t64 10 6 i200 400RAM中调试运行delayLoopCo unt100 10 6 8000064 10 6 i8 000 000xf文

47、件到目标板的64 i3在Option for Target对话框的Linker页中选择分散加载文件,单击 MDK的Flash菜单, 选择Download烧写调试代码到目标系统的Nor Flash中,重启目标板,目标板自动运行烧写到Nor Flash中的代码4 .观察实验结果在PC机的超级终端的主窗口中观察实验的结果如下:boot success ?WatchDog Timer Test Example10 sec on ds:1s 2s 3s 4s 5s 6s 7s 8s 9s 10s.end.实验参考程序void watchdog_test(void) _IIC 串行通信实验实验目的( 1)

48、通过实验掌握 IIC 串行数据通信协议的使用。( 2)掌握 EEPROM 器件的读写访问方法。( 3)通过实验掌握 S3C2410X 处理器的 IIC 控制器的使用。实验设备(1) 硬件: Embest EduKit-川实验平台、ULINK2仿真器、PC。(2) 软件: RealView IDE 、 Windows 98/2000/NT/XP 。实验内容( 1)编写程序对实验板上 EEPROM 器件 AT24C04 进行读写访问。( 2)写入 EEPROM 某一地址,再从该地址读出,输出到超级终端。( 3)把读出内容和写入内容进行比较,检测S3C2410X 处理器通过 IIC 接口,是否可以正

49、常读写 EEPROM 器件 AT24C04 。实验原理1 IIC 接口及 EEPROMIIC 总线为同步串行数据传输总线, 其标准总线传输速率为 100kbit/s ,增强总线可达400kbit/s 总线驱动能力为 400pF 。 S3C2410X RISC 微处理器能支持多主 IIC 总线串行接口。图6-14 所示为IIC 总线的内部结构框图LMM图6-14 IIC总线内部结构框图IIC总线可构成多主系统和主从系统。在多主系统结构中,系统通过硬件或软件仲裁获得总线控制使用权。应用系统中IIC总线多采用主从结构,即总线上只有一个主控节点,总线 上的其 他设备都作为从设备。IIC总线上的设备寻址

50、由器件地址接线决定,并且通过访问地 址最低位来控制读写方向。目前,通用存储器芯片多为EEPROM,其常用的协议主要有两线串行连接协议 IIC和三 线串行连接协议。带IIC总线接口的EEPROM有许多型号,其中 AT24CXX系列使用十 分普遍。产品包括 AT2401/02/04/08/16等,其容量单位:bit 分别为128x8/256x8/512x8/1024x8/2048x8 适用于25V的低电压的操作。具有低功耗和高可靠性等优 点。AT24系列存储器芯片采用 CMOS工艺制造,内置有高压泵,可在单电压供电条件下工作。其标 准封装为8脚DIP封装形式,如图6-15 所示。图 6-15 AT

51、24系列 EEPROM 的 DIP8封装示意图各引脚的功能说明如下。1 SCL :串行时钟。遵循 ISO/IEC7816 同步协议;漏极开路,需接上拉电阻。在该引脚的上升沿,系统将数据输入到每个 EEPROM 器件,在下降沿输出2 SDA :串行数据线。漏极开路,需接上拉电阻双向串行数据线,漏极开路,可与其他开路器件“线或。3 AO、A1、A2 :器件/页面寻址地址输入端。在 AT24CO1/O2 中,引脚被硬连接;其他 AT24CXX 均可接寻址地址线。4WP :读写保护。接低电平时可对整片空间进行读写;高电平时不能读写受保护区。5) Vcc/GND :一般输入 +5V的工作电压。2 IIC

52、 总线的读写控制逻辑1开始条件 START_C :在开始条件下,当 SCL 为高电平时,SDA 由高转为低。2停止条件 STOP_C :在停止条件下,当 SCL 为高电平时,SDA 由低转为高。'亠口3确认信号 ACK :在接收方应答下,每收到一个字节后便将SDA 电平拉低。4数据传送 Read/Write :IIC 总线启动或应答后, SCL 高电平期间数据串行传送;低电 平期间为数据准备,并允许 SDA 线上数据电平变换。总线以字节 8bit 为单位传送 数据,且高 有效位 MSB 在前。 IIC 数据传送时序如图 6-16 所示。图 6-16 IIC 总线信号的时序3 EEPRO

53、M 读写操作 1 AT24C04 结构与应用简述。AT24C04 由输入缓冲器和 EEPROM 阵列组成。 由于 EEPROM 的半导体工艺特性写入时 间为510ms,如果从外部直接写入EEPROM,每写一个字节都要等候510ms,成批数据写入时那么 要等候更长的时间。 具有 SRAM 输入缓冲器的 EEPROM 器件,其写入操作变成对 SRAM 缓冲器 的装载,装载完后启动一个自动写入逻辑将缓冲器中的全部数据一次写入 EEPROM 阵 列中。对 缓冲器的输入称为页写, 缓冲器的容量称为页写字节数。 AT24C04 的页写字节数 为 16 ,占用最低 4 位地址。写入不超过页写字节数时, 对 EEPROM 器件的写入操作与对 SRAM 的写入操作相同; 假设超过页写字节数时,应等候5 10ms 后再启动一次写操作。由于 EEPROM 器件缓冲区容量较小只占据最低 4 位,且不具备溢出进位检测功能, 所以, 从非零地址写入 16 个字节数或从零地址写入超过 16 个字节数会形成地址翻卷,导 致写入出错。 2 设备地址 DADDR 。AT24C04XX 的器件地址是 1010 。 3 AT24CXX 的数据操作格式。Embest A

温馨提示

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

评论

0/150

提交评论