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

任务介绍

本次任务的核心目标是开发一款尺寸严格限制在40mm×40mm以内的紧凑且功能全面的实时时钟模块。该模块需具备精确的实时时钟功能,能够记录当前时间信息,并集成日历功能。在接口设计上,采用I2C通信协议,该协议以硬件连接简洁、数据传输高效及低功耗著称。关键组件的选择需确保在DigiKey官网有货且正常售卖,以保障器件的可获得性和质量。实时时钟模块为独立的模块。

模块介绍

设计思路

本次设计的实时时钟模块是一个单独模块的要求,需要再固定尺寸内实现,实际上主要限制的内容就是接口和备电座,芯片的体积是完全没有问题的,这个单独的模块实际上也是一个功能的拓展板,通过2.54的排针进行控制接口连接。

功能介绍

本次设计实时时钟模块的主要功能:

输出日历信息;

2.54mm接口;

支持备电。

硬件介绍

本次选择的是TI的BQ32000,bq32000具备自动切换备用电源功能,可通过I2C接口支持最高400kHz的串行时钟通信。支持使用电容或不可充电电池作为后备电源,确保断电时仍能持续计时。该芯片采用32.768kHz晶体振荡器,提供-63ppm至+126ppm的可编程精度调整,并集成振荡器故障检测功能,能通过OF标志位实时反馈时钟状态,同时支持通过STOP位远程关闭振荡器。其8引脚SOIC封装设计适合紧凑空间,工作温度范围覆盖-40℃至85℃,适用于消费电子、智能设备等场景。芯片内部时间寄存器每秒同步更新,所有数据同步写入以避免时间误差,并自带闰年自动补偿功能,确保长期计时的准确性。

设计框图


0


原理图和PCB介绍


0

原理图


0

PCB

芯片的引脚分布还是挺合理的,将可以控制的引脚都引出来了,焊接后的实物图如下:


0

软件调试

本次设计的模块是一个实时时钟功能模块,用于精确时间获取的,我们可以通过一个主控单元进行IIC通信控制,这里我们选择的事Arduino Nano板子,功能模块的接口线序如下:

管脚属性

管脚名

管脚编号

P

3.3V

1

P

GND

2

I/O

IRQ

3

I/O

SCL

4

I/O

SDA

5

这里我们对Arduino Nano功能板进行了一下扩展,根据功能需求连接如下:


0

在arduinoIDE中不能搜索到相关的驱动库,我们可以到github上去看一看,还是有很多的可用驱动,注意我们要手动添加库文件,主要驱动代码介绍:

#include <Wire.h>
#include <RTClib.h>

RTC_BQ32000 RTC;

void setup () {
Serial.begin(115200);
Wire.begin();
RTC.begin();

RTC.setIRQ(0); // IRQ square wave disabled
RTC.setIRQLevel(HIGH);
RTC.setCalibration(0);
RTC.setCharger(0); // Disabled
}

void loop () {
DateTime now = RTC.now();

Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();

Serial.print(" since 2000 = ");
Serial.print(now.get());
Serial.print("s = ");
Serial.print(now.get() / 86400L);
Serial.println("d");

// calculate a date which is 7 days and 30 seconds into the future
DateTime future (now.get() + 7 * 86400L + 30);

Serial.print(" now + 7d + 30s: ");
Serial.print(future.year(), DEC);
Serial.print('/');
Serial.print(future.month(), DEC);
Serial.print('/');
Serial.print(future.day(), DEC);
Serial.print(' ');
Serial.print(future.hour(), DEC);
Serial.print(':');
Serial.print(future.minute(), DEC);
Serial.print(':');
Serial.print(future.second(), DEC);
Serial.println();

Serial.println();
delay(3000);
}

模块调试效果图


0

心得体会

本次我们选择了一个实时时钟模块的设计,选择的芯片也是比较容易焊接的,毕竟手动焊接能力是有限的,所有外设还是挺全面的,引脚添加丝印指示有助于我们进行快速的连接。后续我们要继续秉承着模块设计的思想完成后续任务,再接再厉。

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