0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Arduino实时时钟的制作图解

454398 来源:wv 2019-10-24 17:24 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤1:关于DS 1307

Arduino实时时钟的制作图解

简介:

除了arduino,DS1307集成电路是该项目的核心因为它充当计时器,并告知arduino什么时候应该将设备保持打开状态。 DS 1307专为计时而设计,时间相当准确,每个月大约有1分钟的错误(时间漂移)。如果您想消除这种情况,您可以选择DS3234,它的时间漂移仅为每年1分钟。对于我们的特定应用,我们可以选择DS1307本身。

DS1307的优点在于它具有备用的纽扣电池。该纽扣电池通常为CR2032。这种电池对于IC来说绰绰有余,因为DS1307的功耗非常低,因此该电池的备用电池寿命至少约为9年。

因此,现在讨论这些规格让我们谈谈交流。 DS 1307使用I²C通信与arduino通信。只需将芯片以十进制形式发送数据,使得每个十进制形式都是4位二进制数据,也称为二进制编码十进制系统。

重要引脚:

5V引脚: :当该引脚为高电平时,ds1307发送数据,为低电平时,它在备份按钮单元上运行。

GND: 这是模块的接地引脚。电池的接地和电源都连接在一起。

SCL: 这是i2c时钟引脚-与RTC通信。

SDA: 这是i2c数据引脚-与RTC进行通信。

现在,介绍已经完成。让我们开始实际制作模块。该指导书包含焊接步骤以及板上组件的放置位置。希望这种方法比仅仅提供电路图更好理解。

步骤2:组装和焊接-1

因此该模块只有2 x 3 cm的尺寸,非常紧凑。该模块具有电线连接器,但您也可以使用公头或母头接头,以便将其直接插入Arduino。无论如何,除了不焊接方波引脚之外,模块都具有所有功能。

制造模块:

步骤1:

将原型板切成上述尺寸,然后插入币形电池座。然后焊接底端以将电池固定在其位置。

第2步:

将DIP插座插入下一步固定到晶胞支架上,但如图所示,为晶振留出了空间。焊接一些引脚以将插座固定到位。

第3步:

现在将晶体振荡器插入第一个晶体振荡器附近。 DIP插座的第二个针脚,如图所示。然后如图所示进行焊接。

注意1:

此注释用于显示我的4针连接器的颜色代码仅供参考,因为您的颜色可能有所不同,请仔细检查是否已正确连接。

注2: p》

现在,我们需要使用如图所示的走线连接电池端子。这些连接提供备用电源。

步骤3:组装和焊接-2

第5步:

现在插入来自Arduino的电源引脚。正引脚连接到DS 1307的第八引脚。然后,IC和纽扣单元的接地是公共的。

步骤6:

在这一步中,我们连接来自Arduino的其他两个数据引脚,如图所示。很抱歉,因为我将模块做得很小,所以10k电阻没有孔。我将电阻器和导线都插入了相同的引脚,然后进行了焊接。

第7步:

因此,接下来插入电线,我们需要在两个引脚中分别插入10k电阻。两个电阻的另一端连接到DS 1307的电源引脚8。然后将导线焊接起来,以供参考。

步骤8:

由于我在此模块中使用了连接器,因此频繁使用会导致电线磨损。所以我用电阻器上的电线剪了一下。首先将电线插入一端并焊接以使其坚固。然后制作一个U形弯头,并使电线穿过该U形弯头,并拧紧U形弯头以获得良好的抓地力,然后再焊接另一端以形成接头。该图比文字更能说明该方法。

该模块最终完成,因此将电池和DS1307 IC都插入其插槽中。最终图显示了完整完整的模块。

步骤4:检查和设置模块

组装完模块后。将模块连接到Arduino,以便将引脚正确插入Arduino。下面给出了测试模块的程序。代码会不断通过串行端口更新时间。

为了运行模块,我们需要两个库,而在Arduino软件中则需要两个库。以下步骤使用所需的库和代码来设置Arduino软件。

导入库:

下载库“ RealTimeClockDS1307 ”并将其保存在桌面中。

打开Arduino,然后转到素描 =》 导入库 =》 添加库。

然后选择保存在桌面中的库,然后单击添加。

现在粘贴下面给出的示例代码,然后点击编译。如果编译成功,则跳过其余步骤。

如果没有导入第二个库“ Wire ”,重复相同的过程并编译代码,它将起作用。

代码正常工作:

代码是由“ David H. Brown”编写的,我只是用它来给你DS1307的简介。无论如何,Arduino与RTC模块通信并通过 Serial Monitor 每秒更新一次时间。创建者为我们提供了一个选项,用于设置发送命令“ ?”的时间。出现以下菜单。

Try these:

h## - set Hours [range 1..12 or 0..24]

i## - set mInutes [range 0..59]

s## - set Seconds [range 0..59]

d## - set Date [range 1..31]

m## - set Month [range 1..12]

y## - set Year [range 0..99]

w## - set arbitrary day of Week [range 1..7]

t - toggle 24-hour mode

a - set AM p - set PM

z - start clock Z - stop clock

q - SQW/OUT = 1Hz Q - stop SQW/OUT

该代码将帮助您设置时间以及检查模块的备用电池供电是否正常。在下一个教程中,我将向您展示如何设置LCD显示器并显示RTC模块中的时间。这是用于测试模块及其附件的代码。

#include

#include

//RealTimeClock RTC;//=new RealTimeClock();

#define Display_Clock_Every_N_Seconds 10 // n.secs to show date/time

#define Display_ShortHelp_Every_N_Seconds 60 // n.secs to show hint for help

//#define TEST_Squarewave

//#define TEST_StopStart

//#define TEST_1224Switch

int count=0;

char formatted[] = “00-00-00 00:00:00x”;

void setup() {

// Wire.begin();

Serial.begin(9600);

pinMode(A3, OUTPUT); //*** pin 16 (Analog pin 2) as OUTPUT ***

digitalWrite(A3, HIGH); //*** pin 16 (Analog pin 2) set to LOW ***

pinMode(A2, OUTPUT); //*** pin 17 (Analog pin 3) as OUTPUT ***

digitalWrite(A2, LOW); //*** pin 17 (Analog pin 3) set to HIGH ***

//*** Analog Pin settings to power RTC module ***

}

void loop() {

if(Serial.available())

{

processCommand();

}

RTC.readClock();

count++;

if(count % Display_Clock_Every_N_Seconds == 0){

Serial.print(count);

Serial.print(“: ”);

RTC.getFormatted(formatted);

Serial.print(formatted);

Serial.println();

}

if(count % Display_ShortHelp_Every_N_Seconds == 0) {

Serial.println(“Send ? for a list of commands.”);

}

#ifdef TEST_Squarewave

if(count%10 == 0)

{

switch(count/10 % 6)

{

case 0:

Serial.print(“Squarewave disabled (low impedance): ”);

RTC.sqwDisable(0);

Serial.println((int) RTC.readData(7));

break;

case 1:

Serial.print(“Squarewave disabled (high impedance): ”);

RTC.sqwDisable(1);

Serial.println((int) RTC.readData(7));

break;

case 2:

Serial.println(“Squarewave enabled at 1 Hz”);

RTC.sqwEnable(RTC.SQW_1Hz);

break;

case 3:

Serial.println(“Squarewave enabled at 4.096 kHz”);

RTC.sqwEnable(RTC.SQW_4kHz);

break;

case 4:

Serial.println(“Squarewave enabled at 8.192 kHz”);

RTC.sqwEnable(RTC.SQW_8kHz);

break;

case 5:

Serial.println(“Squarewave enabled at 32.768 kHz”);

RTC.sqwEnable(RTC.SQW_32kHz);

break;

default:

Serial.println(“Squarewave test not defined”);

}//switch

}

#endif

#ifdef TEST_StopStart

if(count%10 == 0)

{

if(!RTC.isStopped())

{

if(RTC.getSeconds() 《 45)

{

Serial.println(“Stopping clock for 10 seconds”);

RTC.stop();

}//if we have enough time

} else {

RTC.setSeconds(RTC.getSeconds()+11);

RTC.start();

Serial.println(“Adding 11 seconds and restarting clock”);

}

}//if on a multiple of 10 counts

#endif

#ifdef TEST_1224Switch

if(count%10 == 0)

{

if(count %20 == 0)

{

Serial.println(“switching to 12-hour time”);

RTC.switchTo12h();

RTC.setClock();

}

else

{

Serial.println(“switching to 24-hour time”);

RTC.switchTo24h();

RTC.setClock();

}

}

#endif

}

void processCommand() {

if(!Serial.available()) { return; }

char command = Serial.read();

int in,in2;

switch(command)

{

case ‘H’:

case ‘h’:

in=SerialReadPosInt();

RTC.setHours(in);

RTC.setClock();

Serial.print(“Setting hours to ”);

Serial.println(in);

break;

case ‘I’:

case ‘i’:

in=SerialReadPosInt();

RTC.setMinutes(in);

RTC.setClock();

Serial.print(“Setting minutes to ”);

Serial.println(in);

break;

case ‘S’:

case ‘s’:

in=SerialReadPosInt();

RTC.setSeconds(in);

RTC.setClock();

Serial.print(“Setting seconds to ”);

Serial.println(in);

break;

case ‘Y’:

case ‘y’:

in=SerialReadPosInt();

RTC.setYear(in);

RTC.setClock();

Serial.print(“Setting year to ”);

Serial.println(in);

break;

case ‘M’:

case ‘m’:

in=SerialReadPosInt();

RTC.setMonth(in);

RTC.setClock();

Serial.print(“Setting month to ”);

Serial.println(in);

break;

case ‘D’:

case ‘d’:

in=SerialReadPosInt();

RTC.setDate(in);

RTC.setClock();

Serial.print(“Setting date to ”);

Serial.println(in);

break;

case ‘W’:

Serial.print(“Day of week is ”);

Serial.println((int) RTC.getDayOfWeek());

break;

case ‘w’:

in=SerialReadPosInt();

RTC.setDayOfWeek(in);

RTC.setClock();

Serial.print(“Setting day of week to ”);

Serial.println(in);

break;

case ‘t’:

case ‘T’:

if(RTC.is12hour()) {

RTC.switchTo24h();

Serial.println(“Switching to 24-hour clock.”);

} else {

RTC.switchTo12h();

Serial.println(“Switching to 12-hour clock.”);

}

RTC.setClock();

break;

case ‘A’:

case ‘a’:

if(RTC.is12hour()) {

RTC.setAM();

RTC.setClock();

Serial.println(“Set AM.”);

} else {

Serial.println(“(Set hours only in 24-hour mode.)”);

}

break;

case ‘P’:

case ‘p’:

if(RTC.is12hour()) {

RTC.setPM();

RTC.setClock();

Serial.println(“Set PM.”);

} else {

Serial.println(“(Set hours only in 24-hour mode.)”);

}

break;

case ‘q’:

RTC.sqwEnable(RTC.SQW_1Hz);

Serial.println(“Square wave output set to 1Hz”);

break;

case ‘Q’:

RTC.sqwDisable(0);

Serial.println(“Square wave output disabled (low)”);

break;

case ‘z’:

RTC.start();

Serial.println(“Clock oscillator started.”);

break;

case ‘Z’:

RTC.stop();

Serial.println(“Clock oscillator stopped.”);

break;

case ‘》’:

in=SerialReadPosInt();

in2=SerialReadPosInt();

RTC.writeData(in, in2);

Serial.print(“Write to register ”);

Serial.print(in);

Serial.print(“ the value ”);

Serial.println(in2);

break;

case ‘《’:

in=SerialReadPosInt();

in2=RTC.readData(in);

Serial.print(“Read from register ”);

Serial.print(in);

Serial.print(“ the value ”);

Serial.println(in2);

break;

default:

Serial.println(“Unknown command. Try these:”);

Serial.println(“ h## - set Hours [range 1..12 or 0..24]”);

Serial.println(“ i## - set mInutes [range 0..59]”);

Serial.println(“ s## - set Seconds [range 0..59]”);

Serial.println(“ d## - set Date [range 1..31]”);

Serial.println(“ m## - set Month [range 1..12]”);

Serial.println(“ y## - set Year [range 0..99]”);

Serial.println(“ w## - set arbitrary day of Week [range 1..7]”);

Serial.println(“ t - toggle 24-hour mode”);

Serial.println(“ a - set AM p - set PM”);

Serial.println();

Serial.println(“ z - start clock Z - stop clock”);

Serial.println(“ q - SQW/OUT = 1Hz Q - stop SQW/OUT”);

Serial.println();

Serial.println(“ 》##,### - write to register ## the value ###”);

Serial.println(“ 《## - read the value in register ##”);

}//switch on command

}

//read in numeric characters until something else

//or no more data is available on serial.

int SerialReadPosInt() {

int i = 0;

boolean done=false;

while(Serial.available() && !done)

{

char c = Serial.read();

if (c 》= ‘0’ && c 《=‘9’)

{

i = i * 10 + (c-‘0’);

}

else

{

done = true;

}

}

return i;

}

步骤5:关于库

开始之前在液晶显示屏上显示时间。我想讨论一下我们导入的库。我省略了需要方波数据的库,因为该模块没有方波输出引脚。让我们通过一些示例来讨论该库中涉及的各种关键字。

关键字:

起始时钟:

RTC.start();

此时钟可用于启动时钟,它将从停止时开始计时。首次使用该模块以启动模块时,应使用此命令。

停止时钟:

RTC.stop();

使用此行,可以暂停该模块,并且在给出启动命令之前,时钟不会计时。它与开始时钟命令一起使用以控制模块的状态。

读取时钟:

RTC.readClock();

使用“开始”命令打开时钟后。您需要从RTC模块读取数据。这是通过readClock函数完成的。在使用后面的命令之前,此功能必不可少。

读取时间:

//integers for holding the various time values.

int hours = 0;

int minutes = 0;

int seconds = 0;

int dates = 0;

int months = 0;

int years = 0;

int date = 0;

//syntax for setting the values to the integers

RTC.readClock(); //This line is essential for the other commands to work.

//Commands for getting the individual time values.

hours = RTC.getHours();

minutes = RTC.getMinutes();

seconds = RTC.getSeconds();

dates = RTC.getDate();

months = RTC.getMonth();

years = RTC.getYear();

date = RTC.getDayofWeek();

//finally just print the stored data (refer next step)。

因此一旦readClock被调用。接下来,我们需要将各个值存储为整数。我们创建整数来保存值。 getDayofWeek函数提供星期几。第一天为星期一,最后一天为星期日。请注意,与前面步骤中的代码相比,此方法效率很低,但这将有助于您了解库中各种功能的工作。

注意:

//extra code for finding out whether its AM or PM when the clock is in 12h mode.

//declare an integer and string.

int AP = 0;

String TZ;

//then read the data from the module.

ampm = RTC.isPM();

//use an if loop to find out whether its AM or PM.

if(ampm == 1)

{

am = “PM”;

}

else

{

am =“AM”;

}

此额外的代码行将在12小时模式下显示其上午还是下午。当您将其设置为24小时制时,请删除此代码。

写时间:

RTC.setHours(4);

RTC.setMinutes(35);

RTC.setSeconds(14);

RTC.setDate(9);

RTC.setMonth(6);

RTC.setYear(14);

RTC.set24h();

//RTC.setAM();

RTC.setPM();

RTC.setDayofWeek(1);

因此,这些是用于设置模块时间的命令。如您所见,我已经设置了 4:35:14 PM 的时间,日期为 9/6/14 。除了这些命令外,还有set24h命令,直接将时钟设置为24小时模式,并将AM和PM设置为12小时模式。 setDayofWeek用于设置日期。

时间命令:

//These commands deal with the settings in the module.

//Checks whether the clock is running.

RTC.isStopped();

//Check whether it is AM or PM depending on the output(given above)。

RTC.isPM();

//Checks whether the clock is in 24hour mode.

RTC.is12hour();

//Toggles between the 12hour mode and 24hour mode.

RTC.switchTo24h();

以下是这些命令:控制时钟内的设置。

我已经尽我所能解释了这个库。如果发现任何缺陷或我错过的东西,请对其进行评论,以使其尽可能准确。

步骤6:显示时间(简单方法)

现在检查了模块,现在让我们开始获取要在LCD上显示的时间数据。 LCD模块可以轻松连接到Arduino。显示了用于连接LCD模块的电路图。下面显示了用于显示时间的代码。

在我制作了此代码的两个版本之前。其中一个将普通LCD连接到Arduino。这是最简单的版本,但是它将占用Arduino中的大多数引脚。因此,我想出了一个替代方案,使用移位寄存器仅使用2个引脚将数据发送到LCD模块。因此,您可以选择更方便的方式。

普通版:

更多的引脚,但是更简单!

因此,如面包板图所示,连接LCD。然后将代码上传到Arduino,日期和时间将显示在LCD显示屏中。因此,这是代码。

代码:

#include

#include

#include

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

#define Display_Clock_Every_N_Seconds 10

#define Display_ShortHelp_Every_N_Seconds 60

String tz;

int hours = 0;

int minutes = 0;

int seconds = 0;

int dates = 0;

int months = 0;

int years = 0;

int ap = 0;

void setup() {

Serial.begin(9600);

lcd.begin(16,2);

pinMode(A3, OUTPUT);

digitalWrite(A3, HIGH);

pinMode(A2, OUTPUT);

digitalWrite(A2, LOW);

}

void loop() {

RTC.readClock();

if(ap == 1)

{

tz = “PM”;

}

else

{

tz =“AM”;

}

lcd.home();

hours = RTC.getHours();

minutes = RTC.getMinutes();

seconds = RTC.getSeconds();

ap = RTC.isPM();

dates = RTC.getDate();

months = RTC.getMonth();

years = RTC.getYear();

lcd.print(hours);

lcd.print(“:”);

lcd.print(minutes);

lcd.print(“:”);

lcd.print(seconds);

lcd.print(“ ”);

lcd.print(tz);

lcd.setCursor(0, 1);

lcd.print(dates);

lcd.print(“:”);

lcd.print(months);

lcd.print(“:”);

lcd.print(years);

delay(250);

lcd.clear();

lcd.home();

lcd.print(hours);

lcd.print(“ ”);

lcd.print(minutes);

lcd.print(“ ”);

lcd.print(seconds);

lcd.print(“ ”);

lcd.print(tz);

lcd.setCursor(0, 1);

lcd.print(dates);

lcd.print(“ ”);

lcd.print(months);

lcd.print(“ ”);

lcd.print(years);

delay(250);

lcd.clear();

}

在连接RTC模块并上传代码后。液晶显示屏将在顶部显示时间,在底部显示日期。此版本对于学习基本命令很有用,并允许您在将来的项目中使用这些命令。

步骤7:显示时间(移位寄存器版本)

移位寄存器LCD版本:

此版本使用的移位寄存器模块仅使用两个就可以将数据发送到LCD引脚而不是六个引脚。可以购买此模块,但我想制造它。即将发布的链接中提供了制作模块的完整说明!因此,只需将Arduino的两个引脚连接到模块,然后上传下面给出的代码,就可以像在简单版本中一样观察到相同的输出。

CODE:

#include

#include

#include

LiquidCrystal_SR lcd(8,7,TWO_WIRE);

#define Display_Clock_Every_N_Seconds 10

#define Display_ShortHelp_Every_N_Seconds 60

String tz;

int hours = 0;

int minutes = 0;

int seconds = 0;

int dates = 0;

int months = 0;

int years = 0;

int ap = 0;

void setup() {

// Wire.begin();

Serial.begin(9600);

lcd.begin(16,2);

pinMode(A3, OUTPUT);

digitalWrite(A3, HIGH);

pinMode(A2, OUTPUT);

digitalWrite(A2, LOW);

}

void loop() {

RTC.readClock();

ap = RTC.isPM();

if(ap == 1)

{

tz = “PM”;

}

else

{

tz =“AM”;

}

lcd.home();

hours = RTC.getHours();

minutes = RTC.getMinutes();

seconds = RTC.getSeconds();

dates = RTC.getDate();

months = RTC.getMonth();

years = RTC.getYear();

lcd.print(hours);

lcd.print(“:”);

lcd.print(minutes);

lcd.print(“:”);

lcd.print(seconds);

lcd.print(“ ”);

lcd.print(tz);

lcd.setCursor(0, 1);

lcd.print(dates);

lcd.print(“:”);

lcd.print(months);

lcd.print(“:”);

lcd.print(years);

delay(250);

lcd.clear();

lcd.home();

lcd.print(hours);

lcd.print(“ ”);

lcd.print(minutes);

lcd.print(“ ”);

lcd.print(seconds);

lcd.print(“ ”);

lcd.print(tz);

lcd.setCursor(0, 1);

lcd.print(dates);

lcd.print(“ ”);

lcd.print(months);

lcd.print(“ ”);

lcd.print(years);

delay(250);

lcd.clear();

}

如果您已经有了此模块,则第二个代码使用另一个库,请使用该库使上面的代码正常工作。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 时钟
    +关注

    关注

    11

    文章

    2006

    浏览量

    135401
  • Arduino
    +关注

    关注

    191

    文章

    6535

    浏览量

    197667
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    1338实时时钟芯片:特性、设计与应用全解析

    1338实时时钟芯片:特性、设计与应用全解析 一、引言 在电子设备的世界里,实时时钟(RTC)是至关重要的组件,它为设备提供精确的时间和日期信息。今天要介绍的1338实时时钟芯片,具有超低功耗、丰富
    的头像 发表于 05-18 15:45 183次阅读

    探索CBC - EVAL - 06 EnerChip CC实时时钟评估套件

    探索CBC - EVAL - 06 EnerChip CC实时时钟评估套件 在电子设计领域,实时时钟(RTC)和备用电源解决方案的设计一直是工程师们关注的重点。今天,我们就来深入了解一下Cymbet
    的头像 发表于 05-13 12:50 153次阅读

    Adafruit PCF8523实时时钟模块:实用之选

    Adafruit PCF8523实时时钟模块:实用之选 在电子设计领域,实时时钟(RTC)是许多项目中不可或缺的组件,它能让设备准确记录时间,即便在重新编程或断电的情况下也能正常工作。今天,我们就来
    的头像 发表于 05-11 11:15 302次阅读

    Adafruit DS1307实时时钟模块:实用之选

    Adafruit DS1307实时时钟模块:实用之选 作为电子工程师,在设计项目时,实时时钟(RTC)模块是经常会用到的组件,它能让项目准确记录时间。今天就来给大家详细介绍一下Adafruit
    的头像 发表于 05-11 10:20 430次阅读

    MAX31342:低功耗实时时钟的理想之选

    MAX31342:低功耗实时时钟的理想之选 在电子设备的设计中,实时时钟(RTC)是一个至关重要的组件,它为设备提供精确的时间信息,确保系统的正常运行。今天,我们要介绍的是 Maxim 公司
    的头像 发表于 03-26 16:25 214次阅读

    深度剖析DS17285/DS17287等实时时钟芯片:功能、特性与应用

    深度剖析DS17285/DS17287等实时时钟芯片:功能、特性与应用 在电子设计领域,实时时钟(RTC)芯片是确保系统时间准确性和稳定性的关键组件。今天我们将深入探讨Maxim
    的头像 发表于 03-24 17:15 458次阅读

    深入剖析DS2417:实时时钟芯片的技术奥秘

    深入剖析DS2417:实时时钟芯片的技术奥秘 在电子设备的设计中,实时时钟(RTC)芯片扮演着至关重要的角色,它能为设备提供精确的时间信息。DS2417就是这样一款功能强大的实时时钟芯片,下面将为
    的头像 发表于 03-24 15:40 290次阅读

    深入剖析DS1347:低功耗SPI实时时钟的卓越之选

    深入剖析DS1347:低功耗SPI实时时钟的卓越之选 在电子设备的设计中,实时时钟(RTC)是一个至关重要的组件,它能够为系统提供精确的时间信息。今天,我们将深入探讨Maxim Integrated
    的头像 发表于 03-24 10:00 223次阅读

    RTC实时时钟芯片的作用

    在物联网、工业控制、车载、医疗与消费电子中,精确、连续、掉电不丢失的真实时间是系统运行的基础。RTC(Real-TimeClock)实时时钟芯片是一种独立专用计时芯片,负责提供稳定日历时钟、断电续航、定时中断与高精度时间戳。
    的头像 发表于 03-20 15:36 1078次阅读
    RTC<b class='flag-5'>实时时钟</b>芯片的作用

    RTC实时时钟芯片和时钟晶振在本质、功能和角色完全不同

    RTC实时时钟芯片(Real-Time Clock)和时钟晶振(Crystal Oscillator)在电子系统中协同工作,但本质、功能和角色完全不同。
    的头像 发表于 03-11 17:13 762次阅读
    RTC<b class='flag-5'>实时时钟</b>芯片和<b class='flag-5'>时钟</b>晶振在本质、功能和角色完全不同

    深入解析bq32000实时时钟:特性、应用与设计要点

    深入解析bq32000实时时钟:特性、应用与设计要点 在电子设备的设计中,实时时钟(RTC)是一个关键组件,它为系统提供精确的时间和日期信息。TI的bq32000实时时钟以其丰富的特性和可靠的性能
    的头像 发表于 02-09 11:25 497次阅读

    BQ32002实时时钟芯片:特性、应用与设计要点

    BQ32002实时时钟芯片:特性、应用与设计要点 引言 在电子设备的设计中,实时时钟(RTC)起着至关重要的作用,它能够为系统提供精确的时间和日期信息。BQ32002作为一款性能出色的实时时钟芯片
    的头像 发表于 02-09 11:10 366次阅读

    EPSON RX-4571LC实时时钟模块,满足紧凑型设备的精准计时

    如今可穿戴产品越来越普及功能不断增加,对设备紧凑度的要求越来越高,传统的分立式实时时钟电路已经难以满足主流设计需要,高效、小巧的RTC实时时钟模块应运而生。爱普生/EPSON是一家为应用客户提供时钟
    的头像 发表于 01-29 16:46 467次阅读
    EPSON RX-4571LC<b class='flag-5'>实时时钟</b>模块,满足紧凑型设备的精准计时

    爱普生RTC实时时钟模块解析与选型指南

    32.768kHz晶振广泛应用于各类时钟电路中,虽然价格较低的音叉晶振用得多,但如果对稳定性要求更高、在一些更精密的电子设备中往往就得需要更精准的32.768kHz有源晶振或者实时时钟模块(RTC
    的头像 发表于 01-05 16:40 1179次阅读
    爱普生RTC<b class='flag-5'>实时时钟</b>模块解析与选型指南

    实时时钟芯片与晶振的不同之处

    实时时钟芯片和晶振在电子设备中都扮演着提供时钟信号的重要角色,但它们的本质、功能和复杂程度却大相径庭。简单来说,晶振是产生稳定频率的“心脏”,而实时时钟芯片则是管理和分配这些“心跳”的“大脑”。
    的头像 发表于 07-24 17:04 1979次阅读
    <b class='flag-5'>实时时钟</b>芯片与晶振的不同之处