WCH沁恒单片机
直播中

番茄番茄

12年用户 637经验值
私信 关注
[问答]

CH573F芯片死机问题如何解决?

项目中使用一批CH573F芯片,boot版本号v2.8,芯片经常死机,尤其是进入deep sleep模式后总是无法唤醒。软件当中已使用看门狗,在主循环框架里喂狗,发现这种死机无法触发看门狗复位,说明不是软件问题。将芯片更换为以前的料,boot版本是v2.7,系统正常工作,无死机现象。芯片死机后,各个电源管脚电压均正常。
__attribute__((section(".highcode")))
void Main_Circulation()
{
    while (1)
    {
        TMOS_SystemProcess();
        WWDG_SetCounter(0);
    }
}


回帖(3)

魏荣梅

2022-7-22 10:55:44
可以测一下芯片不工作时候的电流,可能是没完全唤醒。
有2个思路
一:唤醒的IO要加上滤波电容(比如0.1uF)用于按键消抖;

二:软件上,比如设置GPIO上升沿唤醒,那么进入睡眠前IO必须是低电平,如果是高,就要等IO变低后才能调用休眠。
另外休眠函数 LowPower_Sleep( RB_PWR_RAM30K | RB_PWR_EXTEND ); RAM和扩展要保持供电

在休眠唤醒函数建议加上读Flash或者dataflash操作(预存一个值,如果都回来正常,就可以正常执行)
举报

黄剑屏

2022-7-22 10:55:48
说错了,我用的是shutdown模式
    WWDG_SetCounter(0);
    PFIC_EnableIRQ(GPIO_A_IRQn);                                    /* PA12 KEY PA13 USB PA10 TOUCHOUT*/
    PWR_PeriphWakeUpCfg(ENABLE, RB_SLP_GPIO_WAKE, Edge_ShortDelay);
    DelayMs(2);
    LowPower_Shutdown(0);
    HSECFG_Current(HSE_RCur_100);
举报

张恒

2022-7-22 10:55:54
shut休眠也是同样的
一:唤醒的IO要加上滤波电容(比如0.1uF)用于按键消抖;
二:软件上,比如设置GPIO上升沿唤醒,那么进入睡眠前IO必须是低电平,如果是高,就要等IO变低后才能调用休眠。
另外休眠函数 LowPower_Shutdown( RB_PWR_RAM30K | RB_PWR_EXTEND ); RAM和扩展要保持供电
举报

更多回帖

发帖
×
20
完善资料,
赚取积分