#real-time-clock #rtc #driver #i2c #no-std-driver #embedded-hal-i2c #embedded-hal

no-std rv3028c7-rtc

瑞士Micro Crystal AG生产的RV-3028-C7及类似实时时钟(RTC)no_std驱动程序

9个版本 (4个重大更新)

0.5.2 2023年12月8日
0.5.1 2023年12月8日
0.4.1 2023年11月25日
0.3.1 2023年11月19日
0.1.0 2023年11月4日

#197 in 硬件支持

Download history 41/week @ 2024-06-29 80/week @ 2024-07-27

每月120次下载

BSD-3-Clause

1.5MB
748

rv3028c7-rtc

Rust no_std 驱动程序,用于瑞士Micro Crystal AG生产的RV-3028-C7及类似实时时钟(RTC)。基于2023年11月下载的应用手册

此驱动程序提供了许多读取和写入RTC i2c寄存器的方法,但并未完全使用RTC的所有功能。

运行示例

所有示例都在运行Linux的树莓派上运行并测试过,例如使用命令行

cargo run --example rpil

从Linux命令行。

单个RTC示例

这些示例都假设有一个RTC直接连接到类似树莓派的Linux主机。

  • rpil演示了与连接到例如树莓派主机的RTC的一些基本交互。
  • event_log展示了如何配置和启用事件日志(例如,检测EVI引脚上的中断信号)
  • alarm_int展示了如何设置和获取闹钟,并检查闹钟触发
  • trickle展示了如何启用和禁用涓流充电,以及启用Vbackup切换
  • countdown演示了设置周期性倒计时定时器以重复和单次模式。
  • set_alarm展示了如何设置闹钟

多个RTC示例

这些示例都假设有多个RTC通过i2c复用器(例如TCA9548A)连接到主机

  • muxit 展示了通过类似 TCA9548A 的 i2c 复用器与两个 RTC(具有相同的 i2c 地址)进行通信。请参阅高级接线图原理图
  • comp_mux 比较了四个独立 RTC 的输出(每个 RV-3028-C7 和 DS3231 有两个),并检测它们何时偏移(通常在多天后)。请参阅相关的 四 RTC 接线图
  • trickle_mux 展示了如何配置和确认备用电压的涓流充电器。

测试

RUST_BACKTRACE=1 cargo test --tests

这将仅在任何主机平台上构建和运行测试,而不需要将真实硬件 RTC 连接到主机。请注意,当前的 cargo test 也会构建所有示例,如果您在非 Linux 平台上测试,基于 linux_embedded_hal 的示例将无法构建。

有趣的事情

这是一个带有四个 RTC 通过 i2c 复用器连接的面包板(用于比较示例

依赖项