參考資料來源:
https://support.epson.biz/td/api/doc_check.php?dl=app_RX8901CE&lang=en
   Epson 技術文介紹 – AN0037 ( Sep, 2022 )
   文: 王建斌,服務於台灣愛普生科技股份有限公司
   電子零件事業部。


愛普生新款 RX8901CE 即時時鐘模組,內建時間戳記功能 與應用說明 (中)

【前文】
   在上一篇文章提到了RX8901CE即時時鐘模組內建時間戳記的基本介紹,例如,時間戳記觸發來 源、時間戳記緩衝區規劃與其相關暫存器等,這篇文章延續了上篇,並且更加深入地說明時間戳記緩衝區工作模式,FIFO模式、Direct模式與SRAM模式和其應用暫存器。
時間戳記緩衝區操作模式
   FIFO模式 (EVIN_EN.DIRMOD bit = 0, BUF1_CFG2.SRAMMOD bit = 0)
   FIFO模式的緩衝區是透過指標(pointer)控制讀/寫,即使在等待觸發訊號時也能讀取緩衝的內的 資料。在這FIFO模式中,緩衝區內所記錄的每筆時間戳記資料中,同時也包含了觸發事件來源的相關資訊,因此可以確定是哪一項觸發事件於每筆時間戳記記錄中,在讀取時間戳記的資料 前,最多可以記錄32組時間戳記。下圖一為FIFO模式中已被觸發6組時間戳記的緩衝區範例。
Stacks Image 514
   Direct模式 (EVIN_EN.DIRMOD bit = 1, BUF1_CFG2.SRAMMOD bit = 0)
   Direct模式的緩衝區規劃與上述不同,此模式將EVIN1 ~ EVIN3觸發的時間戳記資料分別單獨提 供了3組獨立的緩衝區來儲存,分別對應BUF1~BUF3。但要注意的是,此模式的緩衝區不會是 FIFO形式,也不是透過指標的方式來管理讀/寫資料。因此,在讀取緩衝區資料時,必須得停止 將時間戳記到緩衝區中。下表一為在Direct模式下的緩衝區BUF1~BUF3配置:
Stacks Image 574
   下圖二為Direct模式下每一個緩衝區皆觸發2組時間戳記的範例。
Stacks Image 520
SRAM模式
   時間戳記緩衝區可以透過bank 6作為SRAM使用並進行讀/寫,SRAM由16 bytes × 16 pages組 成,透過指定要存取的頁(pages),可以藉由Bank 6(位址0x60 ~ 0x6F)自由地從中的16個位址讀/寫,SRAM存取暫存器設定方法如下:
設定BUF1_CFG2.SRAMMOD = 1 (設定為SRAM模式)
設定BUF1_CFG2.RDPAGE[3:0] (指定SRAM的page(0x0 ~ 0xF))
   下圖三為Bank 6在SRAM模式下的暫存器配置:
Stacks Image 526
 寫入時間緩衝區
   RX4801CE/RX8901CE提供了兩種寫入緩衝區模式,對於緩衝區已滿的狀態下有不同的動作方式。
可覆寫模式 (Over-Write Enable)
   在覆寫模式下,資料從緩衝區被讀取前,若緩衝區資料已額滿時,最新的一筆時間戳記會從最舊的位址開始覆蓋。
   透過下列暫存器(OVerWriteENable)設定可以進入覆蓋模式:
BUF1_CFG1.OVWEN = 1 (設定FIFO模式/BUF1可以寫入)
BUF2_CFG1.OVWEN = 1 (設定BUF2可以寫入)
BUF3_CFG1.OVWEN = 1 (設定BUF3可以寫入)
   若上述暫存器設定為1後發生緩衝區覆蓋的情況時,旗標BUF_OVWF.BUFnOVWF會為1.
禁止覆寫模式
   當緩衝區已額滿時被觸發時間戳記時,最新的那一筆時間戳記會被捨棄,而原本已存在緩衝區的資料仍然會保留,暫存器設定如下:
   BUFn_CFG1.OVWEN = 0 (緩衝區禁止寫入)
【操作方式流程】
初始化設置
   1. 取消事件觸發中斷,避免在初始化時間戳記時發生不必要的事件觸發中斷:
    - TSTP_INTE.EIE = 0 (關閉時間戳記事件觸發中斷)
   2. 選擇緩衝區為FIFO模式或Direct模式:
    - EVIN_EN.DIRMOD (0:FIFO模式 / 1:Direct)
   3. 設定EVIN外部事件偵測輸入條件,EVINn_CFG和EVINnFLT暫存器設定如下:
    - EVINn_CFG.PUPD[2:0]
   (選擇EVINn引腳內部的上拉/下拉電阻,可參考上篇文章內的表一)
    - EVINn_CFG.POL[1:0]
   (選擇偵測信號邊緣觸發條件選擇,可參考上篇文章內的表三)
    - EVINn_FLT.FLT[5:0]
   (設定輸入雜訊濾波時間,可參考上篇文章內的表二)
   4. 設定中斷
   需使用外部事件輸入觸發中斷時,請參考下列暫存器EVNT_INTE設定
    - EVNT_INTE.EVINnIEN (0:關閉 / 1:啟用EVINn外部事件輸入中斷)
   需使用內部狀態事件偵測中斷時,請參考下列暫存器EVNT_INTE設定:
    - EVNT_INTE.VBATLIEN (0:關閉 / 1:啟用 VBAT電壓下降偵測中斷)
    - EVNT_INTE.VTMPLIEN (0:關閉 / 1:啟用 VDET2電壓下降偵測中斷)
    - EVNT_INTE.VDDLIEN (0:關閉 / 1:啟用 V-DET1電壓下降偵測中斷)
    - EVNT_INTE.OSCSTPIEN (0:關閉 / 1:啟用 內部振盪器停止振盪偵測中斷)
   5. 設定緩衝區
   使用FIFO模式(BUF1),請參考下列暫存器設定:
    - BUF1_CFG1.OVWEN (0:禁止 / 1:可以寫入緩衝區)
    - BUF1_CFG1.INTCNT[5:0]
   (指定緩衝區資料計數以產生中斷,若該暫存器設定為0x0,即使有設定 BUF_INTF.BUF1F,仍不會發生任何中斷)
   使用Direct模式(BUF1 ~ BUF3)
   使用BUF1時,請參考下列暫存器設定:
    - BUF1_CFG1.OVWEN (0:禁止 / 1:可以寫入緩衝區)
    - BUF1_CFG1.INTCNT[5:0]
   (指定緩衝區資料計數以產生中斷,若該暫存器設定為0x0,即使有設定 BUF_INTF.BUF1F,仍不會發生任何中斷)
   使用BUF2時,請參考下列暫存器設定:
    - BUF2_CFG1.OVWEN (0:禁止 / 1:可以寫入緩衝區)
    - BUF2_CFG1.INTCNT[3:0] (指定緩衝區資料計數以產生中斷,若該暫存器設定為0x0,即使有設定BUF_INTF.BUF2F,仍不會發生任何中斷)
   使用BUF3時,請參考下列暫存器設定:
    - BUF3_CFG1.OVWEN (0:禁止 / 1:可以寫入緩衝區)
    - BUF3_CFG1.INTCNT[3:0]
   (指定緩衝區資料計數以產生中斷,若該暫存器設定為0x0,即使有設定BUF_INTF.BUF3F,仍不會發生任何中斷)
   6. 透過發出指令來清除事件計數器和緩衝區旗標
    - WRCMD_CFG = 0xF0 (清除指令)
    - WRCMD_TRG = 寫入任何值 (發出命令觸發)
   7. 啟用/INT引腳的事件觸發偵測中斷
    - 設定TSTP_INTE.EIE = 1 (啟用時間戳記事件觸發偵測中斷)
   8. 設定外部事件偵測輸入時間戳記
       使用EVIN引腳觸發時間戳記,請參考下列暫存器設定:
    - EVIN_EN.EVINnCPEN (0:關閉 / 1:啟用 EVINn引腳觸發時間戳記)
   9. 設定內部狀態事件偵測時間戳記
       需使用內部狀態事件偵測時間戳記,請參考下列暫存器設定:
    - CAP_EN.VBATLCPEN (0:關閉 / 1:啟用 VBAT電壓下降偵測觸發)
    - CAP_EN.VBATLCPEN (0:關閉 / 1:啟用 VDET2電壓下降偵測觸發)
    - CAP_EN.VDDLCPEN (0:關閉 / 1:啟用 V-DET1電壓下降偵測觸發)
    - CAP_EN.OSCSTPCPEN (0:關閉 / 1:啟用 內部振盪器停止振盪偵測觸發)
   10. 啟用外部事件
       需使用外部事件觸發時,請參考下列暫存器設定:
    - EVIN_EN.EVINnEN (0:關閉 / 1:啟用 來自EVINn的外部事件輸入)
    * 當EVIN_EN.EVINnEN設定0時,步驟8.的EVIN_EN.EVINnCPEN也需要為0。
【總結】
    這篇文件介紹了時間戳記緩衝區FIFO模式與Direct模式內部如何分配與其相關暫存器的設定,還有 時間戳記暫存器操作的流程,在下個章節會詳細介紹FIFO模式與Direct模式這兩種獲取時間戳記的操作。
    如有任何設計問題時,可洽詢台灣愛普生公司各授權電子零件代理商,或是與我們聯絡。
更多有關 Epson 即時時鐘模組產品和影片說明資訊,請參考,
RX8111CE ( I2C bus) :
https://www5.epsondevice.com/en/products/rtc/rx8901ce.html
RX4901CE ( SPI Bus ) : https://www5.epsondevice.com/en/products/rtc/rx4901ce.html
Epson RTC 產品線 :
https://www5.epsondevice.com/en/information/#rtc
Epson RTC 產品知識和說明 : https://www5.epsondevice.com/en/information/technical_info/rtc/
#台灣愛普生 #電子零件事業部 #石英振盪器 #石英元件 #RTC #Real Time Clock #即時時鐘
回上層