历史上的今天
返回首页

历史上的今天

今天是:2024年08月30日(星期五)

正在发生

2021年08月30日 | 飞思卡尔普通看门狗与窗口看门狗

2021-08-30 来源:eefocus

举个例子,假设看门狗周期为10s,对于普通模式只要在10s内喂一次狗就可以了,超过10s则会重启。对于窗口模式必须在最后的2s内喂狗才可以,喂早了不起作用,同样超时会重启。




下面是摘抄自百度文库的文章。


链接:http://wenku.baidu.com/link?url=HQn9-QuKvsT9qQUBhzRSa13G-PD3o21iu8sA2V9YQykqQPauSknGahmBvbU5SOFXK1o6ngevZ81c2MX3y4RTulCNyPuUYlg6UDSNFjoU2om




目前接触到的单片机中都有看门狗模块,不过写过的程序也比较简单,程序能够稳定运行,所以就不怎么理会这看门狗,因此也不知道看门狗是怎么回事。


DABAO最近写了个超声波测距的程序,运行过程中程序老是会无故停止,就是死机了。因此不得不重新面对看门狗,经过两天的奋斗,终于让看门狗顺利工作了。下面记一下XS128的看门狗的相关寄存器及用法。


看门狗模块用于检测程序的正常运行,启动看门狗后,必须在看门狗复位之前向ARMCOP中依次写入0X55和0XAA,这样看门狗就会重新启动计时。如果在规定时间内没有完成向ARMCOP中依次写入0X55和0XAA的操作,就会引起看门狗复位。这样可以使程序重新运行,减小程序跑死的危害。


看门狗的设置比较简单,只要配置好寄存器COPCTL即可用。


COPCTL的第七位为: WCOP。若写入COPCTL_WCOP=1,则看门狗行运在窗口模式下,必须在看门狗周期的后25%时间内向ARMCOP依次写入0X55和0XAA。若在其他时间写入,或写入其他值,都会让看门狗溢出,使单片机复位。若写入COPCTL_WCOP=0,则看门狗运行在正常模式下。当看门狗使能后,只要在看门狗溢出周期内依次向ARMCOP写入0X55和0XAA,使看门狗计数复零,即可。


第六位为:RSBCK,BDM模式下的COP和RTI 停止位。若COPCTL_RSBCK=1,则只要进入BDM模式,就停止COP和RTI(实时中断)计数。若COPCTL_RSBCK=0,则在BDM模式下允许COP和RTI运行。


低三位为:CR2、CR1、CR0。这三位是看门狗时钟分频位。当CR[2:0]=000时,看门狗COP不可用。只要CR[2:0]不为000,看门狗就开启了。当CR[2:0]=001时,分频值为(2的14次方)。当CR[2:0]=010时,分频值为(2的16次方)。当CR[2:0]=011时,分频值为(2的18次方)。当CR[2:0]=100时,分频值为(2的20次方)。当CR[2:0]=101时,分频值为(2的22次方)。当CR[2:0]=110时,分频值为(2的23次方)。当CR[2:0]=111时,分频值为(2的24次方)。


看门狗的溢出频率为:COP溢出频率=OSCCLK /CR[2:0]。OSCCLK为晶振频率。


在正常运行模式下,只要配置好COPCTL,再写好喂狗程序,看门狗COP就可以工作了。


和看门狗COP相关的寄存器还有,不过一般情况下可以不管:


CLKSEL_COPWAI: 当CLKSEL_COPWAI=1时,COP在等待模式下不可用。当CLKSEL_COPWAI=0时,COP在等待模式下可继续运行。


PLLCTL_PCE: 当PLLCTL_PCE=1时,COP在伪停止模式下可用。当PLLCTL_PCE=0时,COP要伪停止模式下不可用。


看门狗的初始化如下:


COPCTL_WCOP=0; //正常COP模式

COPCTL_RSBCK=0; //在BDM模式下允许COP和RTI运行

COPCTL_CR2=1; //CR[2:0]分频值为(2的23次方)

COPCTL_CR1=1; //COP溢出周期=OSCCLK/CR[2:0]


COPCTL_CR0=0;


喂狗函数如下:


/我的喂狗函数

void feeddog()

{

ARMCOP=0X55; //在特定时间内依次向ARMCOP写入0X55,0XAA;

ARMCOP=0XAA;


推荐阅读

史海拾趣

ALTERA(阿尔特拉)公司的发展小趣事

阿尔特拉(Altera Corporation)是一家以可编程逻辑器件(FPGA)和相关技术为主的半导体公司,成立于1983年,总部位于美国加利福尼亚州的圣塔克拉拉。以下是关于阿尔特拉公司发展的五个相关故事:

  1. 创立与早期发展:阿尔特拉公司由Robert Hartmann和Michael Magranet等人于1983年创立,最初致力于设计和制造电可擦除可编程只读存储器(EEPROM)。1984年,公司推出了业界第一个商用FPGA产品,即EP300系列,标志着阿尔特拉在FPGA领域的开创性突破。随后,公司不断扩大产品线,加大研发投入,逐步成为FPGA领域的领军企业之一。

  2. FPGA技术创新:阿尔特拉公司在FPGA技术方面持续进行创新。1992年,公司推出了基于静态随机存储器(SRAM)的FPGA器件,使得FPGA在速度和灵活性方面有了显著提升。此后,阿尔特拉不断推出新的器件系列和工具软件,以满足客户对于性能和可编程性的不断提升的需求。

  3. 与竞争对手的竞争:在FPGA市场,阿尔特拉与Xilinx是两大主要竞争对手。两家公司之间展开了激烈的竞争,包括技术研发、产品性能、市场份额等方面。为了在市场上取得优势,阿尔特拉不断加大研发投入,推出了一系列领先的产品和解决方案,并通过全球销售网络拓展市场。

  4. 收购与合并:阿尔特拉公司在发展过程中进行了多次收购与合并,以扩大市场份额和提升技术实力。2015年,英特尔公司以约160亿美元的价格收购了阿尔特拉,将其并入英特尔旗下成为其子公司。这一收购使得英特尔得以整合阿尔特拉的FPGA技术和产品,进一步巩固了其在半导体行业的地位。

  5. 公司发展与创新:作为英特尔的子公司,阿尔特拉继续致力于技术创新和业务拓展。公司不仅持续改进现有产品的性能和功能,还积极投入到新兴领域的研发与应用,如数据中心、人工智能、物联网等。阿尔特拉通过不断推出创新产品和解决方案,保持了在半导体行业的领先地位。

以上是关于阿尔特拉公司发展的五个相关故事,这些故事展示了阿尔特拉从创立初期到被英特尔收购的发展历程,以及其在FPGA技术领域的技术创新、市场竞争和业务拓展等方面的重要进展。

Eby Electro Inc公司的发展小趣事

Eby Electro Inc公司的创始人李明,是一位对电子技术充满热情的工程师。在20世纪90年代初,他看到了电子行业的巨大潜力和未来发展趋势,于是决定创立自己的公司。起初,公司只有几名员工,主要业务是设计和制造电子零部件。李明凭借其过硬的技术能力和对市场的敏锐洞察,带领公司逐步打开了市场。他坚持质量第一的原则,赢得了客户的信任。随着业务的拓展,Eby Electro Inc逐渐在电子行业中崭露头角。

达方(DARFON)公司的发展小趣事

随着市场竞争的加剧,达方电子意识到单一产品线的风险。因此,公司开始实施多元化战略,逐步拓展至电源元件、整合通讯元件等领域。通过多元化战略的实施,达方电子成功降低了经营风险,并为公司带来了新的增长点。

ADI(亚德诺半导体)公司的发展小趣事

面对日益严峻的环境问题,达方电子积极响应国家号召,将绿色发展理念融入公司战略。公司加大了对环保技术的研发力度,推出了多款绿色、节能的产品。同时,达方电子还积极参与公益事业,为社会做出了积极贡献。这一阶段的努力,不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。

南晶电子(DGNJDZ)公司的发展小趣事

在产品质量和技术水平得到认可后,南晶电子开始积极拓展市场。公司参加了多场国内外电子展会,与众多客户建立了合作关系。同时,南晶电子还加大了营销力度,通过线上线下相结合的方式,提高了品牌知名度和市场占有率。在短短几年内,公司实现了从国内市场到国际市场的跨越式发展。

睿赫(crechip)公司的发展小趣事

作为一家有社会责任感的企业,睿赫公司始终关注环境保护和可持续发展。公司在产品研发和生产过程中,积极采用环保材料和绿色生产工艺,减少对环境的影响。同时,公司还积极参与公益事业,为社会做出了积极的贡献。

在可持续发展方面,睿赫公司致力于推动电子行业的绿色化和智能化发展。公司不断加强技术研发和创新,推出了一系列符合环保要求和高性能要求的产品,为电子行业的可持续发展做出了积极的贡献。

问答坊 | AI 解惑

再拆个山寨杀手充电器

作者:ziteng00 山寨真是不杀人不死心啊。不过外观做的很不错。 …

查看全部问答>

51单片机 休眠和唤醒 C程序

   用的stc89c52的单片机,现在需要让单片机进入休眠模式,然后被唤醒。            不知道怎么进入和唤醒,用程序怎么写?…

查看全部问答>

请问下关于QSC6085平台下的短信群发问题

我现在使用中国电信的UI界面加我们的USB数据卡,进行短信群发(7个用户),群发的用户包含数据卡本身的号码,在群发的时候,我再用7个用户中的一个或几个号码向USB数据卡发送短信(这样做就会导致USB数据卡同时收发短信的问题),那么结果会导致7个用户 ...…

查看全部问答>

为SRAM创建一个Avalon tri-strate接口时遇到的问题

用DE2的开发板,用Create New Component为SRAM创建一个Avalon tri-strate接口,data  width为16位,address  width为18位,其他还有byteenable_n ,chipselect_n ,read_n ,write_n  ,创建好添加到nios系统。另外nios系统还包括cp ...…

查看全部问答>

BeagleBone IO速率测试

作者:chenzhufly QQ:36886052 ( 转载请注明出处)BeagleBone的IO控制可以见我发的这个帖子:Linux下AM335X的GPIO控制https://bbs.eeworld.com.cn/thread-327156-1-2.html 测试代码:#include <stdlib.h>#include <sys/types.h>#include ...…

查看全部问答>

电能计量芯片CS5460

通过串行总线和主机通讯。。找过资料,在开始测量前,需要设置配置、控制、状态、中断等寄存器。。。配置完成后,发送启动转换指令开始转换。。。然后通过主机发送读寄存器指令,返回相应的值。。。这种思路对吗?? 还有,它返回都是瞬时电压、电 ...…

查看全部问答>

奋斗,实现梦想

你完全可以不再愤青,不用羡慕,只需要通过自己的努力,创造属于自己的明天。 我们的创业团队,有全球领先的产品,目前只缺少一位FPGA开发人员。 需要一定的经验,更需要一颗奋斗的心。 有兴趣请联系ywf_2002@163.com…

查看全部问答>

《MCU工程师炼成记》印刷错误7

P136中间程序 [ 本帖最后由 qinkaiabc 于 2013-10-26 09:01 编辑 ]…

查看全部问答>

崩溃了,这不科学~

如图所示,TA在红色语句处进入中断,但我程序里MC0还未置1,此时查看TA的寄存器,MC0和MC1也都为0,为什么会这样呀?怀疑程序里某处MC0置1,所以导致CCIE置1时,立刻进入中断,那寄存器里MC0和MC1不应该为0呀,实际中,我检查了半天也没找到,泪 ...…

查看全部问答>

通常fpga和arm高速通信各位一般用什么方式

通常fpga和arm高速通信各位一般用什么方式 \0\0\0eeworldpostqq…

查看全部问答>