基于MSP430單片機時(shí)鐘芯片RTC-4553溫度誤差軟件補償
1、前言
本文引用地址:http://dyxdggzs.com/article/172085.htm目前新型的電子式多費率電能表已逐漸取代老式電子電能表。多費率電能表計量不同時(shí)間段的用電量,根據不同的電能費率計算出用戶(hù)使用電能費用。本文基于德州儀器的MSP430F435單片機,結合EPSON公司推出的高精度時(shí)鐘芯片RTC-4553芯片,對多費率電能表的工作時(shí)間進(jìn)行測量。由于電能表在不同地域及不同季節使用,溫差很大,存在一定的溫度漂移,造成一定的時(shí)間累積誤差。因此必須進(jìn)行適當的誤差補償,本文將基于MSP430單片機采用C 語(yǔ)言編程進(jìn)行溫度補償方法,提高計時(shí)精度。
2、系統介紹
電能表的采用什么MCU有多種方案,不少已經(jīng)投入實(shí)際使用。但是基于MSP430 單片機作為電能表主控模塊還沒(méi)有廣泛投產(chǎn)使用。用于系統時(shí)間計量的串行時(shí)鐘芯片很多,如DS1302、DS1307、PCF8485等時(shí)鐘芯片。
圖1是多費率三相電能表的時(shí)間計量部分,合理的把TI 的MSP430單片機和EPSON的 RTC-4553集合,發(fā)揮各自的優(yōu)勢,避開(kāi)復雜的外圍電路的設計,采用現成的高精度時(shí)間計量芯片。
2.1、硬件部分:
MSP430F435
T1公司的MSP430系列單片機是一種具有超低功耗的功能強大的單片機。新開(kāi)發(fā)的F系列具有Flash存儲器,在系統設計,開(kāi)發(fā)調試及實(shí)際應用上比其他MCU都有比較明顯的優(yōu)勢。
1、超低功耗
MSP430F系列運行在1MHZ時(shí)鐘的條件下時(shí),工作模式不同為0.1~400uA,工作電壓為1.8~3.6V。
2、 超強處理能力
8MIPS的CPU內核,16位×16位的硬件乘法器。
3、靈活的配置方法
MSP430 F系列具有豐富的尋址方式,只需要27條指令;片內寄存器數多,可以實(shí)現多種運算;有高效的查表處理方法。這一切保證了可以編譯出高效的程序。許多中斷,可以嵌套,使用方便。
4、片上集成外圍功能模塊
MSP430 F系列集成了較多的片上外圍設備。這些外圍設備功能相當強大:12位A/D,精密模擬比較器,硬件乘法器,2組頻率可以達到8MHZ的時(shí)鐘模塊,2個(gè)帶有許多捕獲比較的16位定時(shí)器,看門(mén)狗功能,2個(gè)可實(shí)現異步和同步及多址訪(fǎng)問(wèn)的串行通信接口,數十個(gè)可實(shí)現方向的設置及中斷功能的并行輸入,輸出端口,擁有 SPI和UASRT通訊端口。
5、 高效的開(kāi)發(fā)方式。
MSP430FX系列具有FLASH存儲器,這一特點(diǎn)使得它的開(kāi)發(fā)工具相當簡(jiǎn)便。利用單片機自身帶有的JTAG接口或片內BOOT ROM內固化的默認的加載程序載入器Bootstrap可以進(jìn)行串口或并口,通過(guò)UART將程序代碼裝入Flash 存貯器中。
可以在一臺PC及一個(gè)小JATAG控制器的幫助下實(shí)現程序的下載,方便的完成在線(xiàn)程序調試。
EPSON公司推出的RTC-4553時(shí)鐘芯片。該芯片采用內置晶振和獨特的數據方法,大大提高了時(shí)鐘精度和可靠性。 RTC-4553配有串行通信接口,另有30×4bit SRAM,有2000~2099的百年日歷,采用14腳SOP封裝,電池耗電2μA,時(shí)鐘誤差3 min/年且無(wú)需調整,是儀器儀表高精度時(shí)鐘的理想芯片。
RTC-4553內部結構和引腳
串行RTC-4553時(shí)鐘芯片的內部結構如圖2所示。內置32.768khz晶振,它包含I/O控制器、移位寄存器、命令及邏輯控制器,表態(tài)RAM、實(shí)時(shí)時(shí)鐘、計數器等部分。CS0為片選腳,低電平選中;WR為讀寫(xiě)使能口,高為讀,低為寫(xiě);L1~L5為出廠(chǎng)調整精度和測試用,使用中懸空;CS1為芯片掉電檢查口,可直接與系統電源連接,芯片測到該口為低時(shí),自動(dòng)進(jìn)入低功耗狀態(tài);SCK為時(shí)鐘口,SIN為數據輸入口,SOUT為數據輸出口。另外,芯片還有1 個(gè)時(shí)鐘信號輸出口TPOUT,該口可輸出1024Hz或1/10Hz的信號,以供檢測芯片的時(shí)鐘精度所用。其中RTC-4553共有46×4bit寄存器。這些寄存器分3頁(yè),第1頁(yè)共16個(gè),分別為時(shí)鐘寄存器和控制寄存器,用來(lái)存放秒、分、時(shí)、日、月、年、星期和3個(gè)特殊寄存器;第2頁(yè)、第3頁(yè)各有15 個(gè),共30個(gè)SRAM寄存器,頁(yè)面的選擇通過(guò)操作控制寄存器3的MS1、MS0位來(lái)實(shí)現。
具體如表一所示:
地址 寄存器名 D3 D2 D1 D0 記數范圍 說(shuō)明
0 S1 s8 s4 s2 s1 0-9 1秒寄存器
1 S10 0 s40 s20 s10 0-5 10秒寄存器
2 MI1 mi8 mi4 mi2 mi1 0-9 1分寄存器
3 M10 0 mi40 mi20 m10 0-5 10分寄存器
4 H1 h8 h4 h2 h1 0-9 1小時(shí) 寄存器
5 H10 PM/AM 0 h20 h10 0-2 10小時(shí)寄存器
6 W 0 w4 w2 w1 0-6 星期寄存器
7 D1 d8 d4 d2 d1 0-9 1天寄存器
8 D10 0 0 d20 d10 0-3 10天寄存器
9 MO1 mo8 mo4 mo2 mo1 0-9 1月寄存器
A MO10 0 0 0 mo10 0-1 10月寄存器
B Y1 y8 y4 y2 y1 0-9 1年寄存器
C Y10 y80 y40 y20 y10 0-9 10年寄存器
D C1 TPS 30ADJ CNTR 24/12 - 控制寄存器1
E C2 BUSY PONC ------- * - 控制寄存器2
F C3 SYSR TEST MS1 MS0 - 控制寄存器3
RTC-4553時(shí)鐘芯片各寄存器表一
其中C1寄存器的D0位用于設置顯示時(shí)間的方式,置1為24 小時(shí)方式,置0 為12小時(shí)方式顯示,C2寄存器的BUSY為0時(shí)芯片為正常狀態(tài),可讀可寫(xiě),當為1時(shí),芯片的時(shí)鐘寄存器禁止讀寫(xiě)。
上電時(shí)PONC=1,所有寄存器被初始化,時(shí)鐘指向00/01/01/12:00:00,星期日。并且所有其他寄存器清零。
寄存器C3用于設定工作方式和系統復位標志。其中MS1和MS0設置工作方式,00、01
表示選中時(shí)間寄存器和C1 、C2、C3寄存器,10和11時(shí)表示選中用戶(hù)RAM和C3寄存器。
對于時(shí)間寄存器和功能寄存器有不同的寫(xiě)操作方法。RTC-4553采用特殊的寫(xiě)指令數據寫(xiě)入,對第0頁(yè)的0D~0FH及第1頁(yè)、第2頁(yè)的寄存器的操作采用常規寫(xiě)法,地址后面的數據將原樣寫(xiě)入寄存器中,而對時(shí)間寄存器寫(xiě)操作指令只能將內部的內容加1,并自動(dòng)完成轉換,不能直接寫(xiě)入數據。芯片這種獨特的設計,防止了時(shí)鐘區數據被意外干擾出現非法數據的可能,這正是該芯片高可靠性的原因所在。圖3為時(shí)間寄存器寫(xiě)時(shí)序。
WR 和CS0為0時(shí),芯片為寫(xiě)狀態(tài)。SIN的前4位是寄存器地址,隨著(zhù)SCK腳上的時(shí)鐘變化,內部寄存器的數據將出現在SOUT輸出端口上。數據在SCK上升沿輸入,在下降沿輸出。前4位是所選寄存器的地址,后4位是寄存器的數據,即時(shí)間值。一次操作完成后其內部的內容加1,這是該款時(shí)鐘芯片的特殊操作所在。
在片選擇中芯片,WR置高時(shí),芯片處于讀出狀態(tài),輸入需要8個(gè)時(shí)鐘,4個(gè)用來(lái)輸入地址;輸出數據也需要8個(gè)時(shí)鐘,包括4個(gè)地址位4個(gè)數據位。數據在 SCK上升沿輸入,在下降沿輸出。寄存器的地址由SIN腳輸入,頁(yè)面由MS0、MS1決定。圖4為讀時(shí)序圖。
評論