CH582M碰到使用外部32.768khz晶振有少部分失效的问题

你好。我用CH582M单片机 ,使用32Mhz_12pf晶振 + 32.768khz_12.5pf_+-10ppm晶振。晶振都没有接外部电容。产品陆陆续续用了有一年多了,产品数量也有几百个。最近碰到有少量板子无法启动(大概5-6个,天气潮湿)。可通过以下几种方案解决:

  1. 更换CH582M

  2. 程序改为使能 【内部】32.768晶振

  3. 用热风枪加热CH582M,加热后可正常启动,但隔了一天后,有些被加热解决的能启动,有些又不能了。


一、请问这种是什么情况?    我看我用的晶振的参数和你们要求的是一致的。

二、还有就是想问下内部32k和内部32.768k是什么区别。我看见有些例程是默认采用内部32k而不是内部32.768k,为啥不是内部32.768k?

您提到的启动与不启动具体有什么现象,可以详细描述一下。32k和32.768k选择任意一个是没有影响的,我们内部会进行校准处理。


我做了测试,如果把电路冷冻一下,就很容易出现这种情况。用代码追踪发现,程序卡在这个位置: 在RTC_InitTime初始化函数中的这段代码:  

if(!clk_pin)

    {

        while(!clk_pin)

        {

            do

            {

                clk_pin = (R8_CK32K_CONFIG & RB_32K_CLK_PIN);

            } while(clk_pin != (R8_CK32K_CONFIG & RB_32K_CLK_PIN));

        }

    }

当电路板通电一段时间后(10分钟),电路板温度上升,程序就能继续往下执行。


请问这个是什么原因???


起振慢导致的,唤醒做个延时就可以了。


没有做低功耗休眠。是上电开机,那按你的意思是上电开机后要先做个延时? 需要延时多久? 比如说我在上面说的电路板上电之后卡顿了10分钟,这种情况下开机延时要多久?


留个邮箱发送一个RTC计数的程序给您,接打印看一下是否在持续计数,确认晶振是否正常起振。


大哥你这个问题有后续吗,我很关注!


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