打印
[APM32F0]

APM32F003看门狗复位问题

[复制链接]
728|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 | 只看该作者
一般来说,看门狗的喂狗数值不都是固定的吗

使用特权

评论回复
5
zhizia4f| | 2023-11-15 14:46 | 只看该作者
你可以试试设置成固定的啊,也许会好点

使用特权

评论回复
6
b5z1giu| | 2023-11-15 18:54 | 只看该作者
喂狗时间建议设置长一点试试

使用特权

评论回复
7
suw12q| | 2023-11-15 19:43 | 只看该作者
其实要是系统简单,没必要设置看门狗的

使用特权

评论回复
8
p0gon9y| | 2023-11-15 20:28 | 只看该作者
那这种LIRC怎么会变化的,是受到什么影响了么

使用特权

评论回复
9
q1d0mnx| | 2023-11-16 08:54 | 只看该作者
八位的重载值竟然能超过255,也是可以

使用特权

评论回复
10
y1n9an| | 2023-11-16 10:01 | 只看该作者
你直接用个外置的看门狗芯片吧,比较好,不受影响

使用特权

评论回复
11
su1yirg| | 2023-11-16 11:04 | 只看该作者
你这只有这一个看门狗么?

使用特权

评论回复
12
liu96jp| | 2023-11-16 14:22 | 只看该作者
一般看门狗是32位的还是16位的啊?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

20

帖子

0

粉丝