跳转到主要内容

RTC时间不准确

DA1469x

2个月前

RTC时间不准确

发布的jagath5275点 7回复
0的问题

你好

我使用社交距离标签的例子与wira sdk。

我的腕带使用的是Da14695 MCU,它有LCD显示时间。

手机应用会发送HH:MM:SS和day:mon:year的时间,但是2天后的时间会比实际时间晚2分钟。

我用深度睡眠来减少当前的消耗。

谢谢你!
Jagath

2个月前

PM_Dialog

嗨jagath52,

谢谢你的问题。您能分享您在应用程序代码中使用的RTC配置吗?

这只有在DA14695处于深度睡眠状态时才会被复制?

谢谢,PM_Dialog

2个月前

jagath52 75点

你好

这是rtc开始

我已经注释了hw_rtc_set_time_clndr(),以避免设备从深度睡眠中醒来时重新初始化时间。

静态int LOG_InitTimestamp(空白)

int状态;

/*如果这是第一次设备供电*/
if (TimestampMagicValue != LOG_TIMESTAMP_INIT_MAGIC_VALUE) {
//状态= hw_rtc_set_time_clndr(&time_cfg, &calendar_cfg);

// if (Status != HW_RTC_VALID_ENTRY) {//!任何无效的条目都将导致失败
/ / ASSERT_WARNING (0);
/ /返回LOG_STATUS_INVALID_TIMESTAMP_DEFAULT_VALUES;
/ /}
/*
*指定RTC初始化已经完成
*(在设备通电时有效)。

* \注意另外,魔术值可以存储在闪存中使用
*因此设备不会在电源故障后重新初始化。
*/
TimestampMagicValue = LOG_TIMESTAMP_INIT_MAGIC_VALUE;

hw_rtc_clock_enable ();/ / !确保时钟门控被激活
hw_rtc_start ();/ / !确保时间和日历计时器都被激活

_VERBOSE_ (VERBOSE_STATE % s, __func__)
返回LOG_STATUS_OK;

这个功能接收来自移动应用程序的时间和日期

Static cts_set_time_cb(ble_service_t *svc, uint16_t conn_idx, const cts_current_time_t *time)

int状态;

/*检查通过的时间是否有效*/
如果(! cts_is_current_time_valid(时间)){
/* if not return wit error that time set was ignored */
cts_set_time_cfm (svc conn_idx CTS_ERROR_DATA_FIELD_IGNORED);
返回;

/*复制CTS时间/日期到RTC时间/日期*/
calendar_cfg。年=时间- > date_time.year;
calendar_cfg。月=时间- > date_time.month;
calendar_cfg。mday =时间- > date_time.day;
time_cfg。小时=时间- > date_time.hours;
time_cfg。分钟=时间- > date_time.minutes;
time_cfg。秒=时间- > date_time.seconds;
calendar_cfg。wday =时间- > day_of_week;

/*设置网元时间/日期为RTC */
状态= hw_rtc_set_time_clndr(&time_cfg, &calendar_cfg);

if (status != HW_RTC_VALID_ENTRY) {
/*如果检测到任何无效的条目拒绝时间更新*/
cts_set_time_cfm (svc conn_idx CTS_ERROR_DATA_FIELD_IGNORED);

/* CTS服务设置时间*/
cts_set_time_cfm (svc conn_idx ATT_ERROR_OK);

深度睡眠

我使用深度睡眠来让设备在不使用时进入睡眠状态

如果我使用深度睡眠,对rtc有什么效果

谢谢你!
Jagath

2个月前

PM_Dialog

嗨jagath52,

你正在使用的低功率时钟(LPC)是哪个?是内部的RCX,还是外部的XTAL?

但是两天后,时间会比实际时间晚两分钟

所以,DA1469x被配置为深度睡眠2天,当它醒来的时间是2分钟以下?

谢谢,PM_Dialog

2个月前

jagath52 75点

你好PM_Dialog

1.低功耗时钟是xtal 32K

#define dg_configUSE_LP_CLK (LP_CLK_32768)

2.设备会随机进入深度睡眠
a.基于gpio press
b.基于活动

3.深度睡眠可能在5分钟,1小时,甚至1天之后。

4.设备深度睡眠时间可达5分钟、1小时或超过1天

谢谢你!
Jagath

2个月前

PM_Dialog

嗨jagath52,

谢谢你的澄清。请将设备置于深度睡眠模式,约1小时后唤醒。你能在第一次唤醒时检测到RTC漂移吗?很抱歉问你这个问题,但我想知道是哪里出了问题。

谢谢,PM_Dialog

2个月前

jagath52 75点

你好

没有1或2小时的睡眠,没有漂移

谢谢你!
Jagath

2个月前

PM_Dialog

嗨jagath52,

对不起,耽误了。所以,如果你几天多次叫醒它,就可以复制这个过程?

谢谢,PM_Dialog