GD32F4系列外部晶振启动异常问题解析

刚好有个项目用GD32F407系列,用到了RTC和纽扣电池。中间产品测试时,发现界面时钟没有更新,软件工程师调试反馈是LXTAL使能后无法稳定。于是,硬件来分析:

1)示波器查看,确实32768晶振两边都无明显规律波形。

2)查看生产BOM表、查看Datasheet,未发现异常。

因此同样的产品做过多次样机了,所以手上有一些OK的板子,就通过对调器件来分析。

3)对调电容,OK的还是OK,NG的还是NG。

4)对调晶振,OK的还是OK,NG的还是NG。

5)对调MCU,OK的板NG了,NG的板依然NG。

暂且认为高温把OK的MCU搞坏了吧。

重新领取库存全新物料,焊接到NG的板子上,也还是NG。
6)试一下匹配电容,从8.2pF——22pF(标称负载电容式12.5pF),都换过,NG。

————————————————————————————————————

当时正巧试产设备和一批研发样机,都出现了这个问题,于是赶紧反馈给双边供应商,寻求帮助。

————————————————————————————————————

开始自己调软件,发现故障现象莫名其妙:

A)LXTAL稳定失败

B)LXTAL稳定成功,但是RTC不计数

C)LXTAL稳定成功,但是掉电后不走时

D)IR32K稳定失败

E)IR32K稳定成功

再与软件工程师协作下,发现NG的板子烧写他的程序OK了。

不得不怀疑和软件有关,对比代码:

rcu_periph_clock_enable(RCU_PMU);
pmu_backup_write_enable(); 

上面两句很重要,需要弄在下面句子之前面。

rcu_osci_on(RCU_LXTAL);
if(SUCCESS==rcu_osci_stab_wait(RCU_LXTAL))

OK,LXTAL正常启动,示波器检测有波形,但是还是有些故障。

最后发现,去纽扣电池,掉电再上电,重新烧写程序,一切OK。

其实,本文没有完全解答怎么配置LXTAL才能100%正常。

以上信息,仅供参考阅读。

 

你可能感兴趣的:(单片机,GD32,LXTAL,RTC)