日韩推理片电影在线|河南农村妇女毛片|黄色一级片在线免费观看|日韩午夜电影在线观看

0 賣盤信息
BOM詢價
您現在的位置: 首頁 > 電子資訊 >基礎知識 > DS17887 3V/5V實時時鐘

DS17887 3V/5V實時時鐘

來源:
2025-04-15
類別:基礎知識
eye 2
文章創建人 拍明芯城

一、引言

DS17887是由Maxim Integrated(原Dallas Semiconductor)生產的一款高性能3V/5V實時時鐘(RTC)模塊。它集成了實時時鐘功能、非易失性存儲器(NV RAM)、電源控制電路以及多種增強特性,廣泛應用于工業控制、醫療設備、網絡接入設備、筆記本電腦等領域。本文將詳細介紹DS17887的功能、特點、引腳分配、工作原理、應用實例以及相關的驅動開發等內容。

image.png

二、DS17887概述

DS17887是DS17x87系列實時時鐘模塊中的一員,該系列還包括DS17287和DS17487。這些模塊被設計為行業標準DS12885和DS12887的后續產品,提供了更強大的功能和更高的性能。DS17887采用24引腳DIP封裝,集成了石英晶體、鋰電池以及必要的時鐘電路,構成了一個完整的、自包含的計時模塊。

  產品詳情

  DS17285, DS17485, DS17885, DS17287, DS17487以及DS17887實時時鐘(RTC)是工業標準的DS12885和DS12887的后續產品。DS17285,DS17485和DS17885 (下文以DS17x85代替)提供一個實時時鐘/日歷,一個定時鬧鐘,三個可屏蔽中斷(共用一個中斷輸出),可編程方波輸出和114字節的電池備份NV SRAM。DS17x85還集成了許多增強特性,例如硅序列號,電源開/關控制電路,和2K、4K或8K字節的電池備份NV SRAM。DS17287,DS17487和DS17887 (下文以DS17x87代替)在24引腳DIP模塊封裝內集成了晶振和鋰電池。DS17x85和DS17x87的電源控制電路允許系統通過外部激勵開啟電源,例如鍵盤或時間和日期(喚醒)鬧鐘。/PWR輸出引腳可被任一此類事件觸發,并可用于開啟外部電源。/PWR引腳受軟件控制,以便在某個任務完成后,能夠接著關斷系統電源。

  對于所有少于31天的月份,所有器件的日期都能夠在月末自動調整,并帶有閏年補償。該器件可配置為24小時或12小時格式,并且帶有AM/PM指示。精確的溫度補償電路用于監控VCC。一旦檢測到主電源失效,器件可以自動切換到備用電源。鈕扣式鋰電池可以連接到DS17x85的VBAT輸入引腳,在主電源掉電時保持有效的時間和日期。DS17x85和DS17x87還包括了VBAUX輸入,用于電源輔助功能,例如/PWR控制。該器件通過一個復用的、字節寬度接口訪問。

  應用

  嵌入式系統

  網絡集線器、橋接器和路由器

  安全系統

  電表

  特性

  集成了工業標準的DS12887 PC時鐘外加增強特性

  RTC計算秒、分、時、星期、日期、月份和年,并且具有閏年補償,有效期至2099年

  可選的+3.0V或+5.0V工作電壓

  SMI恢復堆棧

  64位硅序列號

  電源控制電路,支持系統通過日期/時間鬧鐘或鍵盤開啟電源

  晶體選擇位,允許RTC工作于6pF或12.5pF晶體

  12小時或24小時時鐘,具有帶AM和PM指示的12小時模式

  114字節通用、電池備份NV SRAM

  擴展的電池備份NV SRAM

  2048字節(DS17285/DS17287)

  4096字節(DS17485/DS17487)

  8192字節(DS17885/DS17887)

  RAM清除功能

  中斷輸出,帶6個獨立的可屏蔽中斷標志

  鬧鐘可設置為每秒一次至每天一次

  時鐘終止刷新周期標志

  可編程方波輸出

  自動電源失效檢測和切換電路

  可選擇PDIP、SO或TSOP封裝(DS17285,DS17485,DS17885)

  可選擇集成晶體和電池的DIP模塊封裝(DS17287,DS17487,DS17887)

  可選擇工業級溫度范圍

  通過UL認證

三、主要功能與特點

1. 實時時鐘功能

DS17887能夠精確計時,包括秒、分、時、日、月、年,并且具有閏年補償功能,其計時算法的有效期至2100年。這確保了時鐘在長時間運行中的準確性。

2. 多電源支持

DS17887支持+3V或+5V的工作電壓,使其能夠兼容多種不同的電源系統。此外,它還具備電源控制電路,允許系統通過外部激勵(如鍵盤輸入或時間和日期報警)來開啟電源。

3. 非易失性存儲器

該模塊內置了114字節的用戶NV RAM以及額外的8kB NV RAM,用于存儲關鍵數據。這些數據在主電源掉電時仍能保持不變,確保了數據的完整性和可靠性。

4. 增強特性

DS17887還具備多種增強特性,如64位硅序列號、SMI恢復堆棧、世紀寄存器、日期報警寄存器等。這些特性使得DS17887在復雜的應用場景中能夠發揮更大的作用。

5. 靈活的時間格式

DS17887支持12小時或24小時的時間格式,并且在12小時模式下還具備AM/PM指示功能。這為用戶提供了更加靈活的時間顯示方式。

6. 精確的溫度補償

模塊內部集成了精確的溫度補償電路,能夠監控VCC的狀態。一旦檢測到主電源失效,DS17887會自動切換到備用電源(如鋰電池),確保時鐘和數據的持續運行。

四、引腳分配與功能描述

DS17887采用24引腳DIP封裝,其引腳分配如下:


引腳號引腳名稱功能描述
1PWR電源輸出引腳,用于觸發外部電源開啟
2X1晶振輸入引腳
3X2晶振輸出引腳
4-11AD0-AD7復用的地址/數據總線引腳
12GND地引腳
13VCC主電源輸入引腳(+3V或+5V)
14SQW方波輸出引腳,提供32kHz的方波信號
15VBAUX輔助電池輸入引腳,用于驅動輔助功能
16RCLRRAM清零輸入引腳,用于清除RAM中的數據
17VBAT電池輸入引腳,連接鋰電池以維持時鐘和數據運行
18IRQ中斷請求輸出引腳,低電平有效
19KSKickstart輸入引腳,用于初始化時鐘
20RD讀數據選通引腳,低電平有效
21GND地引腳
22WR寫數據選通引腳,低電平有效
23ALE地址選通輸入引腳,高電平有效
24CS片選輸入引腳,低電平有效


五、工作原理

DS17887的工作原理主要基于其內部的實時時鐘電路、電源控制電路以及非易失性存儲器。以下是對其工作原理的詳細介紹:

1. 實時時鐘電路

DS17887內部的實時時鐘電路由石英晶體振蕩器、分頻器、計數器以及校準電路等組成。石英晶體振蕩器產生穩定的振蕩信號,經過分頻器分頻后得到秒、分、時等時間單位。計數器則對這些時間單位進行計數,從而得到當前的時間。校準電路用于對時鐘進行校準,確保時鐘的準確性。

2. 電源控制電路

電源控制電路負責監測主電源和備用電源的狀態,并根據需要切換電源。當主電源正常時,電源控制電路將主電源提供給模塊內部的各個電路。當主電源失效時,電源控制電路會自動切換到備用電源(如鋰電池),確保時鐘和數據的持續運行。

3. 非易失性存儲器

非易失性存儲器用于存儲關鍵數據,如時間、日期、報警設置等。這些數據在主電源掉電時仍能保持不變,因為非易失性存儲器具有掉電保持功能。當主電源恢復時,這些數據可以被重新讀取并使用。

六、應用實例

DS17887因其強大的功能和可靠性而被廣泛應用于各種領域。以下是一些典型的應用實例:

1. 工業控制

在工業控制系統中,DS17887可以用于記錄設備的工作時間、故障時間等關鍵信息。這些信息對于設備的維護和管理至關重要。同時,DS17887的電源控制電路還可以實現設備的遠程喚醒功能,提高系統的靈活性和可靠性。

2. 醫療設備

在醫療設備中,DS17887可以用于記錄患者的治療時間、用藥時間等關鍵信息。這些信息對于醫生的治療決策和患者的康復至關重要。此外,DS17887的高精度時鐘還可以確保醫療設備的精確運行。

3. 網絡接入設備

在網絡接入設備中,DS17887可以用于記錄設備的上線時間、下線時間等關鍵信息。這些信息對于網絡管理員的網絡管理和優化至關重要。同時,DS17887的實時時鐘功能還可以確保網絡接入設備的精確同步。

4. 筆記本電腦

在筆記本電腦中,DS17887可以用于記錄系統的啟動時間、關機時間等關鍵信息。這些信息對于用戶了解系統的使用情況以及進行系統維護至關重要。此外,DS17887的電源控制電路還可以實現筆記本電腦的定時開關機功能,提高用戶的使用體驗。

七、驅動開發

為了使用DS17887實時時鐘模塊,需要開發相應的驅動程序。以下是一個基于C語言的DS17887驅動開發示例:


#include <stdint.h>

#include <stdbool.h>



// 定義DS17887對象類型

typedef struct Ds17887Object {

uint8_t ctlReg[4];  // 控制寄存器

uint16_t dateTime[6];  // 讀取的系統時間

void (*SetCtlPin[6])(bool value);  // 控制引腳操作

void (*WriteByte)(uint16_t data);  // 寫一個字節

uint16_t (*ReadByte)(void);  // 讀一個字節

void (*SetBusDirection)(bool direction);  // 設置總線方向

void (*Delayus)(volatile uint32_t nTime);  // 延時操作

} Ds17887ObjectType;



// 初始化DS17887對象

void InitDs17887(Ds17887ObjectType *ds17887) {

// 初始化控制寄存器

for (int i = 0; i < 4; i++) {

ds17887->ctlReg[i] = 0;

}

// 初始化系統時間

for (int i = 0; i < 6; i++) {

ds17887->dateTime[i] = 0;

}

// 初始化控制引腳操作函數指針

for (int i = 0; i < 6; i++) {

ds17887->SetCtlPin[i] = NULL;

}

// 初始化讀寫字節函數指針

ds17887->WriteByte = NULL;

ds17887->ReadByte = NULL;

// 初始化設置總線方向函數指針

ds17887->SetBusDirection = NULL;

// 初始化延時操作函數指針

ds17887->Delayus = NULL;

}



// 從DS17887讀數據

static uint16_t ReadDataFromDS17887(Ds17887ObjectType *ds17887, uint16_t address) {

// 將片選信號置位,失能片選

ds17887->SetCtlPin[DS17887_CS](true);

// 將RD與WR置位

ds17887->SetCtlPin[DS17887_WR](true);

ds17887->SetCtlPin[DS17887_RD](true);

ds17887->Delayus(2);

// 置位ALE

ds17887->SetCtlPin[DS17887_ALE](true);

// 將地址數據總線的模式改為輸出

ds17887->SetBusDirection(true);

// 寫寄存器地址

ds17887->WriteByte(address);

// 將片選信號置位,使能片選

ds17887->SetCtlPin[DS17887_CS](false);

ds17887->Delayus(2);

// 復位ALE

ds17887->SetCtlPin[DS17887_ALE](false);

ds17887->Delayus(2);

// 復位RD

ds17887->SetCtlPin[DS17887_RD](false);

ds17887->Delayus(10);

// 將地址數據總線的模式改為輸入

ds17887->SetBusDirection(false);

ds17887->Delayus(40);

// 讀取數據

uint16_t readData = 0;

readData = ds17887->ReadByte();

ds17887->Delayus(4);

// 將RD置位,并將CS信號置位,失能芯片

ds17887->SetCtlPin[DS17887_RD](true);

ds17887->SetCtlPin[DS17887_CS](true);

ds17887->Delayus(4);

return readData;

}



// 向DS17887寫數據

static void WriteDataToDS17887(Ds17887ObjectType *ds17887, uint16_t address, uint16_t data) {

// 將片選信號置位,失能片選

ds17887->SetCtlPin[DS17887_CS](true);

// 將RD與WR置位

ds17887->SetCtlPin[DS17887_WR](true);

ds17887->SetCtlPin[DS17887_RD](true);

ds17887->Delayus(2);

// 置位ALE

ds17887->SetCtlPin[DS17887_ALE](true);

// 將地址數據總線的模式改為輸出

ds17887->SetBusDirection(true);

// 寫寄存器地址

ds17887->WriteByte(address);

// 將片選信號置位,使能片選

ds17887->SetCtlPin[DS17887_CS](false);

ds17887->Delayus(2);

// 復位ALE

ds17887->SetCtlPin[DS17887_ALE](false);

ds17887->Delayus(2);

// 寫數據

ds17887->WriteByte(data);

ds17887->Delayus(40);

// 將WR置位

ds17887->SetCtlPin[DS17887_WR](true);

ds17887->Delayus(4);

// 將CS信號置位,失能芯片

ds17887->SetCtlPin[DS17887_CS](true);

ds17887->Delayus(4);

}



// 獲取當前時間

void GetCurrentTime(Ds17887ObjectType *ds17887) {

// 讀取時間寄存器

for (int i = 0; i < 6; i++) {

ds17887->dateTime[i] = ReadDataFromDS17887(ds17887, TIME_REGISTER_BASE + i);

}

}



// 設置當前時間

void SetCurrentTime(Ds17887ObjectType *ds17887, uint16_t *timeData) {

// 寫入時間寄存器

for (int i = 0; i < 6; i++) {

WriteDataToDS17887(ds17887, TIME_REGISTER_BASE + i, timeData[i]);

}

}

八、總結

DS17887是一款功能強大、性能可靠的3V/5V實時時鐘模塊。它集成了實時時鐘功能、非易失性存儲器、電源控制電路以及多種增強特性,能夠滿足各種復雜應用場景的需求。通過開發相應的驅動程序,可以方便地實現對DS17887的控制和數據讀寫操作。在未來的發展中,隨著物聯網、智能家居等領域的不斷興起,DS17887等實時時鐘模塊的應用前景將更加廣闊。

責任編輯:David

【免責聲明】

1、本文內容、數據、圖表等來源于網絡引用或其他公開資料,版權歸屬原作者、原發表出處。若版權所有方對本文的引用持有異議,請聯系拍明芯城(marketing@iczoom.com),本方將及時處理。

2、本文的引用僅供讀者交流學習使用,不涉及商業目的。

3、本文內容僅代表作者觀點,拍明芯城不對內容的準確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨立判斷做出的,請讀者明確相關結果。

4、如需轉載本方擁有版權的文章,請聯系拍明芯城(marketing@iczoom.com)注明“轉載原因”。未經允許私自轉載拍明芯城將保留追究其法律責任的權利。

拍明芯城擁有對此聲明的最終解釋權。

相關資訊

資訊推薦
云母電容公司_云母電容生產廠商

云母電容公司_云母電容生產廠商

74ls74中文資料匯總(74ls74引腳圖及功能_內部結構及應用電路)

74ls74中文資料匯總(74ls74引腳圖及功能_內部結構及應用電路)

開關三極管13007的規格參數、引腳圖、開關電源電路圖?三極管13007可以用什么型號替代?

開關三極管13007的規格參數、引腳圖、開關電源電路圖?三極管13007可以用什么型號替代?

芯片lm2596s開關電壓調節器的中文資料_引腳圖及功能_內部結構及原理圖_電路圖及封裝

芯片lm2596s開關電壓調節器的中文資料_引腳圖及功能_內部結構及原理圖_電路圖及封裝

芯片UA741運算放大器的資料及參數_引腳圖及功能_電路原理圖?ua741運算放大器的替代型號有哪些?

芯片UA741運算放大器的資料及參數_引腳圖及功能_電路原理圖?ua741運算放大器的替代型號有哪些?

28nm光刻機卡住“02專項”——對于督工部分觀點的批判(睡前消息353期)

28nm光刻機卡住“02專項”——對于督工部分觀點的批判(睡前消息353期)

拍明芯城微信圖標

各大手機應用商城搜索“拍明芯城”

下載客戶端,隨時隨地買賣元器件!

拍明芯城公眾號
拍明芯城抖音
拍明芯城b站
拍明芯城頭條
拍明芯城微博
拍明芯城視頻號
拍明
廣告
恒捷廣告
廣告
深亞廣告
廣告
原廠直供
廣告