《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > DS28DG02用戶指南

DS28DG02用戶指南

2008-01-28
作者:美信公司

摘? 要:DS28DG02是帶有PIO、實時時鐘(RTC)、復位、電池監控器和看門狗的2kb SPI? EEPROM,它組合了便攜式設備和嵌入式應用中需要的多種功能。本應用筆記對產品數據資料進行補充說明,給出SPI接口及其寫保護方案的詳細信息,闡述怎樣使用器件的12個PIO和RTC鬧鐘功能。文檔還包括電池選擇指南、RTC晶振" title="晶振">晶振焊盤屏蔽,以及報警事件的軟件響應等。

通信接口

DS28DG02是從機EEPROM器件,通常由微控制器" title="微控制器">微控制器構成的主機利用它通過串行外設接口(SPI)來訪問其資源。SPI最初由Motorola針對MC68HCxx系列微控制器而建立。表1列出了標準SPI信號名稱以及它們的功能。

表1. SPI信號名稱

Motorola名稱 功能 其他名稱
SCLK
串行時鐘,推挽驅動,由主機產生。如果滿足上升時間和下降時間規范,可以使用開漏驅動。 SCK, SK, C
MISO
從機至主機數據線,“主機輸入,從機輸出”。由從機驅動的高阻抗推挽輸出連接至主機的串行輸入。 SO, DO, Q
MOSI
主機至從機數據線,“主機輸出,從機輸入”。由主機驅動的高阻抗推挽輸出連接至從機的串行輸入。 SI, DI, D
低電平有效SS
從機選擇,推挽輸出,由主機產生。 CSZ, 低電平有效CS

基本的SPI通信在主機和從機同時采用了移位寄存器。移位寄存器的輸入和輸出相連,形成一個環回,如圖1所示。時鐘信號在主機驅動下,將8比特串行數據塊由主機傳送至從機,同時由從機傳送至主機,從而實現了SPI全雙工協議。但是,大部分SPI從機,包括DS28DG02,在接收或者發送數據前,首先需要一條命令。同樣,在半雙工模式下,數據由主機傳送到從機或者由從機傳送到主機。

圖1. SPI通信概念
圖1. SPI通信概念

SPI規范定義了四種模式,由SPI主機中的控制位CPOL和CPHA進行選擇。在怎樣參考這些模式上還沒有標準。表2列出了SPI文檔中常用的模式定義。

表2. SPI模式定義
SPI模式 CPOL CPHA 說明
0或者(0,0)
0
0
時鐘空閑狀態為低電平。在時鐘上升沿采集數據,在時鐘下降沿移位輸出。
1或者(0,1)
0
1
時鐘空閑狀態為低電平。在時鐘下降沿采集數據,在時鐘上升沿移位輸出。
2或者(1,0)
1
0
時鐘空閑狀態為高電平。在時鐘下降沿采集數據,在時鐘上升沿移位輸出。
3或者(1,1)
1
1
時鐘空閑狀態為高電平。在時鐘上升沿采集數據,在時鐘下降沿移位輸出。

DS28DG02支持SPI模式(0,0)和(1,1)。這些模式中,在時鐘上升沿采集(同步輸入)數據,在時鐘下降沿移位輸出(可能會改變)。CSZ下降沿的時鐘狀態告訴DS28DG02主機使用了哪一SPI模式。如果試圖在模式(1,0)或者(0,1)中進行通信,則無法確定器件的行為。

關于SPI協議以及時序的其他信息,請參考DS28DG02數據資料中的SPI接口一節,也可以在互聯網上搜索關鍵詞“SPI slave timing”。通過網絡搜索到的文檔大部分是關于微控制器的,根據內部寄存器設置,這些微控制器能夠實現SPI主機或者從機。第三方文檔很好地介紹了SPI概念,解釋了SPI主機的設置,這些文檔有:

http://www.mct.net/faq/spi.html (一般信息)
http://www.atmel.com/dyn/resources/prod_documents/doc2585.pdf (主機設置)

寫保護方案

SPI存儲器采用3級方案來保護存儲器不會受到無意的或者未授權的改動:SPI狀態寄存器" title="狀態寄存器">狀態寄存器中的WEN位;使用SPI狀態寄存器中控制位的塊寫保護;使用引腳狀態和SPI狀態寄存器中使能位的硬件寫保護。DS28DG02獨有的寄存器寫保護和塊寫保護在同一級上,但是采用了不同的存儲器區。表3列出了控制位及其對存儲器的影響。

表3. 寫保護控制

控制位 受保護的存儲器
1
WEN 所有的可寫存儲器地址以及SPI狀態寄存器
2
BP1:BP0 地址000h至0FFh
2
RPROT 地址120h至135h
3
WPEN (結合WPZ引腳狀態) SPI狀態寄存器,僅非易失位。

1級:SPI狀態寄存器中的WEN位
上電" title="上電">上電,成功完成寫功能命令后,或者通過SPI命令WRDI (寫禁止),該位被清位。設置WEN位的唯一方法是通過SPI命令WREN(寫使能)。注意:在SPI主機出現故障時,WEN位能夠防止可寫存儲器失效。

2級:SPI狀態寄存器中的BP1:BP0位
這一常用的寫保護方法使用SPI狀態寄存器(BP1:BP0)的兩個非易失位對EEPROM的所有位、上半部分、上四分之一部分進行寫保護,也可以不進行寫保護??刂莆辉赟PI狀態寄存器中,可受到硬件寫保護。沒有硬件寫保護時,可以通過軟件控制來修改塊寫保護。注意:塊寫保護將某些EEPROM配置為只讀,而將其他的EEPROM留給主機存儲數據,在最終產品正常工作時可修改這些數據。

2級:SPI狀態寄存器中的RPROT位
這是DS28DG02的一個特殊功能,該方法使用SPI狀態寄存器的非易失RPROT位對地址120h以及更高地址范圍的用戶可寫字節進行寫保護。如果RPROT是1,對這些地址進行寫保護。這保護了RTC、RTC鬧鐘寄存器、多功能控制/設置寄存器,以及報警/狀態寄存器,防止對PIO進行寫操作。這一級寫保護并不保護PIO相關寄存器的上電默認值,這些數值存儲在10Ah至10Fh中。RPROT位在SPI狀態寄存器中,可受到硬件寫保護。沒有硬件寫保護時,可以通過軟件控制來修改RPROT。注意:寄存器寫保護可防止對RTC及其警報的意外改動,還可以防止對最終產品中定義DS28DG02功能的寄存器的改動(例如,看門狗、電池監控器、RTC)。

3級:SPI狀態寄存器中的WPEN位
該方法使用WPZ引腳以及SPI狀態寄存器中的WPEN位。該功能只保護SPI狀態寄存器的非易失位,特別是塊保護位BP1:BP0、RPROT和WPEN。WPEN位被置為1時,使能WPZ引腳來控制SPI狀態寄存器中的所有非易失位,包括WPEN。對于出廠SPI存儲器,WPEN位讀0。這樣,即使WPZ引腳連接至地,也可以對電路板測試儀上的存儲器進行編程。在最后一步中,對存儲器編程后,測試儀設置2級保護,將WPEN位寫入1,從而激活硬件寫保護。只要WPZ引腳的邏輯狀態保持為0,SPI狀態寄存器的非易失位將保持寫保護不變。要修改任一非易失位,必須將WPZ引腳的邏輯狀態改為1,例如,通過跳接器,將引腳臨時連接至VCC。注意:硬件寫保護對2級保護進行永久設置,但還是留有一個后門(WPZ引腳),以便今后的改正。

注意:寄存器寫保護被永久使能后,清除看門狗、RTC和電池警報的唯一方法是VCC再次上電。不論VCC電源如何,換掉電池后,清除多功能控制/設置寄存器和RTC及其警報寄存器。如果硬件寫保護和寄存器寫保護都被激活(RPROT = 1,WPEN = 1,WPZ引腳連接至地GND),用戶可能需要致電設備生產商,以重新配置設備,重新運行。

電池選擇

DS28DG02需要電池來維持存儲在地址134h多功能控制/設置寄存器中的配置信息,并保持RTC運行。如果VCC可永久使用,則不需要電池,VBAT引腳連接至VCC。如果VCC中斷,沒有電池備份,多功能控制/設置寄存器上電時所有位都是0。這會停止RTC,禁止時鐘鬧鐘、看門狗和電池監控器。這是正常設置,與不使用RTC和看門狗的應用無關。典型DS28DG02應用至少會使用RTC或者看門狗,因此需要電池,并對電池進行監控。

只有切斷VCC,才能節省電池功耗。有兩種情況需要注意:a) RTC振蕩器停止時(關斷,OSCE = 0);b) RTC振蕩器接通時(運行,OSCE = 1)。理論上,還有第三種情況和電池監控器有關。但是,電池監控器(IMAX = 20μA)電池最大負載每小時只持續2秒時間,因此,平均負載電流為11nA (20μA x 2/3600),比RTC關斷時的負載低兩倍。電池監控器并沒有縮短電池的使用時間,因為只有VCC工作時才進行監控,RTC和其他非易失存儲器單元由VCC進行供電,而不是電池供電。

DS28DG02的典型電池電壓為3V,由一塊鋰電池(Li+)或者兩塊串聯的氧化銀鈕扣電池進行供電。通常以mAh (毫安時)來表示這些電池的容量。通過負載電阻,測量電池電壓下降到規定閾值的時間來獲得性能指標,方法和某些應用相似。電池生產商的數據資料上有詳細信息:

http://www.panasonic.com/industrial/battery/oem/chem/lith/coin1.htm
http://www.rayovac.com/technical/pdfs/pg_lithium.pdf
http://data.energizer.com/DataSheets.aspx

假設電池和電容類似,電池的放電時間為t = Q/I。例如,如果電池為1mAh,放電電流為1μA,那么放電時間為:

式1

按照下面公式,這一結果與電池容量和放電電流之比相乘:

式2

例如,如果負載電流是10μA,48mAh電池能夠使RTC運行48/10 x 41.66,即200天。+25°C左右,RTC接通時的最大負載電流為4.7μA。因此,同樣的電池可持續使用:

式3

兩塊電池串聯可加倍電壓和容量,但并不延長電池使用時間。為確定使用時間,必須將一塊電池的容量帶到公式2中,這是因為電流流過串聯的每塊電池,以同一速率對每塊電池放電。

使用PIO

DS28DG02有12個PIO通道。在典型應用中,有的PIO被用作輸入,其他的用作輸出,而有的根本就沒有使用。在存儲器映射上“靠近”的PIO (PIO0至PIO7,PIO8至PIO11)在電路板上并不靠近。對于TSSOP,所有偶數PIO位于封裝的左側,奇數PIO位于封裝的右側。對于TQFN,3個偶數PIO位于封裝西側,3個奇數PIO位于封裝東側,剩余的6個PIO,包括奇數和偶數,位于封裝的南側。這樣看起來雖然不太尋常,但是并不影響器件的使用。

如果輸出模式中沒有PIO需要吸收或者源出大電流" title="大電流">大電流,可以采用小電流輸出模式。在小電流輸出模式中,對于所有共享同一存儲器地址的PIO,同時進行PIO讀寫。如果第5至第8個PIO需要同時讀或者寫,選擇PIO通道0至通道7,以最適合電路板布板拓撲的方式,將它們分配給應用中的節點。由于大電流模式寫并不是同時進行,因此,只有優化電路板布板時采用PIO。下面的例子介紹了分配PIO通道的一種方法。

配置實例

輸出: 6
輸出類型: 4路推挽,2路開漏
輸出模式: 小電流(同時寫)
輸入: 4
反向讀
沒有使用: 2 PIO

以逆時針方向來看DS28DG02的PIO引腳分配,共享同一存儲器地址的PIO順序為0、4、6、2、3、7、5、1。這種順序和封裝類型無關。明顯靠在一起的是第6、第2、第3和第7通道。對于其他的兩路輸出,由于引腳靠近,把第0通道和第4通道分配給它們。這一方法沒有使用第1和第5通道。輸出類型按4個PIO一組進行設置,0至3,4至7以及8至11;同一組中的PIO有同樣的輸出類型。實例中的4路輸出需要采用推挽。對于剛進行的分配,這可以是第0至第3通道,或者第4至第7通道。由于沒有使用第1通道,只有第0、第2和第3通道,因此,無法滿足這種輸出類型。

為滿足輸出類型的要求,必須改變通道分配。第4至第7通道現在被用于推挽(任意選擇),第2和第3通道為開漏。這樣,沒有使用第0和第1通道。輸入被分配給第8至第11通道,它們也共享同一存儲器地址。

下一步,必須定義這一配置的上電默認寄存器值,并寫入對應的存儲器地址。下表使用以下顏色來解釋所進行的選擇。

Value resulting from configuration/application requirements
? Arbitrary assignment, "don't care" condition
? (Not assigned, reserved)

PIO輸出狀態上電默認值
ADDR
b7
b6
b5
b4
b3
b2
b1
b0
?
Hex
10Ah
0
0
1
1
1
1
0
0
3C
10Bh
0
0
0
0
0
0
0
0
00
注意:在這一例子中,假設應用程序需要第2至第5通道以邏輯1上電,第6和第7通道以邏輯0上電。

PIO方向的上電默認值
ADDR
b7
b6
b5
b4
b3
b2
b1
b0
?
Hex
10Ch
0
0
0
0
0
0
1
1
03
10Dh
0
0
0
0
1
1
1
1
0F

PIO反向讀的上電默認值(PIO0至PIO7)
ADDR
b7
b6
b5
b4
b3
b2
b1
b0
?
Hex
10Eh
0
0
0
0
0
0
0
0
00

PIO反向讀的上電默認值(PIO8至PIO11),PIO輸出類型和輸出模式
ADDR
b7
b6
b5
b4
b3
b2
b1
b0
?
Hex
10Fh
0
0
0
1
0
0
0
0
10

利用數據資料中的通信實例定義,將定義為輸出的PIO按下面序列進行更新:

SEL WREN DSEL SEL WRITEH <20h> <1 byte PIO data> DSEL

要在PIO產生波形模式,并不需要以不同的PIO數據來重復整個序列。而是發送需要的PIO數據字節;第1、第3和第5等字節被用于更新PIO。由于PIO 8至11被分配為輸入,因此,其他字節(第2、第4和第6字節等)不起作用。

下面的序列讀取被定義為輸入的PIO:

SEL READH <27h> <1 bytes PIO data> DSEL

要快速從PIO重復讀取,并不需要重復整個序列。而是使用起始地址126h,讀取需要的字節。第1、第3和第5等字節返回被定義為輸出的通道狀態。其他字節(第2、第4和第6字節等)報告被分配為輸入的PIO 8至11的數據。

PIO大電流模式

對于寫操作,PIO可以工作在小電流模式或者大電流模式下。以同樣的方式對所有的PIO線進行模式選擇。在小電流模式中,共享同一字節地址的所有PIO同時開關。此外,如果以寫入地址120h來開始訪問PIO,對于DS28DG02接收到的每一數據字節,寫地址在120h (PIO0至PIO7)和121h (PIO8至PIO11)之間切換。這種方法支持對PIO的快速寫入,因此,不需要在下一次寫訪問之前執行WREN命令。

在大電流和小電流模式下,PIO有相同的電流吸收或者源出能力。然而,在大電流模式(OTM = 1)下,PIO每次一個通道連續切換;PIO電流擺率受到有源電路的限制。大電流模式并不采用地址切換。地址是從120h遞增到121h,然后是122h,以此類推。要再次寫入地址120h,則需要新的寫序列。

如果DS28DG02有穩定的VCC供電,打開PIO后立即產生復位,感應電壓尖峰進入VCC監控器,被錯誤地認為出現電源失效。在這種情況下,要么必須使用大電流模式,要么一次開關的通道數量小于8個,以軟件模擬大電流模式,從而保證電流變化不會超過最大額定±50mA。

RTC晶振和PCB布板

各種封裝類型和尺寸都提供了32kHz表晶振。DS28DG02數據資料中的PCB布板假設晶振引腳間距和封裝(TSSOP—0.65mm;TQFN—0.50mm)引腳間距相匹配。這是非常緊湊的間距,可能不太容易獲得這么小的晶振。為適應更大的晶振,需要對PCB布板進行改動,如圖2所示。保持好保護環和局部地平面非常重要。晶振引腳X1和X2至晶振焊盤的走線應盡量對稱。

圖2. 可供選擇的另一種PCB布板
圖2. 可供選擇的另一種PCB布板

關于晶振選擇的詳細信息,請參考Maxim應用筆記#616,Considerations for Maxim Real-Time Clock Crystal Selection。該文檔還包括SMD晶振的技術數據,以及其他供應商網站的鏈接。

時鐘鬧鐘

DS28DG02能夠從每秒一次到每月一次產生RTC鬧鐘。通過ALMZ引腳發出報警,電池報警和看門狗報警也使用該引腳。作為時鐘鬧鐘的前提條件,必須運行RTC,并使能時鐘鬧鐘(OSCE = 1, CAE = 1)。

一般而言,要消除時鐘鬧鐘,時鐘狀態必須與鬧鐘寄存器中的數值相匹配。有4個RTC鬧鐘寄存器:秒、分鐘、小時、星期日期或者月日期。鬧鐘寄存器中的最高有效位是AM1至AM4,它們控制寄存器是否參與對比。地址133h的DY/DT位規定剩下的6個比特是否和RTC的星期日期或者月日期進行對比。在其他方面,鬧鐘寄存器和RTC的位分配相匹配。

定義好鬧鐘時間和頻率后,將每個比特(BCD代碼)寫入模板,將結果轉換為十六進制格式(“Hex”列),從而產生時鐘鬧鐘寄存器數據。然后,通過SPI寫序列,將獲得的數據寫入鬧鐘寄存器。下面的例子解釋了這一過程。這里的顏色表示和上面PIO一節的相同。

實例1:每小時的25分鐘30秒產生鬧鐘

ADDR
b7
b6
b5
b4
b3
b2
b1
b0
?
Hex
130h
0
0
1
1
0
0
0
0
30
131h
0
0
1
0
0
1
0
1
25
132h
1
0
0
0
0
0
0
0
80
133h
0
0
0
0
0
0
0
0
00
注意:對于每小時、每分鐘或者每秒產生鬧鐘,并不采用12/24位(地址132h和12Bh的第6位)。要在每分鐘的30秒時產生鬧鐘,將地址131h的第7位改為1。這不包括來自對比的分鐘。

實例2:24小時格式,每天在22:59:59產生鬧鐘
ADDR
b7
b6
b5
b4
b3
b2
b1
b0
?
Hex
130h
0
1
0
1
1
0
0
1
59
131h
0
1
0
1
1
0
0
1
59
132h
0
0
1
0
0
0
1
0
22
133h
1
0
0
0
0
0
0
0
80

實例3:12小時格式,在每星期的第一天6:30:00PM產生鬧鐘
ADDR
b7
b6
b5
b4
b3
b2
b1
b0
?
Hex
130h
0
0
0
0
0
0
0
0
00
131h
0
0
1
1
0
0
0
0
30
132h
0
1
1
0
0
1
1
0
66
133h
0
1
0
0
0
0
0
1
41
注意:星期日期計數器使用代碼1至7。星期日期的計數器值可任意分配。1一般分配給星期天(美國標準),也可以分配給星期一(歐洲標準)。

看門狗

CPU監控電路中一般采用看門狗。技術上,看門狗可以解釋為可重觸發單穩態工作方式。在不穩定狀態時,微控制器周期性地將正脈沖加到看門狗的觸發輸入WDI上,保持一次觸發單穩態。如果微控制器做不到這一點,看門狗超時,復位微控制器。

通過SPI狀態寄存器的WD1:WD0位來選擇DS28DG02的看門狗超時。在寄存器的寫訪問沒有被阻塞(RPROT = 0)時,向地址134h的WDE位寫入1,激活看門狗??撮T狗停止工作時,地址135h的報警和狀態寄存器的WDA位置位;時鐘鬧鐘和電池監控器共享的WDOZ引腳(默認)或者ALMZ引腳(另一選擇),以及RSTZ引腳進入低電平狀態。

裝上電池(電池安裝)或者上電復位(如果沒有電池)時禁用了看門狗(WDE = 0)。向WDE位寫入1,看門狗被激活后,即使VCC被切斷,通過電池備用電源,看門狗可一直保持工作。當VCC增大,或者WDE位被置位之后,看門狗內部計數器被清零,這樣,在看門狗需要重新觸發前,微控制器有時間完成其上電。

報警響應

在地址135h的DS28DG02報警和狀態寄存器留有6個比特來指示重要事件。在出現這類事件時,微控制器應特別對待,分別進行響應,如下所示。如果RPROT = 0,向該寄存器寫入0,所有報警被清除。

RST:復位標志 在RSTZ引腳上有脈沖時,該位被置位,例如,VCC增大時的上電復位,手動復位,或者看門狗報警等??刂破鲌绦衅湔I想妬磉M行響應。
WDA:看門狗報警 看門狗報警復位微控制器,對RST也會有相同的響應。微控制器能夠計數看門狗報警事件的次數。
CLKA:時鐘鬧鐘 對于時鐘鬧鐘,微控制器有專門的響應。
BOR:電池接通復位標志 連接電池后,多功能控制/設置寄存器、RTC以及RTC鬧鐘寄存器被清零。這是一種錯誤狀態,需要進行初始化,例如,通過用戶輸入(時間)和存儲在EEPROM中的備份數值來恢復丟失的數值。如果使能了硬件寫保護,并且RPROT = 1,除非用戶知道怎樣禁用硬件寫保護,否則需要將設備送回,以便進行維修服務。微控制器通過WPZV位來監視硬件寫保護。
POR:上電復位標志 上電復位在RSTZ引腳產生一個脈沖。微控制器執行其正常上電來進行響應。
BATA:電池報警 該報警指示備用電池接近最終使用壽命。這一狀態要求用戶注意換電池。根據不同的應用,可以對電池報警事件進行計數,達到一定計數值后,在換電池之前,設備停止工作。

結論

在需要存儲器、RTC、PIO以及電源監控器和看門狗等CPU監控功能的便攜式設備和其他應用中,DS28DG02是非常靈活并且使用方便的元件。

SPI是Motorola, Inc.的商標。

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 国产香港一级毛片在线看 | 男女交性过程视频无遮挡在线 | 免费a一毛片 | 婷婷久久综合网 | 4438x17全国最大色成网站 | 噜噜色.com | 成人黄18免费网站 | 日本黄色三级网站 | 57pao国产成视频免费播放 | 日韩天天摸天天澡天天爽视频 | 亚洲第一区在线 | 日本a视频 | 成人国产精品一级毛片视频 | 日韩在线播放中文字幕 | 天天干夜夜躁 | 手机在线观看视频你懂的 | 免费色视频| 99国产在线视频 | 中文字幕一区二区三区 精品 | 蜜桃视频成a人v在线 | 久艹在线视频 | 成人1000部免费观看视频 | 成年日韩免费大片黄在线观看 | 91成人免费视频 | 精品无码久久久久久久动漫 | 欧美日韩精品在线观看 | 精品综合久久久久久98 | a级午夜理论免费毛片 | 日韩免费网址 | yin乱的日子小说 | 日日操日日碰 | 天天碰夜夜 | 国产成人综合精品一区 | 国产三级一区二区 | 天堂在线资源网 | 亚洲精品在线影院 | 在线观看亚洲天堂 | 成年人视频在线免费播放 | 亚洲欧美日韩人成 | 最近最好的中文字幕2019免费 | 波多野结衣免费在线视频 |