ST意法半导体
直播中

大彭

10年用户 1064经验值
擅长:电源/新能源 嵌入式技术
私信 关注
[问答]

在STM8AL3188上使用HSI的ClassB STL_ClockFreqTest经常失败怎么解决?

一旦 STM8-SafeCLASSB 软件包集成到我们的应用程序中,周期性运行时自检将连续执行,但 STL_ClockFreqTest 随机失败。在运行整个应用程序时,该测试通常会在大约一个小时后失败,但有时需要 45 分钟甚至 4 小时。
我们使用 HSI 作为时钟源。
在运行调试会话时,我可以看到测得的 LSI 周期始终高于阈值。
我们正在为我们的项目使用 IAR。
在我们的应用程序中,我们还使用定时器 3 和 5、SPI1 在从属模式下使用 DMA、SPI2 在主模式下和 EXti
如何在这个测试中获得完全的稳定性?是否有可能某些提到的外围设备会影响该测试?








回帖(1)

凌章致

2022-12-2 10:49:05
请关注函数 STL_MeasureLSIPeriod()。很可能,执行流被一些额外的延迟(中断服务)破坏,这导致通过将 Period 变量填充为零来发出信号的过度捕获事件。可能的原因也可能是周期值的错误计算,当 IC1 和 IC2 值在这两次捕获之间的 TIM2 计数器溢出时被捕获(尽管我预计在这种情况下最常见的失败)。在这种情况下,IC1 的值大于 IC2 并且像 IC2 一样计算的周期变量 - IC1 可能会获得一些错误的值。如果 IC1 > IC2 在此计算完成之前尝试添加比较并丢弃结果(将周期填充为零以及 TIM2 过度捕获事件的情况)或检查无符号计算是否提供真实值,即使在此计时器“滚动” “ 案子。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分