[APM32F0] APM32F003看门狗复位问题

[复制链接]
1546|11
 楼主| a976209770 发表于 2023-9-28 15:26 | 显示全部楼层 |阅读模式
近期,我们团队使用APM32F003F6P6芯片进行小型项目开发。项目前期调试阶段一切正常,于是我们决定进行20块PCB的小批量测试。

在这20块测试板中,有19块表现正常。然而,有1块板子展现出异常行为。预期中,根据程序代码,板上LED灯应为常亮状态。但该板子的LED灯却持续闪烁,功能表现也不稳定,这让我们觉得像是芯片处于持续复位状态。

经过深入测试和对比,我们发现问题确实出在这一块芯片上。相同的代码和硬件环境下,仅有这一块芯片表现出持续复位的问题。通过进行对比测试,我们初步推断问题与芯片自身有关。

我们认为可能的复位原因有两个:静电放电(ESD)或看门狗(WDT)。考虑到该问题板子是裸板,并未接入高电流或高电压,因此ESD的可能性较小。因此,问题更可能是由于看门狗导致的复位。

为验证这一点,我们尝试关闭了看门狗功能。关闭后,发现问题芯片开始正常工作。这一结果让我们确定,问题确实是由看门狗导致的复位。

在使用APM官方提供的库函数进行配置时,我们注意到一个细节。看门狗的喂狗值并不是固定的,而是根据LIRC的频率动态计算得出的。由于LIRC的精度本身不高,我们怀疑是重载值溢出,导致喂狗时间过短,从而引发了看门狗复位。

通过参考APM32F003的手册,我们注意到重载值是8位的。然而,在实际测试中,读取的重载值却超过了255。这个发现使我们确信是重载值溢出,导致喂狗时间显著缩短。

为了解决这个问题,我们决定将重载值固定设定为255。经过一轮测试,结果显示问题已得到解决。这一修改确保了芯片能够在预定的条件下正常工作。

t1ngus4 发表于 2023-11-15 12:34 | 显示全部楼层
额,看门狗的复位值竟然不是固定的?
g0d5xs 发表于 2023-11-15 13:40 | 显示全部楼层
话说,这种不固定的数值能行么,那不是很容易出现复位么
ex7s4 发表于 2023-11-15 14:45 | 显示全部楼层
一般来说,看门狗的喂狗数值不都是固定的吗
zhizia4f 发表于 2023-11-15 14:46 | 显示全部楼层
你可以试试设置成固定的啊,也许会好点
b5z1giu 发表于 2023-11-15 18:54 | 显示全部楼层
喂狗时间建议设置长一点试试
suw12q 发表于 2023-11-15 19:43 | 显示全部楼层
其实要是系统简单,没必要设置看门狗的
p0gon9y 发表于 2023-11-15 20:28 | 显示全部楼层
那这种LIRC怎么会变化的,是受到什么影响了么
q1d0mnx 发表于 2023-11-16 08:54 | 显示全部楼层
八位的重载值竟然能超过255,也是可以
y1n9an 发表于 2023-11-16 10:01 | 显示全部楼层
你直接用个外置的看门狗芯片吧,比较好,不受影响
su1yirg 发表于 2023-11-16 11:04 | 显示全部楼层
你这只有这一个看门狗么?
liu96jp 发表于 2023-11-16 14:22 | 显示全部楼层
一般看门狗是32位的还是16位的啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

43

帖子

1

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