日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深入解析 Adafruit DS3231 精密 RTC 模塊:從特性到應(yīng)用

chencui ? 2026-05-11 09:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

深入解析 Adafruit DS3231 精密 RTC 模塊:從特性到應(yīng)用

在電子設(shè)計(jì)領(lǐng)域,精確的時(shí)間記錄至關(guān)重要。無(wú)論是數(shù)據(jù)記錄器、時(shí)鐘設(shè)備,還是需要精確時(shí)間戳的應(yīng)用場(chǎng)景,一個(gè)可靠的實(shí)時(shí)時(shí)鐘(RTC)都是不可或缺的。今天,我們就來(lái)深入探討一下 Adafruit 公司推出的 DS3231 精密 RTC 模塊,看看它有哪些獨(dú)特之處,以及如何在實(shí)際項(xiàng)目中使用它。

文件下載:3013.pdf

一、DS3231 簡(jiǎn)介

DS3231 是一款 “Extremely Accurate I2C Integrated RTC/TCXO/Crystal”(極其精確的 I2C 集成實(shí)時(shí)時(shí)鐘/溫補(bǔ)晶體振蕩器/晶體)芯片。它的最大亮點(diǎn)在于將晶體集成在芯片內(nèi)部,同時(shí)配備了溫度傳感器。一般的 RTC 大多使用外部 32kHz 定時(shí)晶體,雖然這種晶體能以低電流消耗來(lái)保持時(shí)間,但在溫度變化時(shí)會(huì)有輕微的漂移。而 DS3231 的溫度傳感器可以通過(guò)增加或減少時(shí)鐘脈沖來(lái)補(bǔ)償頻率變化,從而保證時(shí)間的精確記錄。

Adafruit 為這款芯片打造了一款小巧的、適合面包板使用的開(kāi)發(fā)板,并且配備了支持即插即用的 STEMMA QT 連接器,大大降低了使用難度。此外,該模塊支持 2.3V 至 5.5V 的電源輸入,可以兼容 3.3V(如 Feather/Raspberry Pi)或 5V(如 Arduino/Metro328)的邏輯電平。只要在背面插入一枚硬幣電池,即使主電源丟失,也能實(shí)現(xiàn)數(shù)年的精確時(shí)間記錄。

二、引腳定義

電源引腳

  • Vin:電源輸入引腳。由于 RTC 可以在 2.3V 至 5.5V 的電源下工作,因此對(duì)于 3.3V 或 5V 的邏輯/電源,無(wú)需額外的穩(wěn)壓器或電平轉(zhuǎn)換器。為開(kāi)發(fā)板供電時(shí),應(yīng)提供與微控制器邏輯電平相同的電源,例如對(duì)于 5V 的 Arduino 微控制器,應(yīng)使用 5V 電源。
  • GND:電源和邏輯的公共接地端。

I2C 邏輯引腳

  • SCL:I2C 時(shí)鐘引腳,連接到微控制器的 I2C 時(shí)鐘線。該引腳具有一個(gè) 10K 上拉電阻連接到 Vin。
  • SDA:I2C 數(shù)據(jù)引腳,連接到微控制器的 I2C 數(shù)據(jù)線。同樣,該引腳也具有一個(gè) 10K 上拉電阻連接到 Vin。
  • STEMMA QT:僅適用于 STEMMA QT 版本的開(kāi)發(fā)板。這些連接器允許您連接到具有 STEMMA QT 連接器的開(kāi)發(fā)板,或者通過(guò)各種相關(guān)配件連接到其他設(shè)備。

其他引腳

  • BAT:與電池的正極焊盤(pán)相連。如果需要從硬幣電池為其他設(shè)備供電,或者使用不同的獨(dú)立電池提供備用電源,可以使用該引腳。VBat 電壓范圍為 2.3V 至 5.5V,當(dāng)主電源 Vin 丟失時(shí),DS3231 會(huì)自動(dòng)切換到備用電源。
  • 32K:32KHz 振蕩器輸出。為開(kāi)漏輸出,若要從微控制器引腳讀取該信號(hào),需要外接上拉電阻。
  • SQW:可選的方波或中斷輸出。同樣是開(kāi)漏輸出,讀取信號(hào)時(shí)需要外接上拉電阻。
  • RST:與大多數(shù)復(fù)位引腳不同,它不僅是一個(gè)輸入引腳,還可用于復(fù)位外部設(shè)備或指示主電源丟失。為開(kāi)漏輸出,但內(nèi)部有一個(gè) 50K 上拉電阻。只要 Vin 存在,上拉電阻會(huì)使該引腳電壓保持為高電平;當(dāng) Vin 下降且芯片切換到電池備用狀態(tài)時(shí),該引腳變?yōu)榈碗娖健?/li>

三、組裝步驟

準(zhǔn)備排針

如果需要,將排針裁剪至合適的長(zhǎng)度。為了便于焊接,可以將排針插入面包板,長(zhǎng)引腳朝下。

安裝開(kāi)發(fā)板

將開(kāi)發(fā)板放置在排針上,使短引腳穿過(guò)開(kāi)發(fā)板的焊盤(pán)。

焊接

確保焊接所有引腳,以實(shí)現(xiàn)可靠的電氣連接。如果您對(duì)焊接操作不太熟悉,可以參考 Adafruit 的《優(yōu)秀焊接指南》(https://adafru.it/aTk)。焊接完成后,目視檢查焊點(diǎn),并繼續(xù)后續(xù)步驟。同時(shí),不要忘記為實(shí)時(shí)時(shí)鐘安裝電池備用電源,將 CR1220 尺寸的電池安裝在開(kāi)發(fā)板背面,安裝時(shí)確保電池上的 “+” 號(hào)可見(jiàn)。

四、Arduino 使用方法

硬件連接

將開(kāi)發(fā)板輕松連接到任何具有 I2C 接口的微控制器,這里以 Arduino 為例:

  • 將 Vin(紅色線)連接到 3 - 5V 的電源,使用與微控制器邏輯電平相同的電壓。對(duì)于大多數(shù) Arduino 來(lái)說(shuō),通常是 5V。
  • 將 GND(黑色線)連接到公共電源/數(shù)據(jù)接地端。
  • 將 SCL(黃色線)引腳連接到 Arduino 的 I2C 時(shí)鐘 SCL 引腳。對(duì)于基于 UNO 和 '328 的 Arduino,該引腳也稱為 A5;對(duì)于 Mega,為數(shù)字引腳 21;對(duì)于 Leonardo/Micro,為數(shù)字引腳 3。
  • 將 SDA(藍(lán)色線)引腳連接到 Arduino 的 I2C 數(shù)據(jù) SDA 引腳。對(duì)于基于 UNO 和 '328 的 Arduino,該引腳也稱為 A4;對(duì)于 Mega,為數(shù)字引腳 20;對(duì)于 Leonardo/Micro,為數(shù)字引腳 2。需要注意的是,DS3231 的默認(rèn) I2C 地址為 0x68,且不可更改。

下載 RTCLib 庫(kù)

我們將使用 JeeLab 的優(yōu)秀 RTC 庫(kù) RTClib 的一個(gè)分支(https://adafru.it/aX2),這是一個(gè)用于從 RTC 獲取和設(shè)置時(shí)間的庫(kù)。從 Arduino 庫(kù)管理器中搜索并安裝 Adafruit 的 RTCLib 庫(kù)。如果您對(duì) Arduino 庫(kù)的安裝不太熟悉,可以參考 Adafruit 的教程:http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use(https://adafru.it/aYM)。

首次 RTC 測(cè)試

在 Arduino 未通電或未連接 USB 的情況下,從電池座中取出電池,等待 3 秒鐘后再將電池放回,這將重置 RTC 芯片。

加載示例代碼

打開(kāi)文件 -> 示例 -> RTClib -> ds3231,將代碼上傳到連接了 RTC 的 Arduino 上。上傳完成后,在串口監(jiān)視器中以 9600 波特率查看輸出。幾秒鐘后,您將看到 Arduino 檢測(cè)到 DS3231 首次上電,并根據(jù) Arduino 代碼設(shè)置時(shí)間。之后,斷開(kāi) Arduino 和 RTC 幾秒鐘(或幾分鐘、幾小時(shí)、幾周),然后再重新連接。下次運(yùn)行時(shí),您將不會(huì)再看到 “RTC lost power” 消息,而是會(huì)立即獲取到正確的時(shí)間。

讀取時(shí)間

通過(guò)調(diào)用 RTClib 庫(kù)中的 now() 函數(shù)來(lái)獲取時(shí)間,該函數(shù)返回一個(gè) DateTime 對(duì)象,其中包含了年、月、日、時(shí)、分、秒等信息。與一些 RTC 庫(kù)中分別調(diào)用 RTC.year()RTC.hour() 等函數(shù)來(lái)獲取當(dāng)前時(shí)間的方法不同,now() 函數(shù)可以一次性獲取時(shí)間的 “快照”,避免了在時(shí)間切換瞬間可能出現(xiàn)的時(shí)間不準(zhǔn)確問(wèn)題。此外,還可以通過(guò)調(diào)用 unixtime() 函數(shù)從 DateTime 對(duì)象中獲取自 1970 年 1 月 1 日午夜以來(lái)的秒數(shù)(不包括閏秒),這對(duì)于計(jì)算時(shí)間間隔非常方便。

五、CircuitPython 使用方法

硬件連接

將 DS3231 按照前面 Arduino 部分所述的方式連接到您的開(kāi)發(fā)板,即 Vin 連接到開(kāi)發(fā)板的 3.3V 或 5V 輸出,GND 連接到開(kāi)發(fā)板的接地端,SCL 連接到開(kāi)發(fā)板的 I2C SCL / 時(shí)鐘線,SDA 連接到開(kāi)發(fā)板的 I2C SDA / 數(shù)據(jù)線。

安裝 CircuitPython 庫(kù)

首先,確保您的開(kāi)發(fā)板運(yùn)行的是最新版本的 Adafruit CircuitPython 固件(https://adafru.it/tBa)。然后,從 Adafruit 的 CircuitPython 庫(kù)捆綁包(https://adafru.it/zdx)中找到并安裝必要的庫(kù)。對(duì)于非 Express 板,如 Trinket M0、Gemma M0 和 Feather/Metro M0 basic,需要手動(dòng)從捆綁包中安裝以下庫(kù):adafruit_ds3231.mpy、adafruit_bus_deviceadafruit_register。在繼續(xù)之前,請(qǐng)確保開(kāi)發(fā)板的 lib 文件夾或根文件系統(tǒng)中已經(jīng)復(fù)制了這些文件和文件夾。

代碼示例與使用

連接到開(kāi)發(fā)板的串行 REPL(https://adafru.it/pMf),在 CircuitPython 的 >>> 提示符下進(jìn)行操作。首先,導(dǎo)入必要的 board 模塊來(lái)初始化 I2C 總線:

import board
i2c = board.I2C()

對(duì)于一些沒(méi)有硬件 I2C 接口的開(kāi)發(fā)板,如 ESP8266,可能需要導(dǎo)入并使用 bitbangio 模塊:

import board
import bitbangio
i2c = bitbangio.I2C(board.SCL, board.SDA)

接下來(lái),導(dǎo)入 DS3231 模塊并創(chuàng)建一個(gè) DS3231 類(lèi)的實(shí)例:

import adafruit_ds3231
ds3231 = adafruit_ds3231.DS3231(i2c)

此時(shí),您就可以讀取和設(shè)置時(shí)鐘的時(shí)間了。通過(guò)訪問(wèn) DS3231 實(shí)例的 datetime 屬性來(lái)實(shí)現(xiàn)這一功能。例如,讀取時(shí)間可以使用以下代碼:

print(ds3231.datetime)

時(shí)間將以特殊的 Python 時(shí)間結(jié)構(gòu)(https://adafru.it/C4x)返回,該結(jié)構(gòu)具有 tm_year、tm_montm_mday 等屬性。如果時(shí)間尚未設(shè)置,默認(rèn)值為 2000 年 1 月 1 日。要設(shè)置時(shí)間,可以使用以下代碼:

import time
ds3231.datetime = time.struct_time((2017, 1, 1, 0, 0, 0, 6, 1, -1))

最后,這里提供一個(gè)完整的示例程序,將其保存為 main.py 并上傳到開(kāi)發(fā)板,您將看到時(shí)間和日期每秒打印一次到 REPL:

# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
#
# SPDX-License-Identifier: MIT
# Change the if False to if True below to set the time, otherwise it will just
# Simple demo of reading and writing the time for the DS3231 real-time clock.
# print the current date and time every second. Notice also comments to adjust
# for working with hardware vs. software I2C.
import time
import board
import adafruit_ds3231

i2c = board.I2C()  # uses board.SCL and board.SDA
rtc = adafruit_ds3231.DS3231(i2c)

# Lookup table for names of days (nicer printing).
days = ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", 
"Saturday")

# pylint: disable-msg=using-constant-test
if False:  # change to True if you want to set the time!
    # year, mon, date, hour, min, sec, wday, yday, isdst
    t = time.struct_time((2017, 10, 29, 15, 14, 15, 0, -1, -1))
    # you must set year, mon, date, hour, min, sec and weekday
    # yearday is not supported, isdst can be set but we don't do anything with it 
    at this time
    print("Setting time to:", t)  # uncomment for debugging
    rtc.datetime = t
# pylint: enable-msg=using-constant-test
print()

# Main loop:
while True:
    t = rtc.datetime
    print(
        "The date is {} {}/{}/{}".format(
            days[int(t.tm_wday)], t.tm_mday, t.tm_mon, t.tm_year
        )
    )
    print("The time is {}:{:02}:{:02}".format(t.tm_hour, t.tm_min, t.tm_sec))
    time.sleep(1)  # wait a second

六、資料下載

在進(jìn)行開(kāi)發(fā)過(guò)程中,您可能需要以下相關(guān)資料:

綜上所述,Adafruit DS3231 精密 RTC 模塊以其高精度、低功耗和易于使用的特點(diǎn),成為電子工程師在時(shí)間記錄相關(guān)項(xiàng)目中的理想選擇。無(wú)論是初學(xué)者還是有經(jīng)驗(yàn)的工程師,都可以通過(guò)簡(jiǎn)單的連接和編程,輕松實(shí)現(xiàn)精確的時(shí)間記錄功能。您在使用 DS3231 模塊的過(guò)程中遇到過(guò)哪些問(wèn)題呢?歡迎在評(píng)論區(qū)分享您的經(jīng)驗(yàn)和心得。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • RTC模塊
    +關(guān)注

    關(guān)注

    0

    文章

    15

    瀏覽量

    1658
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Adafruit DS1307實(shí)時(shí)時(shí)鐘模塊:實(shí)用之選

    Adafruit DS1307實(shí)時(shí)時(shí)鐘模塊:實(shí)用之選 作為電子工程師,在設(shè)計(jì)項(xiàng)目時(shí),實(shí)時(shí)時(shí)鐘(RTC模塊是經(jīng)常會(huì)用到的組件,它能讓項(xiàng)目準(zhǔn)確
    的頭像 發(fā)表于 05-11 10:20 ?329次閱讀

    ChronoDot - 超精確實(shí)時(shí)時(shí)鐘模塊 v2.1 評(píng)測(cè)

    - 超精確實(shí)時(shí)時(shí)鐘模塊 v2.1,產(chǎn)品 ID 為 255。 文件下載: 255.pdf 產(chǎn)品概述 ChronoDot RTC 是一款基于 DS3231 溫度補(bǔ)償 RTC(TCXO)的
    的頭像 發(fā)表于 05-11 09:15 ?282次閱讀

    探秘OEL顯示模塊規(guī)格應(yīng)用的全方位解析

    探秘OEL顯示模塊規(guī)格應(yīng)用的全方位解析 在電子設(shè)備的世界里,顯示模塊是與用戶交互的重要窗口。今天,我們就來(lái)
    的頭像 發(fā)表于 05-09 15:05 ?29次閱讀

    深入剖析SP6136評(píng)估板:特性設(shè)計(jì)全解析

    深入剖析SP6136評(píng)估板:特性設(shè)計(jì)全解析 一、引言 在電子設(shè)計(jì)領(lǐng)域,一款性能出色且功能豐富的電源轉(zhuǎn)換器評(píng)估板至關(guān)重要。SP6136評(píng)估
    的頭像 發(fā)表于 04-27 15:35 ?129次閱讀

    深入解析 TPS62351EVM-122 評(píng)估模塊入門(mén)實(shí)戰(zhàn)

    深入解析 TPS62351EVM-122 評(píng)估模塊入門(mén)實(shí)戰(zhàn) 在電子工程師的日常工作中,評(píng)估模塊
    的頭像 發(fā)表于 04-25 14:05 ?647次閱讀

    探索DS5000(T)軟微控制器模塊特性、應(yīng)用與技術(shù)解析

    探索DS5000(T)軟微控制器模塊特性、應(yīng)用與技術(shù)解析 在電子工程領(lǐng)域,微控制器是眾多設(shè)備的核心組件,其性能和特性直接影響著整個(gè)系統(tǒng)的運(yùn)
    的頭像 發(fā)表于 04-01 16:35 ?327次閱讀

    深入解析DS2188 T1/CEPT抖動(dòng)衰減器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn)

    深入解析DS2188 T1/CEPT抖動(dòng)衰減器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn) 在電子通信領(lǐng)域,時(shí)鐘和數(shù)據(jù)抖動(dòng)是影響信號(hào)傳輸質(zhì)量的關(guān)鍵因素。DS218
    的頭像 發(fā)表于 04-01 15:20 ?149次閱讀

    深入解析DS90CF384AQ:高性能LVDS接收器的應(yīng)用與特性

    深入解析DS90CF384AQ:高性能LVDS接收器的應(yīng)用與特性 在電子設(shè)計(jì)領(lǐng)域,對(duì)于顯示應(yīng)用來(lái)說(shuō),解決EMI和電纜尺寸問(wèn)題一直是個(gè)挑戰(zhàn)。而FPD - Link技術(shù)的出現(xiàn)為我們提供了一
    的頭像 發(fā)表于 03-25 15:45 ?203次閱讀

    DS3231M:高精度 I2C 實(shí)時(shí)時(shí)鐘的全方位解析

    DS3231M:高精度 I2C 實(shí)時(shí)時(shí)鐘的全方位解析 在電子設(shè)計(jì)領(lǐng)域,實(shí)時(shí)時(shí)鐘(RTC)是眾多系統(tǒng)不可或缺的一部分,它為設(shè)備提供精確的時(shí)間信息,確保系統(tǒng)的正常運(yùn)行和數(shù)據(jù)記錄的準(zhǔn)確性。DS323
    的頭像 發(fā)表于 03-24 16:05 ?362次閱讀

    探秘DS3231:高精度RTC的卓越之選

    探秘DS3231:高精度RTC的卓越之選 作為電子工程師,在設(shè)計(jì)中我們常常需要一個(gè)精準(zhǔn)且可靠的實(shí)時(shí)時(shí)鐘(RTC),而Maxim Integrated的DS3231無(wú)疑是一個(gè)值得
    的頭像 發(fā)表于 03-24 15:45 ?303次閱讀

    MAXIM DS1672 I2C 32位二進(jìn)制計(jì)數(shù)器RTC特性與設(shè)計(jì)詳解

    MAXIM DS1672 I2C 32位二進(jìn)制計(jì)數(shù)器RTC特性與設(shè)計(jì)詳解 在硬件設(shè)計(jì)領(lǐng)域,實(shí)時(shí)時(shí)鐘(RTC)是許多系統(tǒng)中不可或缺的組件,它能為設(shè)備提供準(zhǔn)確的時(shí)間信息。今天我們要
    的頭像 發(fā)表于 03-24 15:25 ?211次閱讀

    深入解析DS1501/DS1511:Y2K兼容的看門(mén)狗實(shí)時(shí)時(shí)鐘

    深入解析DS1501/DS1511:Y2K兼容的看門(mén)狗實(shí)時(shí)時(shí)鐘 在電子設(shè)備設(shè)計(jì)領(lǐng)域,實(shí)時(shí)時(shí)鐘(RTC)是一個(gè)關(guān)鍵組件,它能為系統(tǒng)提供精確的時(shí)
    的頭像 發(fā)表于 03-24 15:20 ?258次閱讀

    深入解析DS1388:多功能I2C RTC/監(jiān)控器的卓越之選

    深入解析DS1388:多功能I2C RTC/監(jiān)控器的卓越之選 在電子設(shè)計(jì)領(lǐng)域,實(shí)時(shí)時(shí)鐘(RTC)、監(jiān)控器和EEPROM等功能
    的頭像 發(fā)表于 03-24 10:15 ?297次閱讀

    深入解析DS1339 I2C串行實(shí)時(shí)時(shí)鐘:功能、特性與應(yīng)用

    深入解析DS1339 I2C串行實(shí)時(shí)時(shí)鐘:功能、特性與應(yīng)用 在電子設(shè)計(jì)領(lǐng)域,實(shí)時(shí)時(shí)鐘(RTC)是一種至關(guān)重要的組件,它能為系統(tǒng)提供精確的時(shí)間
    的頭像 發(fā)表于 03-24 09:30 ?230次閱讀

    探索xx555系列精密定時(shí)器:特性應(yīng)用的全面解析

    探索xx555系列精密定時(shí)器:特性應(yīng)用的全面解析 在電子設(shè)計(jì)領(lǐng)域,定時(shí)器是一種不可或缺的基礎(chǔ)元件,它能為各種電路提供精確的時(shí)間控制。今天
    的頭像 發(fā)表于 02-10 15:20 ?3362次閱讀
    邛崃市| 霍城县| 伊宁市| 蚌埠市| 长阳| 徐闻县| 正宁县| 班玛县| 邮箱| 双江| 福清市| 天台县| 都兰县| 威信县| 祁门县| 五华县| 昌乐县| 麻城市| 宁强县| 沅江市| 龙口市| 基隆市| 连云港市| 辽阳县| 大田县| 绍兴市| 揭阳市| 蒙自县| 望城县| 九江县| 镇宁| 马龙县| 丹江口市| 伊宁市| 沿河| 夏邑县| 务川| 隆安县| 乡城县| 绥滨县| 虎林市|