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