完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
2个回答
|
|
wk_ad_begin({pid : 21});wk_ad_after(21, function(){$('.ad-hidden').hide();}, function(){$('.ad-hidden').show();}); HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 Rev.1.30 2010-10-04 46 进入休眠模式0 进入休眠模式0的方法仅有一种——应用程序中执行“HALT”指令前需设置寄存器SMOD中IDLEN位为“0”且WDT和LVD功能除能。在上述条件下执行该指令后,将发生的情况如下: • 系统时钟、WDT时钟和时基时钟停止运行,应用程序停止在“HALT”指令处。 • 数据存储器中的内容和寄存器将保持当前值。 • 无论WDT时钟源来自fSUB时钟或系统时钟,WDT都将被清除并停止运行。 • 输入/输出口将保持当前值。 • 状态寄存器中暂停标志PDF将被置起,看门狗溢出标志TO将被清除。 进入休眠模式1 进入休眠模式1的方法仅有一种——应用程序中执行“HALT”指令前需设置寄存器SMOD中IDLEN位为“0”且WDT或LVD功能使能。在上述条件下执行该指令后,将发生的情况如下: • 系统时钟和时基时钟停止运行,应用程序停止在“HALT”指令处。WDT或LVD继续运行,其 时钟源来自fSUB。 • 数据存储器中的内容和寄存器将保持当前值。 • 若WDT使能且其时钟源来自fSUB,则WDT将被清零并重新开始计数。 • 输入/输出口将保持当前值。 • 状态寄存器中暂停标志PDF将被置起,看门狗溢出标志TO将被清除。 进入空闲模式0 进入空闲模式0的方法仅有一种——应用程序中执行“HALT”指令前需设置寄存器SMOD中IDLEN位为“1”且WDTC寄存器中的FSYSON位为“0”。在上述条件下执行该指令后,将发生的情况如下: • 系统时钟停止运行,应用程序停止在“HALT”指令处,时基时钟和fSUB时钟将继续运行。 • 数据存储器中的内容和寄存器将保持当前值。 • 若WDT使能且其时钟源来自fSUB,则WDT将被清零并重新开始计数;若其时钟源来自系统时 钟,则WDT将停止运行。 • 输入/输出口将保持当前值。 • 状态寄存器中暂停标志PDF将被置起,看门狗溢出标志TO将被清除。 进入空闲模式1 进入空闲模式1的方法仅有一种——应用程序中执行“HALT”指令前需设置寄存器SMOD中IDLEN位为“1”且WDTC寄存器中的FSYSON位为“1”。在上述条件下执行该指令后,将发生的情况如下: • 系统时钟、时基时钟和fSUB开启,应用程序停止在“HALT”指令处。 • 数据存储器中的内容和寄存器将保持当前值。 • 若WDT使能,无论WDT时钟源来自fSUB或是系统时钟,则WDT将被清零并重新开始计数。 • 输入/输出口将保持当前值。 • 状态寄存器中暂停标志PDF将被置起,看门狗溢出标志TO将被清除。 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 Rev.1.30 2010-10-04 47 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 Rev.1.30 2010-10-04 48 静态电流的注意事项 由于单片机进入休眠或空闲模式的主要原因是将 MCU 的电流降低到尽可能低,可能到只有几个毫安的级别(空闲模式1除外),所以如果要将电路的电流降到最低,电路设计者还应有其它的考虑。应该特别注意的是单片机的输入/输出引脚。所有高阻抗输入脚都必须连接到固定的高或低电平,因为引脚浮空会造成内部振荡并导致耗电增加。这也应用于有不同封装的单片机,因为它们可能含有未引出的引脚,这些引脚也必须设为输出或带有上拉电阻的输入。 另外还需注意单片机设为输出的 I/O 引脚上的负载。应将它们设置在有最小拉电流的状态或将它们和其它的 CMOS输入一样接到没有拉电流的外部电路上。还应注意的是,如果使能配置选项中的LXT或LIRC振荡器,会导致耗电增加。在空闲模式1中,系统时钟开启。若系统时钟来自高速系统振荡器,额外的静态电流也可能会有几百微安。 唤醒 系统进入休眠或空闲模式之后,可以通过以下几种方式唤醒: • 外部复位 • PA口下降沿 • 系统中断 • WDT 溢出 若由外部RES引脚唤醒,系统会经过完全复位的过程;若由 WDT 溢出唤醒,则会发生看门狗定时器复位。这两种唤醒方式都会使系统复位,可以通过状态寄存器中TO和PDF位来判断它的唤醒源。系统上电或执行清除看门狗的指令,会清零PDF;执行HALT指令,PDF将被置位。看门狗计数器溢出将会置位TO标志并唤醒系统,这种复位会重置程序计数器和堆栈指针,其它标志保持原有状态。 PA口中的每个引脚都可以通过PAWU寄存器使能下降沿唤醒功能。PA端口唤醒后,程序将在“HALT”指令后继续执行。如果系统是通过中断唤醒,则有两种可能发生。第一种情况是:相关中断除能或是中断使能且堆栈已满,则程序会在“HALT”指令之后继续执行。这种情况下,唤醒系统的中断会等到相关中断使能或有堆栈层可以使用之后才执行。第二种情况是:相关中断使能且堆栈未满,则中断可以马上执行。 如果在进入休眠或空闲模式之前中断标志位已经被设置为“1”,则相关中断的唤醒功能将无效。 编程注意事项 HXT和LXT振荡器使用相同的SST计数器。例如,若系统从休眠模式0中唤醒,HXT和LXT振荡器都需从关闭状态快速启动。HXT振荡器结束其SST周期后,LXT振荡器才开始使用SST计数器。 • 若单片机从休眠模式0唤醒后进入正常模式,高速系统振荡器需要一个SST周期。在HTO为“1” 后,单片机开始执行首条指令。此时,若fSUB时钟来源于LXT振荡器,LXT振荡器可能不是稳定的,上电状态可能会发生类似情况,首条指令执行时LXT振荡器还未就绪。 • 若单片机从休眠模式1唤醒后进入正常模式,系统时钟源来自HXT振荡器且FSTEN为“1”, 唤醒后,系统时钟可切换至LXT或LIRC振荡器。 • 一些外围功能,如WDT,TMs和SIM,采用系统时钟fSYS时,在系统时钟源由fH切换至fL时, 以上这些功能的时钟源也要随之改变。 • 当WDT时钟源选择为fSUB时,fSUB和fS 的开启或关闭由WDT是否使能决定的。 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 Rev.1.30 2010-10-04 49 看门狗定时器 看门狗定时器的功能在于防止如电磁的干扰等外部不可控制事件,所造成的程序不正常动作或跳转到未知的地址。 看门狗定时器时钟源 WDT定时器时钟源来自于内部时钟fS,而fS的时钟源又是通过配置选项从fSUB和fSYS/4中选择。fSUB时钟由LXT或LIRC振荡器提供,可通过配置选项设置。看门狗定时器的时钟源可分频为28~215以提供更大的溢出周期,分频比由WDTC寄存器中的WS2~WS0位来决定。电压为5V时内部振荡器LIRC的周期大约为32kHz。需要注意的是,这个特殊的内部时钟周期随VDD、温度和制成的不同而变化。LXT振荡器由一个外部32.768kHz晶振提供。另一个看门狗定时器时钟源选项为fSYS/4。看门狗定时器时钟源可来自内部LIRC振荡器、LXT振荡器或fSYS/4。 看门狗定时器控制寄存器 WDTC寄存器用于控制WDT功能的使能/除能及选择溢出周期。寄存器结合配置选项控制看门狗定时器的工作。 • WDTC寄存器 Bit 7 6 5 4 3 2 1 0 Name FSYSON WS2 WS1 WS0 WDTEN3 WDTEN2 WDTEN1 WDTEN0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 0 1 1 1 1 0 1 0 Bit 7 FSYSON:fSYS在空闲模式下的控制位 0:除能 1:使能 Bit 6~4 WS2,WS1,WS0:WDT溢出周期选择位 000:256/fS 001:512/fS 010:1024/fS 011:2048/fS 100:4096/fS 101:8192/fS 110:16384/fS 111:32768/fS 这三位控制WDT时钟源的分频比,从而实现对WDT溢出周期的控制。 Bit 3~0 WDTEN3,WDTEN2,WDTEN1,WDTEN0:WDT软件控制位 1010:除能 其它:使能 看门狗定时器看门狗定时器操作操作 当 WDT 溢出时,它产生一个芯片复位的动作。这也就意味着正常工作期间,用户需在应用程序中看门狗溢出前有策略地清看门狗定时器以防止其产生复位,可使用清除看门狗指令实现。无论什么原因,程序失常跳转到一个未知的地址或进入一个死循环,这些清除指令都不能被正确执行,此种情况下,看门狗将溢出以使单片机复位。通过配置选项选择看门狗定时器的一些选项,如使能/除能、时钟源选择及清除指令类型。除了配置选项使能/除能看门狗定时器外,WDTC寄存器中的WDTEN3~WDTEN0位也可用来除能看门狗定时器,此时需设置WDTEN3~WDTEN0为“1010”。若使用看门狗定时器功能,推荐设置这四位为“0101”,提供最大可能的防干扰能力。注意,若看门狗定时器被除能,相关操作的任何指令都不会工作。 wk_ad_begin({pid : 21});wk_ad_after(21, function(){$('.ad-hidden').hide();}, function(){$('.ad-hidden').show();}); HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 Rev.1.30 2010-10-04 46 进入休眠模式0 进入休眠模式0的方法仅有一种——应用程序中执行“HALT”指令前需设置寄存器SMOD中IDLEN位为“0”且WDT和LVD功能除能。在上述条件下执行该指令后,将发生的情况如下: • 系统时钟、WDT时钟和时基时钟停止运行,应用程序停止在“HALT”指令处。 • 数据存储器中的内容和寄存器将保持当前值。 • 无论WDT时钟源来自fSUB时钟或系统时钟,WDT都将被清除并停止运行。 • 输入/输出口将保持当前值。 • 状态寄存器中暂停标志PDF将被置起,看门狗溢出标志TO将被清除。 进入休眠模式1 进入休眠模式1的方法仅有一种——应用程序中执行“HALT”指令前需设置寄存器SMOD中IDLEN位为“0”且WDT或LVD功能使能。在上述条件下执行该指令后,将发生的情况如下: • 系统时钟和时基时钟停止运行,应用程序停止在“HALT”指令处。WDT或LVD继续运行,其 时钟源来自fSUB。 • 数据存储器中的内容和寄存器将保持当前值。 • 若WDT使能且其时钟源来自fSUB,则WDT将被清零并重新开始计数。 • 输入/输出口将保持当前值。 • 状态寄存器中暂停标志PDF将被置起,看门狗溢出标志TO将被清除。 进入空闲模式0 进入空闲模式0的方法仅有一种——应用程序中执行“HALT”指令前需设置寄存器SMOD中IDLEN位为“1”且WDTC寄存器中的FSYSON位为“0”。在上述条件下执行该指令后,将发生的情况如下: • 系统时钟停止运行,应用程序停止在“HALT”指令处,时基时钟和fSUB时钟将继续运行。 • 数据存储器中的内容和寄存器将保持当前值。 • 若WDT使能且其时钟源来自fSUB,则WDT将被清零并重新开始计数;若其时钟源来自系统时 钟,则WDT将停止运行。 • 输入/输出口将保持当前值。 • 状态寄存器中暂停标志PDF将被置起,看门狗溢出标志TO将被清除。 进入空闲模式1 进入空闲模式1的方法仅有一种——应用程序中执行“HALT”指令前需设置寄存器SMOD中IDLEN位为“1”且WDTC寄存器中的FSYSON位为“1”。在上述条件下执行该指令后,将发生的情况如下: • 系统时钟、时基时钟和fSUB开启,应用程序停止在“HALT”指令处。 • 数据存储器中的内容和寄存器将保持当前值。 • 若WDT使能,无论WDT时钟源来自fSUB或是系统时钟,则WDT将被清零并重新开始计数。 • 输入/输出口将保持当前值。 • 状态寄存器中暂停标志PDF将被置起,看门狗溢出标志TO将被清除。 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 Rev.1.30 2010-10-04 47 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 Rev.1.30 2010-10-04 48 静态电流的注意事项 由于单片机进入休眠或空闲模式的主要原因是将 MCU 的电流降低到尽可能低,可能到只有几个毫安的级别(空闲模式1除外),所以如果要将电路的电流降到最低,电路设计者还应有其它的考虑。应该特别注意的是单片机的输入/输出引脚。所有高阻抗输入脚都必须连接到固定的高或低电平,因为引脚浮空会造成内部振荡并导致耗电增加。这也应用于有不同封装的单片机,因为它们可能含有未引出的引脚,这些引脚也必须设为输出或带有上拉电阻的输入。 另外还需注意单片机设为输出的 I/O 引脚上的负载。应将它们设置在有最小拉电流的状态或将它们和其它的 CMOS输入一样接到没有拉电流的外部电路上。还应注意的是,如果使能配置选项中的LXT或LIRC振荡器,会导致耗电增加。在空闲模式1中,系统时钟开启。若系统时钟来自高速系统振荡器,额外的静态电流也可能会有几百微安。 唤醒 系统进入休眠或空闲模式之后,可以通过以下几种方式唤醒: • 外部复位 • PA口下降沿 • 系统中断 • WDT 溢出 若由外部RES引脚唤醒,系统会经过完全复位的过程;若由 WDT 溢出唤醒,则会发生看门狗定时器复位。这两种唤醒方式都会使系统复位,可以通过状态寄存器中TO和PDF位来判断它的唤醒源。系统上电或执行清除看门狗的指令,会清零PDF;执行HALT指令,PDF将被置位。看门狗计数器溢出将会置位TO标志并唤醒系统,这种复位会重置程序计数器和堆栈指针,其它标志保持原有状态。 PA口中的每个引脚都可以通过PAWU寄存器使能下降沿唤醒功能。PA端口唤醒后,程序将在“HALT”指令后继续执行。如果系统是通过中断唤醒,则有两种可能发生。第一种情况是:相关中断除能或是中断使能且堆栈已满,则程序会在“HALT”指令之后继续执行。这种情况下,唤醒系统的中断会等到相关中断使能或有堆栈层可以使用之后才执行。第二种情况是:相关中断使能且堆栈未满,则中断可以马上执行。 如果在进入休眠或空闲模式之前中断标志位已经被设置为“1”,则相关中断的唤醒功能将无效。 编程注意事项 HXT和LXT振荡器使用相同的SST计数器。例如,若系统从休眠模式0中唤醒,HXT和LXT振荡器都需从关闭状态快速启动。HXT振荡器结束其SST周期后,LXT振荡器才开始使用SST计数器。 • 若单片机从休眠模式0唤醒后进入正常模式,高速系统振荡器需要一个SST周期。在HTO为“1” 后,单片机开始执行首条指令。此时,若fSUB时钟来源于LXT振荡器,LXT振荡器可能不是稳定的,上电状态可能会发生类似情况,首条指令执行时LXT振荡器还未就绪。 • 若单片机从休眠模式1唤醒后进入正常模式,系统时钟源来自HXT振荡器且FSTEN为“1”, 唤醒后,系统时钟可切换至LXT或LIRC振荡器。 • 一些外围功能,如WDT,TMs和SIM,采用系统时钟fSYS时,在系统时钟源由fH切换至fL时, 以上这些功能的时钟源也要随之改变。 • 当WDT时钟源选择为fSUB时,fSUB和fS 的开启或关闭由WDT是否使能决定的。 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 Rev.1.30 2010-10-04 49 看门狗定时器 看门狗定时器的功能在于防止如电磁的干扰等外部不可控制事件,所造成的程序不正常动作或跳转到未知的地址。 看门狗定时器时钟源 WDT定时器时钟源来自于内部时钟fS,而fS的时钟源又是通过配置选项从fSUB和fSYS/4中选择。fSUB时钟由LXT或LIRC振荡器提供,可通过配置选项设置。看门狗定时器的时钟源可分频为28~215以提供更大的溢出周期,分频比由WDTC寄存器中的WS2~WS0位来决定。电压为5V时内部振荡器LIRC的周期大约为32kHz。需要注意的是,这个特殊的内部时钟周期随VDD、温度和制成的不同而变化。LXT振荡器由一个外部32.768kHz晶振提供。另一个看门狗定时器时钟源选项为fSYS/4。看门狗定时器时钟源可来自内部LIRC振荡器、LXT振荡器或fSYS/4。 看门狗定时器控制寄存器 WDTC寄存器用于控制WDT功能的使能/除能及选择溢出周期。寄存器结合配置选项控制看门狗定时器的工作。 • WDTC寄存器 Bit 7 6 5 4 3 2 1 0 Name FSYSON WS2 WS1 WS0 WDTEN3 WDTEN2 WDTEN1 WDTEN0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 0 1 1 1 1 0 1 0 Bit 7 FSYSON:fSYS在空闲模式下的控制位 0:除能 1:使能 Bit 6~4 WS2,WS1,WS0:WDT溢出周期选择位 000:256/fS 001:512/fS 010:1024/fS 011:2048/fS 100:4096/fS 101:8192/fS 110:16384/fS 111:32768/fS 这三位控制WDT时钟源的分频比,从而实现对WDT溢出周期的控制。 Bit 3~0 WDTEN3,WDTEN2,WDTEN1,WDTEN0:WDT软件控制位 1010:除能 其它:使能 看门狗定时器看门狗定时器操作操作 当 WDT 溢出时,它产生一个芯片复位的动作。这也就意味着正常工作期间,用户需在应用程序中看门狗溢出前有策略地清看门狗定时器以防止其产生复位,可使用清除看门狗指令实现。无论什么原因,程序失常跳转到一个未知的地址或进入一个死循环,这些清除指令都不能被正确执行,此种情况下,看门狗将溢出以使单片机复位。通过配置选项选择看门狗定时器的一些选项,如使能/除能、时钟源选择及清除指令类型。除了配置选项使能/除能看门狗定时器外,WDTC寄存器中的WDTEN3~WDTEN0位也可用来除能看门狗定时器,此时需设置WDTEN3~WDTEN0为“1010”。若使用看门狗定时器功能,推荐设置这四位为“0101”,提供最大可能的防干扰能力。注意,若看门狗定时器被除能,相关操作的任何指令都不会工作。 http://wenku.baidu.com/view/0b19e8503c1ec5da50e2701f.html |
|
|
|
哇塞,好厉害呀,加油!!!
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
72 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
509 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
546 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
545 浏览 0 评论
1008 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11763 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 13:24 , Processed in 0.593576 second(s), Total 72, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号