2025 Make Blocks阶段2 - 基于RV-8263设计的实时时钟模块
该项目使用了RV-8263,实现了实时时钟模块的设计,它的主要功能为:输出时间信息。
标签
实时时钟模块
Make Blocks
RV-8263
Bymyself
更新2025-09-17
5

任务介绍

本次任务的核心目标是设计一款紧凑而功能全面的实时时钟模块,其尺寸被严格限定在小于40mm*以40mm的范围内。实时时钟模块一般具备基本的实时时钟功能,能够精确记录当前的时间信息,还需要集成了日历功能,在接口设计上,需要选择了I2C通信协议,这是一种广泛应用的串行通信标准,以其简单的硬件连接、高效的数据传输速度以及低功耗特性而著称。至于主要器件的选择,为了确保器件的可获得性和质量,我们特别指定所有关键组件必须在DigiKey这一全球知名的电子元器件分销商官网上有货且处于正常售卖状态。这款实时时钟模块板卡的设计将围绕小型化、高性能、易用性开展。

模块介绍

设计思路

本次设计实时时钟模块本着模块化的思想,设计一个紧凑的的而功能全面的实时时钟模块,本次任务的电路相对还是比较简单的,找到的器件是内置晶振的,这样的稳定性会更还一点,最后通过2.54的排针或者YH2.0的接口进行连接控制。

功能介绍

本次设计是实时时钟模块集成了一下功能:

实时时钟功能;

多种接口状态输出;

硬件介绍

本次主要的器件是RV-8263-C7-32.768KHZ-20PPM-TA-QC,性价比很高,重要的是内置了32.768kHz的晶振,这样的器件可靠性会更高。还具有低功耗和工作范围宽的特性,不过我们的单片机系统一般是3.3V,建议使用3.3V供电,IIC总线最高支持400Khz。最后通过两种接口方式进行控制和状态监控,板对板连接线选择的是HY2.0-4的座,主要是供电和IIC通信,还有通用的2.54接口用于杜邦插针的连接,主要进行其他引脚的状态输出。IIC接口通过上拉10K电阻进行状态初始化。

设计框图


0

本次设计的是实时时钟模块,我们通过统一的接口进行供电和控制,控制是基于IIC进行的,整体模块还是挺简单的,通过上拉电阻进行IIC的初始状态设定,本模块提供了两种接口进行连接,尽可能将多个引脚引出。


原理图和PCB介绍


0

原理图


0

PCB

可以看到整体的模块还是挺小的,HY的座基本上就占了一半的空间,不过本次的芯片还是非常小的,对外围电路的要求也不是很高,主要是直接可以焊接上,焊接后的实物图如下:


0

软件调试

本次设计的模块只能说是一个功能模块,用于实时时钟信息获取和设定的,我们需要使用一款主控单元,通过杜邦线与HY2.0接口的线根据以下模块引脚定义进行适当的连接,基本上连接CN1就可以控制:

管脚属性

管脚名

管脚编号

管脚名

管脚属性

P

GND

CN1-1

H1-1

GND

P

P

3.3V

CN1-2

H1-2

CLKOE

I/O

I/O

SDA

CN1-3

H1-3

CLKOUT

I/O

I/O

SCL

CN1-4

H1-4

INT

I/O

这里我们选择了一款arduino开发板作为本次测试验证的主控单元,根据功能需求连接如下:


0

我们使用arduinoIDE作为主要的开发工具,通过库管理工具搜索RV-8263,可以搜到如下的库:


0

下面我们就基于这个库进行模块的控制,这个库直接使用时不行的,通过测试发现其IIC地址不对,我们需要对库文件进行一下修改,同时发现寄存器的地址也不对,我们本次主要是进行硬件的验证,只要能够正常的输出秒级变化就认为这个模块是焊接成功,调试通了,还是通过修改库来进行,打开存储的库文件(cpp文件和h文件)进行修改,需要结合数据手册进行修改才行,目前我只修改了IIC地址和秒对应的寄存器地址(这个是时间地址的起始)。

我们简单实现如下功能功能:输出按照秒变化的时间。

主要代码介绍:

打开开发板的IIC接口和串口打印功能,每秒获取事假数据并打印:

#include <FC0005748911.h> 
RV8263 rtc;
void setup()
{
Wire.begin();
Serial.begin(115200);
if (rtc.begin() == false)
{
Serial.println("Device not found. Please check wiring. Freezing.");
while(1);
}
Serial.println("RTC online!");
}

void loop()
{
if (rtc.updateTime() == true) //Updates the time variables from RTC
{
String currentTime = rtc.stringTime(); //Get the time
Serial.println(currentTime);
}
else
{
Serial.print("RTC read failed");
}
delay(1000);
}

模块调试效果图


0

心得体会

本次我们选择了一个实时时钟模块的设计,整体硬件电路设计还是挺简单的,软件验证选择了arduino,虽然支持这个实时时钟,不过还是有很多的不匹配的地方,大概率是厂家改了不过库没有对应升级,这里我们选择了最小变量修改库,如果想要全功能建议还是根据数据手册详细改一下,目前能满足基本的时间功能。

附件下载
RTC-RV-8263.kicad_pcb
RTC-RV-8263.kicad_sch
RV-8263.zip
FC0005748911.zip
团队介绍
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号