你好。
在我们的项目中,我们面临以下问题...
我们的14个器件(Tiva 控制器)正在运行长期测试。 这些器件连接到一个电源、该电源周期性地关闭和打开3秒。 每次重启后、都会检查所有器件的状态(它们必须开始通过 Profinet 与 PLC 正确通信)、如果所有器件均正常、则电源将关闭并再次打开。 在系统重新启动数百次(这意味着设备重新启动数千次、因为每次重启14个设备)后、其中一个设备(每次都不同)进入非常奇怪的状态、但会因某种原因而断电。 它看起来大约慢15倍、启动时间更长、LED 闪烁速度更慢、以太网总线(Profinet)上的响应速度更慢。 它似乎是时钟频率的问题。
我们通过以下方式设置时钟频率...
uint32_t 现实频率= MAP_SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、120000000);/120MHz
并检查其本身是否正确的返回值。 即使在器件的问题周期内、每次都返回所需的120000000值。
当我设置8MHz 而不是120MHz 时...
MAP_SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSCTL_OSC_main | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、8000000);//8MHz
然后、器件行为与我们的长期测试中看到的问题类似。
我正在阅读错误数据文档、我发现错误 sysctl#22更改为 PLL 时钟分频器可能会导致系统时钟超出规格。
我认为这也可能是我们的问题、但我发现我们使用的是 TivaWare_C_Series-2.1.4.178_DRL、它应该包含该错误的修复。
我的问题...
1) 1)您对此问题没有任何解释? 控制器中是否没有其他可能导致类似行为的"频率"问题?
2) 2)当 SYSCTL#22中描述的问题发生时、结果是什么、这意味着"导致系统时钟超出规格"? 设置了哪个频率? 它是否会导致与我们的器件类似的行为?
3) 3)如何验证120MHz 频率是否设置正确? 请问您能提供一段代码来处理它吗?
提前感谢您的任何帮助。
Zdenek Krejsa