ARM7S3C44b0看门狗作延时函数
- 格式:docx
- 大小:9.56 KB
- 文档页数:2
ARM S3C44B0X 之看门狗定时器
当受到故障,如噪声或系统错误的干扰时,s3c44b0x 看门狗定时器能够
产生复位信号,使CPU 复位,它也可以用作一个普通的16 位定时器使用,计
算完产生中断信号。
如果用作复位信号,可以产生一个长达128MCLK 时钟周
期的复位信号。
S3C44B0X 内部的watchdog 结构如下图所示:500) this.width=500;” border=0> 在S3C44B0X 内部由3 个16 位的特殊功能寄存器控制看门狗定时器:WTCON Reg: 功能控制器WTDATA Reg:数据存储器WTCNT Reg: 计数存储器16 位的WTCON 寄存器在S3C44B0X 复位时的地址为:0x01D3_0000,可读/写,初始值为0x8021,各位的功能如下:【15~8】设置预分频器值,初始值0x80
【7~6】保留位,但是在正常模式下必须设置为00,初始值00
【5】0=关闭看门狗,1=打开看门狗,初始值1
【4~3】设置除法因子,00=1/16, 01=1/32, 10=1/64, 11=1/128,初始值00 【2】中断使能位,0=打开中断,1=关闭中断,初始值0,用于定时器功能,初始值0
【1】保留位,但是在正常模式下必须设置位0,初始值0
【0】复位使能位,0=关闭复位功能,1=打开复位功能,用于复位功能,初
始值1
16 位的WTDATA 寄存器复位地址为:0x01D3_0004,可读/写,初始值为
0x8000
16 位的WTCNT 寄存器复位地址为:0x01D3_0008,可读/写,初始值为。
ARM开发板S3C44B0使用指南
一、关于开发板
S3C44B0是一款功能齐全的高性能ARM处理器开发板,采用ARM9内核,主频为80MHz,具备有256KBROM、32KBIRAM、128KBSRAM,其中
32KBIRAM处理器内部维持缓存,128KBSRAM处理器外部维持缓存。
它可以
简化开发过程,使用户易于掌握和熟悉该处理器的硬件结构,支持快速实
现功能。
二、开发板资源
1、主要开发板资源:
1.1、主处理器:ARM9处理器,主频80MHz。
1.2、存储器:256KBROM,32KBIRAM,128KBSRAM。
1.3、外设接口:UART,SPI,I2C,ADC,PWM,GPIO。
1.4、数字I/O端口:2个数字I/O口。
1.5、系统接口:JTAG系统接口支持调试,主频输入/输出(SIO),
复位输入/输出(RST),电源输入/输出(VIN),使能输入/输出(EN)。
1.6、外设接口:摄像头接口,LCD接口,USB,PS/2,SD卡接口,串
口打印机接口,外部存储器接口,外部中断接口,外部接口
(EINT0/EINT1/I2S)。
2、典型应用:
2.1、工业控制:采用S3C44B0的工业控制系统,可方便地实现复杂
的控制逻辑,实现连续的控制,获得快速、可靠的控制效果;
2.2、消息控制:采用S3C44B0的消息控制系统,可实现信息的广播、多用户聊天等;
2.3、办公设备:采用S3C44B0的设备。
实验八看门狗实验一、实验目的1、了解看门狗的作用;2、掌握看门狗的使用方法。
二、实验内容1、编程实现看门狗功能,观察看门狗作用;2、编程实现看门狗喂狗。
三、实验设备1、硬件:JX44B0实验板;PC机;JTAG仿真器;2、软件:PC机操作系统(WINDOWS 2000);ARM Developer Suite v1.2;Multi-ICE V2.2.5(Build1319);四、基础知识1、用ADS集成开发环境,编写和调试程序的基本过程;2、应用程序的框架结构。
五、实验说明1、看门狗的功能和工作原理嵌入式系统运行时受到外部干扰或者系统错误,程序有时会出现“跑飞”,导致整个系统瘫痪。
为了防止这一现象的发生,在对系统稳定性要求较高的场合往往要加入看门狗电路。
看门狗的作用就是当系统“跑飞”而进入死循环时,恢复系统的运行。
其基本原理为:当本系统程序完整运行一周期的时间为Tp,看门狗的定时周期时Ti,Ti>Tp,在程序运行一周期后,就修改定时器的计数值,(俗称“喂狗”),只要程序正常运行,定时器就不会溢出,若由于干扰等原因使系统不能在Tp时刻修改定时器的计数值,定时器将在Ti时刻溢出,引发系统复位,使系统得以重新运行,从而起到监控作用。
在一个完整的嵌入式机系统或单片机最小系统中通常都有看门狗定时器。
而且一般集成在处理芯片中,看门狗实际上就是一个定时器,只是它在期满后将自动引起系统复位。
2、S3C44B0看门狗的控制S3C44B0的看门狗定时器有两个功能:1)为常规定时器使用,而且可以引发中断;2)为看门狗定时器使用,期满时,它可以产生128个时钟周期的复位信号。
下图是S3C44B0看门狗的示意图。
输入时钟为MCLK(该时钟频率等于系统的主频),它经过两级分频,最后将分频后的时钟作为该定时器的输入时钟,当计数器期满后可以产生中断或者复位信号。
S3C44B0看门狗电路示意图看门狗定时器计数值的计算公式如下:t_watchdog = 1 / (PCLK / (Prescaler value + 1 ) / Division_factor)看门狗的定时周期:T = WTCNT * t_watchdog看门狗定时器相关寄存器如下:控制寄存器(WTCON)通过该寄存器,可以使能/禁止看门狗、选择输入时钟源、使能/关闭中断、使能/关闭输出。
S3C44B0 学习板使用指南重庆勤智科技有限公司三星公司推出的 16/32 位 RISC 处理器 S3C44B0X 为手持设备和一般类型的提供了一种高性能低成本的解决方案。
为了降低整个系统的成本,S3C44B0X 内部集成了丰富的片内外设,包括:8K 的 cache,可选的片内 SRAM,LCD 控制器,带有握手信号的双同道 UART,4 同道 DMA,系统管理器(片选逻辑,FP/EDO/SDRAM 控制器),带有PWM 功能的 5 通道定时器,I/O 端口,RTC 实时时钟,8 通道 10 位 ADC,IIC、IIS 总线接口,同步 SIO 接口以及用于时钟管理的PLL 锁相环。
S3C44B0X 采用了 ARM7TDMI 内核,0.25um 标准宏单元和存储编译器。
TDMI 的每一个字母代表一种功能: T(Thumb),支持 16 为压缩指令集 Thumb D(Debug),支持片上 Debug M(Multiplier),内嵌硬件乘法器 I(ICE):嵌入式 ICE,支持片上断点和调试点S3C44B0X 极低的功耗以及简单,只能的全静态设计使其非常适合对成本和功耗敏感的项目。
同时S3C44B0X 还采用了一种新的总线结构,即 SAMBAII(三星 ARM CPU 嵌入式微处理器总线结构)S3C44B0X 通过集成全面、通用的片内外设,大大减少了系统电路中除处理器外的器件需求,从而最小化系统成本。
下列是其集成的边内外设: 外部存储器控制器(FP/EDO/SDRAM 控制器,片选逻辑)控制器(最大支持 256 色 STN,LCD 具有一个专用的 DMA 通道) LCD个通用 DMA 通道,2 个外设 DMA 通道并有片外请求管脚 2个 UART,带有握手协议(支持 irDA1.0,具有 16 字节 FIFO)1 通道 SIO 2多主总线接口 IIC总线控制器 IIS个 PWM 定制器和 1 通道内部定时器 5 看门狗定时器个通用 I/O 口,作多支持 8 各片外中断源 71 功耗管理:普通,慢速,空闲和停止模式 8 通道 10 位 ADC 具有日立功能的 RTC 带 PLL 的片内时钟发生器使用 S3C44B0X 来构建系统,能够降低真个系统的成本,我们列举以下一些可以采用 S3C44B0X 构建系统应用: GPS 电话 PDA(个人数字助理) 掌上游戏机 指纹识别系统 终端汽车导航系统 mp3 等手持应用一、 S3C44B0 学习板简介S3C44B0 开发板是依据三星公司评估板的基础上开发而来, 其主要硬件包括:内核)(ARM7 Samsung66MHzS3C44B0XFlash 8M 2M SDRAMBase-T以太网接口 10M IDE 接口设备接口 USB1.1 IIC 总线接口实时时钟 RTC LCD 接口,支持 640×480 以下单色或 320×240 以下 STN/DSTN 256 色 2 个 RS232 UART 串行口,支持 Modem 握手信号 标准 14 针 JTAG 接口键盘,1×3 LED 灯 1×4 可扩展总线接口同时,本开发板提供完善的开发包和各种硬件测试程序(含源码),以帮助客户快速掌握 S3C44B0 的各种片内外设以及扩展接口的使用方法: ADS1.2 IDE, ARM 程序开发集成环境 GNU 工具包(包括交叉编译器、链接、汇编工具) uClinux 源码包 U-Boot1.1.1(BOIS)启动控制程序(含源码) 应用程序代码 相关技术文档,手册 键盘控制 LED 试验 实时时钟演示 IIC 测试程序 PWM 测试程序 uCOS-II 实时操作系统加载试验下图是 S3C44B0 的开发板图,我们在这里可以看到使用的板子的各种外围芯片,外设以及各种接口。
课程结业实验报告课程名称:嵌入式系统设计报告题目:基于 ARM的看门狗程序设计专业班级:通信 1601 班学号:学生姓名:指导教师:2021年6月20日看门狗实验1实验目的(1)认识 WATCHDOG 的作用;(2)掌握 WATCHDOG 准时器的使用方法。
2实验内容(1)编程增加看门狗功能,观察看门狗作用;(2)编程实现看门狗喂狗。
3实验基础知识(1)看门狗功能:嵌入式系统运转时受外面搅乱或系统错误,程序有时会出现“跑飞〞,以致整个系统瘫痪。
为防范这一现象的发生,在对系统牢固性要求较高的场合经常要参加看门狗电路〔 WATCHDOG〕。
看门狗的作用是当系统跑飞而进入死循环时,恢复系统的运转。
(2)看门狗工作原理:设本系统程序完满运转一周的时间是Tp,看门狗定是周期是Ti,Ti>Tp, 在程序运转一周后就更正准时器的计数值,只要程序正常运转,准时器就不会溢出,假设由于搅乱等原因是系统不能够在Tp 时辰更正准时器的数值,准时器将在Ti 时辰溢出,惹起系统复位,使系统得以重新运转,从而起到监控的作用在一个完满的嵌入式系统中或单片机小系统中平时都有看门狗准时器,且一般集成在办理器芯片中,看门狗实质上就是一个准时器,知识它在期满后将自动惹起系统复位。
〔3〕看门狗准时器计数值:输入到计数器的时钟周期t_watchdog =1/(PCLK/Prescaler value + 1)/ Division_factor)看门狗的准时周期T = WTCNT * t_watchdog〔4〕看门狗准时器存放器控制存放器〔 WTCON 〕数据存放器〔 WTDAT 〕计数器存放器〔 WTCNT 〕(1)新建一个工程 watchdog,增加相应的文件,并更正 watchdog 的工程设置;创立并参加到工程watchdog 中,局部参照代码以下:/* functions */void rtc_tick_isr(void) __attribute__ ((interrupt("IRQ")));;void rtc_int_isr(void) __attribute__ ((interrupt("IRQ")));;// 设置存放器参数#define WDT_ENABLE(0x01<<5)#define WDT_INT_ENABLE(0x01<<2)#define WDT_RST_ENABLE(0x01<<0)#define WDT_CLK_SEL(0X3<<3)/* 1/128 */#define WDT_PRE_SCALER((PCLK/1000000-1)<<8)/* 49void watchdog_init(){rWTCNT = 8448 * 2;/* 设置看门狗初始值*/rWTCON = WDT_ENABLE | WDT_RST_ENABLE | WDT_CLK_SEL | WDT_PRE_SCALER;/*翻开看门狗*/}void rtc_set_date(st_date* p_date){rRTCCON = 0x01;rBCDYEAR = p_date->year;rBCDMON= p_date->mon;rBCDDAY= p_date->day;rBCDDATE = p_date->week_day;rBCDHOUR = p_date->hour;rBCDMIN= p_date->min;rBCDSEC = p_date->sec;rRTCCON = 0x00;}{ ⋯}void rtc_tick_init( char tick ){Irq_Request(IRQ_TICK, rtc_tick_isr);rRTCCON= 0x0;//No reset[3], Merge BCD counters[2], BCD clock select XTAL[1], RTC Control disable[0]rTICNT= (tick&0x7f)|0x80;/*TICK中断使能,周期(1+tick)/128秒*/Irq_Enable(IRQ_TICK);}void Main(void){int old_index ;st_date m_date;/*配置系*/ChangeClockDivider(1,1);// 1:2:4ChangeMPllValue(0xa1,0x3,0x1);/* 中断初始化*/Isr_Init();/* 初始化端口*/Port_Init();/* 初始化串口*/Uart_Init(0,115200);Uart_Select(0);/* 置告警的及方式,0x41 表示使能RTC 告警,以及使能秒告警*/rtc_alarm_set(&m_date, 0x41);rtc_tick_init(127)watchdog_init();old_index = led_index;PRINTF(" 请在 2 秒内喂狗,否那么系统将在约 2 秒后复位 \n\n");while(1){if(old_index != led_index)/* 每隔一秒更新一次数据*/ {rtc_get_date(&m_date);old_index = led_index;}};}void rtc_tick_isr(void){Irq_Clear(IRQ_TICK);/* 去除 TICK 中断*/*((U8*) 0x10000006) = 0x00;*(unsigned char*)0x10000004 = seg7table[led_index%10];led_index++;/* 喂狗*/rWTCNT = 8448 * 2;}(2) 注意设置运转设备,如图 1.1 所示。
电子技术考试题库(附参考答案)1、 请列举您知道的电阻、电容、电感品牌(最好包括国内、国外品牌) 。
电阻:RALEC旺诠、ROYALOHM、SUPEROHM、UniOhm、TAI大毅、TDK、TOKEN、VISHAY、YAGEO、广东风华 电容:A VX、KEMET、Kyocera、muRata、NEC、nichicon、Panasonic、SAMSUNG、SANYO、TAIYO YUDEN、TDK、 VISHAY、YAGEO、广东风华、电感: AEM、 EPCOS、 ETC、 Gausstek丰晶、 muRata、 sumida村田、 Sunlord顺络、 TAITECH台庆、 TDK、 TOKEN、 TOREX、 VISHAY、WE、YAGEO国巨、柯爱亚、科达嘉、奇力新、千如电子、捷比信、紫泰荆、肇庆英达、广东风华2、 请解释电阻、电容、电感封装的含义:0402、0603、0805。
表示的是尺寸参数。
0402:40*20mil;0603:60*30mil;0805:80*50mil。
3、 请问电阻、电容、电感的封装大小分别与什么参数有关?电阻封装大小与电阻值、额定功率有关;电容封装大小与电容值、额定电压有关;电感封装大小与电感量、额定电流有关。
4、 某CPU要求某些IO端口接上下拉电阻, 电阻范围可选择1~10K欧姆。
以下规格的电阻, 您会选择哪一种: 1K/1%、 4.99K/1%、10K/1%、1K/5%、2.2K/5%、4.7K/5%、8.2K/5%、10K/5%、3.9K/10%、5.6K/10%、4.7K/20%?从理论上来说,1~10K的电阻都可以采用,但如果从价格上考虑,当然是4.7K/20%的最合算。
5、 请简述压敏电阻工作原理。
当压敏电阻上的电压超过一定幅度时,电阻的阻值降低,从而将浪涌能量泄放掉,并将浪涌电压限制在一定的幅度。
6、 请简述PTC热敏电阻作为电源电路保险丝的工作原理。
ARM7S3C44b0看门狗作延时函数
static int delayLoopCount=400;void Delay(int time){int i,adjust=0;
if(time==0)//校准
{time=200;adjust=1;delayLoopCount=400;rWTCON=((MCLK/1000000-
1)//MCLK/1M,Watch-dog disable,1/64,interrupt disable,reset disablerWTDAT=0xffff;//for first updaterWTCNT=0xffff;//resolution=64us@any MCLKrWTCON=((MCLK/1000000-1)}
for(;time>0;time--)
for(i=0;i
if(adjust==1){rWTCON=((MCLK/1000000-1)i=0xffff-rWTCNT;//1count->64us, 200*400 cycle runtime = 64*i usdelayLoopCount=8000000/(i*64);//200*400:64*i=1*x:100 -> x=80000*100/(64*i)}}
初看这个函数时有问题的,花了很长时间才搞懂,很经典的一段程序。
(1)这个函数在使用前必须先运行一下Delay(0),这个是关键。
它主要完
成的是delayLoopCount 变量的计算,即100uS 的校准。
(2)假设MCLK=66M,
rWTCON=((MCLK/1000000-1)时钟除数因子=1/64,即看门狗定时器对1M
的64 分频计数,计数一次是64us,每64usWTCON 减1。
(3)for(i=0;i
(4)用此函数前,先用Delay(0)校准,一个是两个for 循环延时。
for 循
环延时同时,定时器计数。
200*400 个循环对应------看门狗计数次数i(i=0xffff-rWTCNT,计数一次是。