STM8 要使用HALT模式和IWDG的问题?求解

[复制链接]
12812|19
 楼主| jgphu 发表于 2011-5-25 15:11 | 显示全部楼层 |阅读模式
一个项目用到低功耗,所以放弃了活跃停机模式(采用AWU自动唤醒)。

现使用HALT模式,靠外部中断唤醒。

现在的问题是:我在程序中加了IWDG,HALT后MCU复位了。

SPEC中说:在HALT下,只有外部中断能唤醒。为什么IWDG还会工作。
zhjun 发表于 2011-5-25 15:50 | 显示全部楼层
需要在选项字节中设置IWDG在HALT下STOP,默认是继续RUN
 楼主| jgphu 发表于 2011-5-25 16:25 | 显示全部楼层
STM8选择字节有这个功能吗?
 楼主| jgphu 发表于 2011-5-25 17:25 | 显示全部楼层
为什么我还没有结帖,就说这帖已结啊???:curse:
 楼主| jgphu 发表于 2011-5-25 17:55 | 显示全部楼层
这个是在网上找的

        IWDG_HALT:=1;IWDG在停机模式下停止运行。

                       =0;IWDG在停机模式下继续运行。


但是在STVP上的选项之节真的没有找到这个。只IWDG_HW.
香水城 发表于 2011-5-26 10:38 | 显示全部楼层
这个是在网上找的

        IWDG_HALT:=1;IWDG在停机模式下停止运行。

                       =0;IWDG在停机模式下继续运行。

但是在STVP上的选项之节真的没有找到这个。只IWDG_HW. ...
jgphu 发表于 2011-5-25 17:55


没注意有这种设置,ST的哪个手册中有说明?
香水城 发表于 2011-5-26 10:51 | 显示全部楼层
请看看STM8的参考手册,在HALT模式下,除CPU之外,所有fMASTER驱动的外设都会停止,但IWDG却不是由fMASTER驱动的外设,所以在HALT模式下IWDG不会停止,而WWDG才有可能停止。
STM8_HALT_Mode.gif
STM8_Clock_Tree.GIF
 楼主| jgphu 发表于 2011-5-26 12:59 | 显示全部楼层
已了解,只是觉得SPEC没有说得很明白,就拿上来问问。
Symbol_X 发表于 2015-3-5 14:37 | 显示全部楼层
IWDG_HALT选项在程序里面设置无效,如在程序中加入以下代码:
OPT->WDG = 0x02;
在MCU进入HALT之后,IWDG还在运行,导致MCU RESET。
正确的做法是在烧录时配置好,使用STVP烧录的配置选项如下: 无标题.png
这样在MCU进入HALT状态后IWDG就会停止工作
小胖电子 发表于 2015-6-11 11:42 | 显示全部楼层
请问楼主找到同时开IWDG和HALT的方法了吗?还是必须舍弃一个?
lakelake1991 发表于 2015-8-26 17:21 | 显示全部楼层
本帖最后由 lakelake1991 于 2015-9-8 15:50 编辑
Symbol_X 发表于 2015-3-5 14:37
IWDG_HALT选项在程序里面设置无效,如在程序中加入以下代码:
OPT->WDG = 0x02;
在MCU进入HALT之后,IWDG还 ...

OPT->WDG = 0x02;
不是在程序里设置无效 而是寄存器在EEPROM区域。要写入需要先解锁EEPROM
do
    {
        FLASH->DUKR = 0xae; // 写入第一个密钥
        FLASH->DUKR = 0x56; // 写入第二个密钥
    }
    while((FLASH->IAPSR & 0x08) == 0);//e2解锁
    FLASH->CR2 |= 0x80;
    OPT->WDG |= 0x02;//低功耗停止看门狗计数
    while((FLASH->IAPSR & 0x04) == 0)//写入完成
    {
        ;
    }
这样可以在低功耗时停止看门狗计数了。
ooffran 发表于 2015-12-23 17:20 | 显示全部楼层
真还是假的?我回去试试看。
simon_lost 发表于 2016-3-8 10:51 | 显示全部楼层
11楼对的,我也这么用的了~~
jj1989 发表于 2016-6-13 17:01 | 显示全部楼层
lakelake1991 发表于 2015-8-26 17:21
OPT->WDG = 0x02;
不是在程序里设置无效 而是寄存器在EEPROM区域。要写入需要先解锁EEPROM
do

感谢,先试试。
ynkady 发表于 2017-2-21 16:41 | 显示全部楼层
OPT->WDG在头文件的定义里没有啊?
typedef struct OPT_struct
{
  __IO uint8_t OPT0;  /*!< Option byte 0: Read-out protection (not accessible in IAP mode) */
  __IO uint8_t OPT1;  /*!< Option byte 1: User boot code */
  __IO uint8_t NOPT1; /*!< Complementary Option byte 1 */
  __IO uint8_t OPT2;  /*!< Option byte 2: Alternate function remapping */
  __IO uint8_t NOPT2; /*!< Complementary Option byte 2 */
  __IO uint8_t OPT3;  /*!< Option byte 3: Watchdog option */
  __IO uint8_t NOPT3; /*!< Complementary Option byte 3 */
  __IO uint8_t OPT4;  /*!< Option byte 4: Clock option */
  __IO uint8_t NOPT4; /*!< Complementary Option byte 4 */
  __IO uint8_t OPT5;  /*!< Option byte 5: HSE clock startup */
  __IO uint8_t NOPT5; /*!< Complementary Option byte 5 */
  uint8_t RESERVED1;  /*!< Reserved Option byte*/
  uint8_t RESERVED2; /*!< Reserved Option byte*/
  __IO uint8_t OPT7;  /*!< Option byte 7: flash wait states */
  __IO uint8_t NOPT7; /*!< Complementary Option byte 7 */
}
OPT_TypeDef;
18636120780 发表于 2017-4-15 10:13 | 显示全部楼层
香水城 发表于 2011-5-26 10:38
没注意有这种设置,ST的哪个手册中有说明?

datasheet手册第7章  选项字节
windows100 发表于 2017-4-15 16:35 | 显示全部楼层
18636120780 发表于 2017-4-15 10:13
datasheet手册第7章  选项字节

STM8S003第8章没有这个,这个应该是与芯片型号有关??
yiy 发表于 2017-4-16 18:25 | 显示全部楼层
没想到这么复杂。。。。
yiy 发表于 2017-4-16 18:28 | 显示全部楼层
还好我不做电池供电的系统。。。
18636120780 发表于 2017-9-1 09:48 | 显示全部楼层
windows100 发表于 2017-4-15 16:35
STM8S003第8章没有这个,这个应该是与芯片型号有关??

我用的stm8l的  在第7章  你找哪一章讲选项字节的就有啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

642

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部