ds17285/ds17287
15 的 38
更新 循环
这 serialized rtc executes 一个 更新 循环 once per 第二 regardless 的 这 设置 位 在 寄存器 b.
当 这 设置 位 在 寄存器 b 是 设置 至 1, 这用户 copy 的 这 翻倍-缓冲 时间, calendar, alarm,
和 消逝 时间 字节 是 frozen 和 做 不 更新 作 这 时间 increments. 不管怎样, 这 时间 countdown
chain 持续 至 更新 这 内部的 copy 的 the 缓存区. 这个 特性 准许 这 时间 至 维持
精度 独立 的 读 或者 writing 这 时间, calendar, 和 alarm 缓存区 和 也 guarantees 那
时间 和 calendar 信息 是 consistent. 这 更新 循环 也 比较 各自 alarm 字节 和 这
相应的 时间 字节 和 issues 一个alarm 如果 一个 相一致 或者 如果 一个 “don’t care” 代号 是 呈现 在 所有 alarm
locations.
那里 是 三 方法 那 能 handle 进入 的这 rtc 那 避免 任何 possibility 的 accessing
inconsistent 时间 和 calendar 数据. 这 第一 方法 使用 这更新-结束 中断. 如果 使能, 一个
中断 occurs 之后 每 更新 cycle 那 indicates 那 在 999ms 是有 至 读 有效的 时间 和
日期 信息. 如果 这个 中断 是使用, 这 irqf 位 在 寄存器 c 应当 是 cleared 在之前 leaving 这
中断 routine.
一个 第二 方法 使用 这 更新-在-progress 位 (uip) 在寄存器 一个 至 决定 如果 这 更新 循环 是 在
progress. 这 uip 位 脉冲 once 每 第二. 之后 the uip 位 变得 高, 这 更新 转移 occurs
244µs 后来的. 如果 一个 低 是 读 在 这 uip 位, 这 美国er 有 在 least 244µs 在之前这 时间/calendar 数据 是
changed. 因此, 这 用户 应当 避免 中断 service routines 那 将 导致 这 时间 需要 至
读 有效的 时间/calendar 数据 至 超过 244µs.
这 第三 方法 使用 一个 periodic 中断 至 determine 如果 一个 更新 循环 是 在 progress. 这 uip 位 在
寄存器 一个 是 设置 高 在 这 设置 的 这 pf 位 在 寄存器 c (图示 3). periodic 中断 那
出现 在 一个 比率 的 更好 比 t
BUC
准许 有效的 时间 和 日期 信息 至 是 reached 在 各自 occurrence
的 这 periodic 中断. 这 读 应当 是 完全 在里面 (t
PI
/ 2 + t
BUC
) 至 确保 那 数据 是 不
读 在 这 更新 循环.
图示 3. 更新-结束 和 periodic 中断 relationship