實時時鐘器件M41T94在配網監測終端中的應用
M41T94使用SPI串行通信接口,易于實現與具有SPI接口單片機C8051F340的數據通信。SPI接口通信是通過SDI、SDO、SCK和E等引腳實現。圖2中R54-2,R54-3和R54-4為SPI總線的上拉電阻,M41T94片選信號E引腳與C8051F340的P4.4引腳連接;M41T94的復位輸出RST引腳與C8051F340的RST連接,將C8051F340的RSTSRC.1(PORSF位)清零,禁止C8051F340內部VDD監視器作為MCU的復位源,這樣當掉電時,M41T94輸出復位信號使MCU復位,防止MCU對M41T94讀取數據錯誤。
4.2 軟件設計
C8051F340通過串行通信接口SPI控制M41T94。通信時,C8051F340選用主模式作為主機,M41T94作為從機。為了與M41T94相對應,C8051F340采用3線連接模式,不使用NSS。控制位CPHA(SPI0CN.5)=1,SCK時鐘第2個邊沿采樣數據,CPOL(SPI0CN.4)=1,空閑狀態時,SCK引腳為高電平。只有片選信號E置為低電平,C8051F340才能控制M41T94,當E變高時,通信結束。首先時鐘器件E引腳置為低電平,緊接著單片機通過SPI接口發送命令字,然后對M41T94讀取或寫入數據。對內部RAM的讀寫各有兩種方式,單字節讀寫和多字節連續讀寫。前者發送一次操作命令只讀/寫1個字節數據,后者發送1次命令可連續讀寫多個字節數據。SPI的數據傳輸是從每一個字節的最高位(MSB)開始。C8051F340對M41T94的連續讀取模式中命令字包括一個8位字節,該字節的最高位(D7)為讀/寫選擇位,D7=1時,表示對M41T94寫操作,D7=0時,表示讀M41T94數據;該字節低7位為M41T94的地址選擇位,在連續讀寫模式下,該地址為連續讀/寫的起始地址,在讀/寫過程中,地址指針自動遞增,當遞增到3Fh后,指針自動返回到首地址(00h)。當對時鐘、日歷寄存器(00~07h)讀寫,或掉電時,M41T94停止對這些寄存器(00~07h)的刷新,以保證讀寫數據的準確性。
4.2.1 初始化
C8051F340對M41T94的控制就是讀寫M41T94的寄存器和NVRAM。在M41T94讀寫前,C8051F340首先要對其初始化,即對M41T94寄存器初始化,其程序代碼如下:
4.2.2 實時時鐘掉電、上電時間
當系統掉電時,M41T94自動鎖存掉電時間,上電后讀取掉電時間和當前實時時間。其相應程序代碼如下:
5 結束語
M41T94的時鐘精度高,功耗低,掉電時可自動切換供電電源,并具有掉電時間自動鎖存、時間標定、時鐘校準等功能,因此該器件可廣泛應用于電力系統、工業控制、智能儀器儀表、消費類電子產品。
評論