CH573F芯片死机问题

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

__attribute__((section(".highcode")))

void Main_Circulation()

{

    while (1)

    {

        TMOS_SystemProcess();

        WWDG_SetCounter(0);

    }

}


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

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

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


说错了,我用的是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);



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


这样功耗很大吧


只有登录才能回复,可以选择微信账号登录