SYS时钟变量刻度率

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
4个帖子/ 0新
最后一篇
CMARIUS.
离线
最后一次露面:3年3个月前
加入:2017-11-13 07:23
SYS时钟变量刻度率

你好,

我们在我们的智能手表上使用DA14681芯片,我们观察到自睡眠后启动以来的时间。
我们正在使用pm_mode_extended_sleep,并且刻度计数完全完成,但由于Tick_Rate_Hz正在发生变化,我们执行RCX校准时出现问题。这导致宏OS_Ticks_2_MS反映出不同的操作系统时间,因此这将影响时间戳。
前任:
tick_rate_hz |蜱圈|MS |delta(prevarar_ms - current_ms)
478 T = 3830 8012,44
478 T = 3851 8056,44
547 T = 3872 7078,-978
547 T = 3891 7113,35
547 T = 3913 7153,40

由于Tich_rate_Hz的变化,MS中的时间更改为先前值,因此可以观察到。最小tich_rate_hz为450Hz,最大值为550Hz。
为了保持时间的时间,我建议的2个选项:
1.将XTickCount的数量更改为对应于新频率(可以是正或负二角形)。这可能会影响使用滴答数的其他功能。
2.基于基本频率增加刻度计数(应为频率的最低公共除数)。这可能需要浮动操作以具有正确的精度。

有没有其他人遇到过这个时间问题?
无论刻度频率如何,不断运行时间的最佳解决方案是什么?
校准任务的原因是什么?我看到了,如果我们没有改变tick_rate_hz,一切都好。

提前感谢您的回复和建议。

设备:
mt_dialog.
离线
最后一次露面:4个月4天前
职员
加入:2015-06-08 11:34
嗨cmarius,

嗨cmarius,

我不太了解这个问题或你究竟在做什么,你是否执行了单独的RCX校准?您提到的tick_rate_hz变量是freertosconfig.h文件中的configtick_rate_hz?您能否提供更多您想要做的信息。

应定期调用校准任务,以便进行校准的RCX(当RCX用作LP时钟时),如果未调用RCX将漂移。

谢谢mt_dialog.

CMARIUS.
离线
最后一次露面:3年3个月前
加入:2017-11-13 07:23
你好,

你好,

那是正确的。freertosconfig.h文件中的configtick_rate_hz被定义为rcx_tick_rate_hz,它由sys_clock_mgr校准修改。
我们正在使用RCX作为LP时钟,但频率的变化会影响转换Tick_to_ms。

我们应该更新RCX,但避免更改Tick_Rate_Hz吗?
如果我们还使用滴答率更新RCX以来,是否有另一个修复程序以自拍更新?

谢谢。

mt_dialog.
离线
最后一次露面:4个月4天前
职员
加入:2015-06-08 11:34
嗨cmarius,

嗨cmarius,

如上所述,RCX无法生成稳定频率(并且它也会在温度上变化)这就是设备需要以稳定间隔校准RCX的原因,它测量RCX的频率并计算适当的值以进行刻度周期近似的2ms,以保持蜱稳定。因此,RCX_Tick_Rate_Hz将在刻度为500Hz的刻度周期的Hz中保持值,以便有2ms时段。因此,由于RCX频率不是稳定的,因此SW将尝试执行此操作以补偿该变更,这就是为什么RCX_Tick_Rate_Hz变化。这函数是get_optimud_tick_rate(),并且据我所知,没有可靠的方法来获得这样的准确时间,因为RCX不是一个稳定的时钟,即使您更新RCX但不是Tick_Rate_Hz,然后,由于计算将有效(没有负数Δ的计算,因此您将获得正确衡量时间的幻觉,但它们仍然不会代表实际时间。您可以尝试使用以保持时间并更精确的是使用RTC_Get()函数。

谢谢mt_dialog.