AT45DB161D_中文資料_第1頁
AT45DB161D_中文資料_第2頁
AT45DB161D_中文資料_第3頁
AT45DB161D_中文資料_第4頁
AT45DB161D_中文資料_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、SPI 接口的 FLASH ROM AT45DB161D 的驅(qū)動方法(1)芯片介紹AT45DB161D 是串行接口的閃存芯片,可工作在 2.5V2.7V,可廣泛應(yīng)用于數(shù)據(jù)語音、圖像、程序代碼數(shù)據(jù)存儲中。AT45DB161D 支持 RapidS 串行接口,適用于高速場合。RapidS串行接口是與 SPI 相兼容的,速度可達到 66MHz。它包含有 17,301,504 個位,被組織為 4096 個頁,每個頁 512 或 528 個字節(jié)。除了主存儲器,AT45DB161D 還包括兩個 SRAM 數(shù)據(jù)緩沖區(qū),每個緩沖區(qū) 512/528 個字節(jié)。在主存儲器正在編程時,緩沖區(qū)是允許接收數(shù)據(jù)的,并且支持數(shù)

2、據(jù)流式寫入。與并行 FLASH 儲存器不同,它采用 RapidS 串行接口,從而大大減少了可用引腳數(shù)量,同時也提高了系統(tǒng)可靠性,降低了開關(guān)噪聲,縮小了封裝體積??梢詰?yīng)用于商業(yè)、工業(yè)等需要高密度、低引腳數(shù)、低電壓與低功耗的應(yīng)用場合。AT45DB161D 允許簡單的在系統(tǒng)重新編程,而無需輸入高編程電壓。芯片可以采用 2.5V3.6V 或 2.7V3.6V 單電源供電,進行編程與讀取操作。它可以通過#CS 來進行使能,并通過三線接口(SI、SO、SCK)進行數(shù)據(jù)通信。(2)引腳配置與封裝1.芯片封裝圖2.引腳功能詳述符號名稱與功能有效電平類型#CS片選:#CS 用以選中芯片。當#CS 被LOW輸入設(shè)

3、置為無效狀態(tài)時,芯片則不被選中,并且處于閑置狀態(tài)(不是深度睡眠狀態(tài)),輸出引腳 SO 處于高阻態(tài)。當芯片未被選中時,從輸入引腳 SI輸入的數(shù)據(jù)將不被接受。#CS 引腳上的下降沿將會啟動一個操作,而上跳沿則會結(jié)束一個操作。在一個內(nèi)部操作如芯片內(nèi)部的編程或擦除周期內(nèi),芯片不會進入閑置狀態(tài),直到操作完畢。SCK串行時鐘:此引腳用來向芯片提供時-輸入鐘信號,有來控制數(shù)據(jù)流的出入。SI引腳上的命令、地址與輸入數(shù)據(jù)在時鐘 SCK 的上升沿被寫入,而 SO 引腳上的輸出數(shù)據(jù)則在時鐘的下降沿變化。SI串行輸入:SI 引腳用來向芯片以移-輸入位方式寫入數(shù)據(jù)。SI 引腳上的所有數(shù)據(jù)輸入包括命令與地址。SI 上的數(shù)

4、據(jù)在時鐘的上升沿寫入芯片。SO串行輸出:SO 引腳用來從芯片以移-輸出位方式輸出數(shù)據(jù)。SI 上的數(shù)據(jù)在時鐘的下降沿變化。#WP寫保護:當#WP 被設(shè)置為有效時芯片LOW輸入的扇區(qū)將被保護起來,以防止編程與擦除對數(shù)據(jù)的破壞。但是扇區(qū)保護使能與扇區(qū)死鎖命令仍然可以被芯片識別。#WP 引腳在內(nèi)部被拉高,可以懸空。但是仍然建議在外部接到 VCC。#RESET復(fù)位:#RESET 引腳上的低電平會終LOW輸入止正在處理的操作并復(fù)位內(nèi)部狀態(tài)機到閑置狀態(tài)。#RESET 引腳上的低電平會使芯片一直處于復(fù)位狀態(tài)。當#RESET 上轉(zhuǎn)為高電平后,才能進行正常的操作。芯片內(nèi)部設(shè)置上電復(fù)位電路。當此引腳不用時,外部接到

5、高電平。RDY/#BUSY就緒/忙碌狀態(tài)指示:此引腳是漏極-輸出開路的輸出引腳。當芯片處于忙狀態(tài)時(內(nèi)部操作過程中)此引腳為低電平,此引腳在正常狀態(tài)下為高電平(外部接上拉電阻)。當正在進行編程/擦除操作,比較操作與頁-緩沖區(qū)傳送時,被拉低。忙狀態(tài)指示 FLASH 儲存陣列與某一個緩沖區(qū)不能被操作,而對另一個緩沖區(qū)的讀與寫操作仍然可以進行。VCC芯片電源供給-電源GND地:此引腳應(yīng)與系統(tǒng)地接在一起。-地(3)AT45DB161D 的功能框圖:(4)存儲器陣列:AT45DB161D 的儲存器陣列被分為 3 個級別的粒度,分別為扇區(qū)、塊與頁。下面的“存儲器結(jié)構(gòu)圖”對各個級別進行了分析,詳細說明了每個

6、扇區(qū)與塊的頁數(shù)。所有的編程操作都是針對于頁的。擦除操作可以作用于芯片、扇區(qū)、塊或頁。扇區(qū)結(jié)構(gòu):(扇區(qū) 0A)8 頁4096/4224字節(jié) (扇區(qū) 0B)248 頁 126,976/130,944 字節(jié)(扇區(qū) 1 )256 頁 131,072/135,168 字節(jié)(扇區(qū) 2 )256 頁 131,072/135,168 字節(jié)(扇區(qū) 14)256 頁 131,072/135,168 字節(jié)(扇區(qū) 15)256 頁 131,072/135,168 字節(jié) 塊結(jié)構(gòu):塊 0扇區(qū) 0塊 1塊 2塊 30扇區(qū) 1塊 31塊 32塊 33塊 62扇區(qū) 2塊 63塊 64塊 65塊 510塊 511頁結(jié)構(gòu):頁 0頁

7、 1塊 0頁 6頁 7頁 8頁 9塊 1頁 14頁 15頁 16頁 17頁 18頁 4093頁 4094頁 4095(5)芯片操作:芯片的操作是通過單片機的指令來完成的。指令列表與指令操作碼在后面的“指令表”中有詳細的說明。一個有效的指令由#CS 的下降沿來指示它的開始,隨后是一個有意義的 8 位操作碼與緩存區(qū)或主存儲器的地址。當#CS 為低時,由時鐘 SCK 引腳來控制由 SI 引腳寫入的操作碼與緩存區(qū)或主存儲器的地址。所有的指令、地址與數(shù)據(jù)在傳輸時都是高位在前的。528 字節(jié)模式下,緩沖區(qū)中數(shù)據(jù)的地址由 BFA9BFA0 來表示。主存儲器中數(shù)據(jù)的地址由 PA11PA0 與 BA9BA0 來

8、表示,PA11PA0 用來表示 12 位頁地址,BA9BA0 表示 10 位的頁內(nèi)字節(jié)地址。在 512 字節(jié)模式下,緩沖區(qū)中數(shù)據(jù)地址由 BFA8BFA0 來表示(A8A0 表示 08 共 9 位地址數(shù)據(jù),512 個字節(jié))。主存儲器中數(shù)據(jù)的地址由 A20A0 來表示(020 共 21 位地址數(shù)據(jù)),其中 A20A9 是 12 位的頁地址(4096 頁),A8A0 為 9 位的頁內(nèi)字節(jié)地址(512 個字節(jié))。(6)讀命令使用相應(yīng)的操作碼,數(shù)據(jù)可以從主存儲器或某一個 SRAM 緩沖區(qū)中讀出。1. 連續(xù)讀(命令碼:E8H):可以達到 66MHz在提供了主存儲器陣列的開始地址后,在時鐘信號的作用下連續(xù)讀

9、命令可以從芯片中以數(shù)據(jù)流方式進行數(shù)據(jù)讀取,而無需額外的地址信息或控制信號。芯片內(nèi)部的地址計數(shù)器會在每一個時鐘周期后自動自增,因而可以在不用寫入新的地址的情況下繼續(xù)讀取下一個字節(jié)。要進行一次對頁(528 字節(jié))的連續(xù)讀操作,操作碼 E8H 必須要寫入芯片中,隨后是 3 個字節(jié)的地址(22 位的頁與字節(jié)地址序列)與 4 個無關(guān)字節(jié)。開始的 12 位(PA11PA0)來用表示將要讀取的數(shù)據(jù)在主存儲器中的頁地址。后 10 位(BA9BA0)用來表示字節(jié)在頁中的地址。而要進行一次對頁(512 字節(jié))的連續(xù)讀時,操作碼 E8H 同樣也要先寫入到芯片中,隨后是三個字節(jié)的地址與 4 個無關(guān)字節(jié)。21 位序列中

10、前 12 位(A20A9)表示要讀的數(shù)據(jù)在主存儲器的頁地址,后 9 位(A8A0)是頁內(nèi)的字節(jié)地址。那些無關(guān)字節(jié)在讀操作初始化時是必需的。在無關(guān)字節(jié)后,SCK 引腳上的時鐘信號使數(shù)據(jù)從 SO 引腳輸出。在操作寫入地址字節(jié)、無關(guān)字節(jié)與數(shù)據(jù)讀取的過程中,#CS 引腳上要保持低電平。連續(xù)讀到達一個頁的結(jié)尾時,芯片會從下個頁的開頭繼續(xù)讀取,頁間的跨越是沒有延時的。當主存儲器的最后一個位被讀出后,芯片會自動返回到第一頁的開頭繼續(xù)讀取。與頁間跨越相同的,從存儲器陣列結(jié)尾轉(zhuǎn)到開頭也是無延時的。2. 連續(xù)讀(命令碼:0BH 高速模式):可以達到 66MHz此命令可以在最高頻率以下的任意時鐘頻率下通過串行接口對

11、主存儲器進行高速讀取。要進行一次連續(xù)讀(頁容量為 528 字節(jié)),#CS 必須處于有效狀態(tài),然后操作碼 0BH 必須寫入到芯片中,隨后是 3 字節(jié)地址與一個字節(jié)。22 位地址序列中的前 12 位(PA11PA0)表示將要讀取的數(shù)據(jù)在主存儲器中的頁地址,后 10 位(BA9BA0)表示頁內(nèi)的字節(jié)地址。要進行一次連續(xù)讀(頁容量為 512 字節(jié)),同樣地,操作碼 OBH 也要先寫入芯片中,隨后是 3 字節(jié)地址(A20A0)與一個字節(jié)。在此字節(jié)后數(shù)據(jù)將在 SCK 引腳上的時鐘信號作用下從 SO 引腳輸出。同 1 中的內(nèi)容。3. 連續(xù)讀(命令碼:03H 低速模式):可以達到 33MHz大部分與高速模式下

12、的連續(xù)讀是相同的。不同的在于 3 字節(jié)地址寫入后無需再寫入一個字節(jié)。4. 主存儲器頁讀(操作碼:D2H)主存儲器頁讀允許直接從 4096 個頁中某一個頁中讀取數(shù)據(jù),而不影響緩沖區(qū)中的數(shù)據(jù)。其它的內(nèi)容與 1 相同。5. 緩存區(qū)讀(操作碼:緩沖區(qū) 1 D4H 或 D1H 緩沖區(qū) 2 D6H 或 D3H)主存儲陣列中的數(shù)據(jù)可以放在 SRAM 數(shù)據(jù)緩存區(qū)內(nèi),使用緩存區(qū)讀命令允許直接從緩沖區(qū)中讀取數(shù)據(jù)。操作碼的選用要根據(jù)時鐘頻率而定。D4H、D6H 與 D1H、D3H可以分別使用在頻率低于 66MHz 與 33MHz 的情況下。要進行一次緩沖區(qū)讀(528 字節(jié)),操作碼必須先寫入芯片,隨后是 3 字節(jié)地

13、址(14 個無關(guān)位與 10 位緩沖區(qū)地址)。要進行一次緩沖區(qū)讀(512 字節(jié)),操作同樣也要先寫入芯片,隨后是 3 字節(jié)地址(15個無關(guān)位與 9 位緩沖區(qū)地址)。在地址字節(jié)后,一個無關(guān)字節(jié)必須要寫入芯片以初始化讀操作。在操作碼、地址字節(jié)、無關(guān)字節(jié)寫入的過程中,#CS 引腳必須保持低電平。當?shù)竭_緩沖區(qū)的結(jié)尾時,芯片會自動返回到緩沖區(qū)的開始。#CS 的上跳沿將終止讀操作。(7)編程與擦除命令1. 緩沖區(qū)寫(操作碼:緩沖區(qū) 1 84H 緩沖區(qū) 2 87H)數(shù)據(jù)可以通過 SI 引腳寫入緩沖區(qū) 1 或 2 中。要將數(shù)據(jù)寫入緩沖區(qū)(528 字節(jié)),操作碼必須先寫入芯片,隨后是 3 字節(jié)地址(14 位無關(guān)位

14、與 10 位緩沖區(qū)地址BFA9BFA0)。這 10 位地址表示要寫入的數(shù)據(jù)的第一個字節(jié)的緩沖區(qū)地址。要將數(shù)據(jù)寫入緩沖區(qū)(512 字節(jié)),操作碼同樣也要先寫入芯片,隨后是 3 字節(jié)地址(15個無關(guān)位與 9 位緩沖區(qū)地址 BFA8BFA0)。這 9 位緩沖區(qū)地址表示要寫入的每個字節(jié)的地址。在最后一個地址位寫入后,就可以開始向其寫入數(shù)據(jù)了。如果到達了緩沖區(qū)的結(jié)尾,則芯片會自動返回到緩沖區(qū)的開頭。數(shù)據(jù)會繼續(xù)寫入到緩沖區(qū)中,直到#CS 引腳上產(chǎn)生上跳沿為止。2. 緩沖向主存儲器頁編程(帶預(yù)擦除 操作碼:緩沖區(qū) 1 83H 緩沖區(qū) 2 86H)被寫入到緩沖中的數(shù)據(jù)可以被編程到主存儲器中。先寫入操作碼,對于

15、頁容量為 528 字節(jié)的情況,隨后是 3 字節(jié)地址(2 個無關(guān)位,12 位頁地址 PA11PA0 與10 個無關(guān)位)。而對于容量為 512 字節(jié)的情況,操作碼寫入后,隨后是 3 字節(jié)地址(3 個無關(guān)位,12 位的地址位 A20A9 與 9 個無關(guān)位)。當#CS 引腳的上跳沿時,芯片會先擦除主存儲器中所選中的頁(擦除后都為邏輯 1),然后將緩沖區(qū)中的數(shù)據(jù)編程到頁中。擦除與編程操作都是內(nèi)部進行的,并會在一定時間內(nèi)完成。在這期間,狀態(tài)寄存器與 RDY/#BUSY 都會指示芯片處于忙狀態(tài)。3. 緩沖區(qū)向主存儲器頁編程(無預(yù)擦除 操作碼:緩沖區(qū) 1 88H 緩沖區(qū) 2 89H)主存儲器中已經(jīng)被擦除的頁可

16、以通過此操作由緩沖區(qū)向其編程。與有預(yù)擦除的操作不同就在于它是無預(yù)擦除的。4. 頁擦除(操作碼:81H)頁擦除操作可以獨立對主存儲陣列中某一個頁進行擦除,隨后可以對該頁進行緩沖區(qū)向主存儲器頁編程(無預(yù)擦除)操作。對于頁容量為 528 字節(jié)的情況,先要寫入操作碼,隨后是 3 字節(jié)地址(2 個無關(guān)位,12 位頁地址 PA11P10 與 10 個無關(guān)位)。對于頁容量 512 字節(jié)的情況,也要先寫入操作碼,隨后是 3 字節(jié)地址(3個無關(guān)位,12 位頁地址 A20A9 與 9 個無關(guān)位)。當#CS 引腳上產(chǎn)生上跳沿時,芯片會擦除所選中的頁(擦除后都為邏輯 1)。擦除操作是內(nèi)部進行的,并會在一定時間內(nèi)完成。

17、在這期間,狀態(tài)寄存器與 RDY/#BUSY 都會指示芯片處于忙狀態(tài)。5. 塊擦除(操作碼:50H)塊擦除操作可以使塊內(nèi)的 8 個頁一次全部擦除。這個命令可以用在有大量數(shù)據(jù)需要寫入的時候,可以避免多次調(diào)用寫擦除命令。在頁容量為 528 字節(jié)時,操作碼先要寫入芯片,隨后是 3 字節(jié)地址(2 個無關(guān)位,9 位頁地址 PA11PA3 ,13 個無關(guān)位)。要進行一次塊擦除操作(頁容量 512 字節(jié)),也要先寫入操作碼,隨后是 3 字節(jié)地址(3 個無關(guān)位,9 位頁地址 A20A12 與 12 個無關(guān)位)。當#CS 上產(chǎn)生上跳沿時,芯片將擦除選中的塊。擦除操作是內(nèi)部進行的,并會在一定時間內(nèi)完成。在這期間,狀

18、態(tài)寄存器與 RDY/#BUSY 都會指示芯片處于忙狀態(tài)。塊擦除地址如下表所示:PA11/PA10/PA9/PA8/PA7/PA6/PA5/PA4/PA3/PA2/PA1/PA0/BLOCKA20A19A18A17A16A15A14A13A12A11A10A9000000000XXX0000000001XXX1000000010XXX2000000011XXX311111100XXX50811111101XXX50911111110XXX51011111111XXX5116. 扇區(qū)擦除(操作碼:7CH)扇區(qū)擦除命令可以獨立對主存儲器中的某一個扇區(qū)進行擦除。一共有 16 個扇區(qū),每次扇區(qū)擦除操作只

19、能對一個扇區(qū)進行擦除。頁容量為 528 字節(jié)時,要對扇區(qū)0A 或扇區(qū) 0B 進行擦除,需要先寫入操作碼,隨后是 3 字節(jié)地址(2 個無關(guān)位,9位頁地址 PA11PA3 與 13 個無關(guān)位)。要擦除扇區(qū) 115,也要先寫入操作碼,隨后是 3 字節(jié)地址(2 個無關(guān)位,4 位頁地址 PA11PA8 與 18 個無關(guān)位)。頁容量為 512 字節(jié)時,要對扇區(qū) 0A 或扇區(qū) 0B 進行擦除,先寫入操作碼,隨后是 3 字節(jié)地址(3 個無關(guān)位,9 位頁地址 A20A12 與 12 個無關(guān)位)。要擦除扇區(qū) 115,也要先寫入操作碼,隨后是 4 字節(jié)地址(3 個無關(guān)位,4 位頁地址 A20A17 與 17 個無關(guān)

20、位)。擦除操作是內(nèi)部進行的,并會在一定時間內(nèi)完成。在這期間,狀態(tài)寄存器與 RDY/#BUSY 都會指示芯片處于忙狀態(tài)。7. 片擦除(操作碼:C7H、94H、80H 與 9AH)主存儲器可以使用片擦除命令一次全部擦除。要進行一次片擦除操作,先要寫入操作碼,無須寫入地址,交且操作過程中任何寫入的數(shù)據(jù)都是無效的。操作碼寫入后,#CS 引腳上的上跳沿可以開始擦除過程。在操作過程中,狀態(tài)寄存器指示芯片處于忙狀態(tài)。那些被保護或死鎖的扇區(qū)不受此命令的影響,其數(shù)據(jù)不會發(fā)生改變。只有那些沒有保護或死鎖的扇區(qū)會被擦除。芯片在進行擦除操作的過程中#WP 引腳可以設(shè)為有效,但是在內(nèi)部擦除周期完成前保護不會生效。8.

21、通過緩沖區(qū)對主存儲器頁編程(操作碼:緩沖區(qū) 1 82H 緩沖區(qū) 2 85H)這個命令是緩沖區(qū)寫與緩沖區(qū)向主存儲器頁編程(帶預(yù)擦除)兩條命令的綜合。數(shù)據(jù)先從輸入引腳 SI 寫入緩沖區(qū) 1 或 2,再從緩沖區(qū)向指定的頁編程。在頁容量為 528 字節(jié)時,要進行一次此操作,先要寫入操作碼,再將數(shù)據(jù)寫入到緩沖區(qū)中,然后向芯片寫入 3 字節(jié)地址(2 個無關(guān)位,12 位頁地址 PA11PA0 與 10 位緩沖區(qū)地址 BFA9BFA0)。在頁容量為 512 字節(jié)時,要進行此操作,也要先將操作碼寫入,再將數(shù)據(jù)寫入到緩沖區(qū)中,隨后是 3 字節(jié)地址(3 個無關(guān)位,12 位頁地址 A20A9 與 9 位緩沖區(qū)地址 B

22、FA8BFA0)。所有的地址字節(jié)都被寫入后,就可以通過輸入引腳向芯片寫入數(shù)據(jù)了。當#CS 引腳上出現(xiàn)上跳沿時,芯片先會擦除主存儲器所選中的頁,然后將存在緩沖區(qū)中的數(shù)據(jù)編程到頁中去。編程操作是在芯片內(nèi)部進行的,并會在一定時間內(nèi)完成。在這期間,狀態(tài)寄存器與 RDY/#BUSY 都會指示芯片處于忙狀態(tài)。(8)扇區(qū)保護AT45DB161D 提供硬件與軟件兩種方法對扇區(qū)進行保護,以使其避免數(shù)據(jù)的破壞。軟件的方法是通過軟件命令來實現(xiàn)扇區(qū)保護的使能與禁止的。而硬件的方法則是通過使用#WP 引腳來實現(xiàn)的。通過“扇區(qū)保護寄存器”對哪一個扇區(qū)保護或不保護進行選擇。要知道某一個扇區(qū)是否有保護,可以查詢狀態(tài)寄存器。1

23、. 扇區(qū)保護的軟件方法1)扇區(qū)保護使能命令(操作碼:3DH-2AH-7FH-A9H)指定的扇區(qū)通過使扇區(qū)保護使能命令可使其在編程與擦除操作中得以保護。要采用方法使能扇區(qū)保護,#CS 引腳必須處于有效狀態(tài),從輸入引腳 SI 寫入 4 字節(jié)命令序列。寫入后,#CS 引腳轉(zhuǎn)為無效狀態(tài),此時扇區(qū)保護就被使能了。命令字節(jié) 1字節(jié)2字節(jié)3字節(jié)4扇區(qū)保護使能命令3DH2AH7FHA9H扇區(qū)保護使能命令的時序圖:2)扇區(qū)保護禁止命令(操作碼:3DH-2AH-7FH-9AH)用軟件方法來禁止扇區(qū)保護時,除了寫入的操作碼序列不同,其它與扇區(qū)保護使能命令是相同的。命令字節(jié) 1字節(jié)2字節(jié)3字節(jié)4扇區(qū)保護禁止命令3DH

24、2AH7FH9AH扇區(qū)保護禁止命令的時序圖:3)軟件控制保護的各個方面軟件控制保護在#WP 沒有或不能被單片機控制的情況下是很有用的。在這種情況下,#WP 可以懸空(#WP 引腳在內(nèi)部拉高),扇區(qū)保護可以由以上兩種命令來控制。(9)保護的硬件控制#WP 引腳設(shè)為有效狀態(tài)后,在扇區(qū)保護寄存器中設(shè)置為保護的扇區(qū)及扇區(qū)保護寄存器自身在編程與擦除操作中可以得到保護。扇區(qū)保護寄存器與設(shè)置為保護的任何一個扇區(qū),都不能被編程或擦除。要改變扇區(qū)保護寄存器的值只能將#WP 設(shè)為無效。如果#WP 被接到地,扇區(qū)保護寄存器的內(nèi)容不能被改變。如果#WP 被設(shè)為無效或接到 VCC,則其內(nèi)容可以被改變。#WP 會使保護的

25、軟件控制方法無效。例如:如果扇區(qū)原先并沒有被扇區(qū)保護使能命令保護,那么簡單的把#WP 設(shè)為有效狀態(tài)就可以使能扇區(qū)保護。當#WP 引腳設(shè)為有效狀態(tài)而扇區(qū)保護使能命令沒有執(zhí)行,扇區(qū)保護不會被使能。如果在#WP 引腳設(shè)為有效狀態(tài)前扇區(qū)保護使能命令被執(zhí)行了,那么只簡單地將#WP 設(shè)為無效并不能禁止扇區(qū)保護。在這種情況下,扇區(qū)保護禁止命令需要在#WP 引腳無效時執(zhí)行來使扇區(qū)保護禁止。在#WP 引腳為有效時,扇區(qū)保護禁止命令會被忽略。1. 扇區(qū)保護寄存器非易揮發(fā)的(掉電不丟失)扇區(qū)保護寄存器指示哪些扇區(qū)被保護或未被保護。扇區(qū)保護寄存器包括 16 個字節(jié),從第 0 到第 15 字節(jié)的不同值確定了扇區(qū) 0 到

26、 15 是否被保護。扇區(qū)保護寄存器是可以由用戶修改的,但在生新程序前必須先擦除。扇區(qū)保護寄存器:扇區(qū)號0(0A,0B)1 to 15保護見下表FFH未保護00H扇區(qū) 0(0A,0B)0A0B07 頁8255 頁位位數(shù)據(jù)值位 7,6位 5,43,21,0扇區(qū) 0A,0B 未保護0000xxxx0xH0A 保護(第 07 頁)1100xxxxCxH0B 保護(第 8255 頁)0011xxxx3xH扇區(qū) 0A(第 07 頁),0B(第 8255 頁)1111xxxxFxH注:從 ATMEL 出廠后 015 字節(jié)默認值為 00H。1)擦除扇區(qū)保護寄存器命令(操作碼:3DH-2AH-7FH-CFH)為

27、了修改扇區(qū)保護寄存器的值,必須先使用擦除扇區(qū)保護寄存器命令將其擦除。要擦除扇區(qū)保護寄存器,#CS 必須設(shè)置為有效,然后將 4 字節(jié)的操作碼序列寫入芯片。在操作碼寫入后,需要將#CS 設(shè)置為無效,以初始化一個擦除操作。扇區(qū)保護寄存器的擦除需要一定的時間,此期間狀態(tài)寄存器會指示芯片處于忙狀態(tài)。如果在進行擦除的過程中掉電,則扇區(qū)保護寄存器的擦除得不到保證。命令字節(jié)1字節(jié)2字節(jié)3字節(jié)4擦除扇區(qū)保護寄存器命令3DH2AH7FHCFH擦除扇區(qū)保護寄存器命令的時序圖:2)扇區(qū)保護寄存器編程命令(操作碼:3DH-2AH-7FH-FCH)在扇區(qū)保護寄存器被擦除后,就可以使用扇區(qū)保護寄存器編程命令對其進行重新編程

28、。要對扇區(qū)保護寄存器進行編程,必須先將#CS 設(shè)為有效,從 SI 引腳寫入 4字節(jié)操作碼序列。寫入后,再將要寫入扇區(qū)保護寄存器的內(nèi)容寫入。扇區(qū)保護寄存器中包括有 16 個字節(jié),所以要寫入 16 個字節(jié)。每個字節(jié)對應(yīng)對寄存器中的每個單元。16 個字節(jié)被寫入后,#CS 引腳需要設(shè)為無效以初始化一個編程周期。編程過程需要一定的時間,在此期間狀態(tài)寄存器指示芯片處于忙狀態(tài)。如果在進行編程的過程中掉電,則扇區(qū)保護寄存器中的內(nèi)容的修改得不到保證。如果在#CS 引腳無效以前沒有寫入適當數(shù)量的字節(jié),則沒有字節(jié)與其相對應(yīng)的寄存器單元所對應(yīng)扇區(qū)保護狀態(tài)的改變不能保證。如果扇區(qū)保護寄存器中的字節(jié)不是 00H 或 FF

29、H,則相應(yīng)單元所對應(yīng)的扇區(qū)保護狀態(tài)的改變不能保證。扇區(qū)保護寄存器編程命令利用內(nèi)部 SRAM 數(shù)據(jù)緩沖區(qū) 1 來實現(xiàn)編程操作。緩沖區(qū) 1 的數(shù)據(jù)在命令執(zhí)行完畢后會恢復(fù)回到原來的數(shù)據(jù)。命令 字節(jié) 1 字節(jié) 2 字節(jié) 3 字節(jié) 4扇區(qū)保護寄存器編程命令 3DH 2AH 7FH 9AH扇區(qū)保護寄存器編程命令的時序圖:3)扇區(qū)保護寄存器讀取命令(操作碼:32H)要讀取扇區(qū)保護寄存器,首先要將#CS 引腳設(shè)為有效,從 SI 引腳寫入操作碼與三個字節(jié)。寫入后,芯片便可以從 SO 引腳輸出數(shù)據(jù)。第一個字節(jié)是扇區(qū) 0 的內(nèi)容,第二個字節(jié)是扇區(qū) 1 的內(nèi)容,最后一個字節(jié)是扇區(qū) 15 的內(nèi)容。在最后一個字節(jié)輸出后,

30、再輸出的數(shù)據(jù)就為未定義數(shù)據(jù)。最后必須要將#CS 設(shè)為無效狀態(tài)以終止扇區(qū)保護寄存器讀取操作,并使輸出轉(zhuǎn)為高阻態(tài)。命令字節(jié)1字節(jié)2字節(jié)3字節(jié)4扇區(qū)保護寄存器讀取命令32HXXHXXHXXH扇區(qū)保護寄存器的時序圖:4)扇區(qū)保護寄存器的各個方面扇區(qū)保護寄存器約可以擦/寫 10000 次。使用者會很關(guān)心芯片在其應(yīng)用系統(tǒng)中的使用壽命。如果應(yīng)用系統(tǒng)中需要多于 10000 次對扇區(qū)保護寄存器的修改,因為它需要臨時性地對某一個扇區(qū)不加以保護,那么應(yīng)用系統(tǒng)就要限制自身的使用。要合理地設(shè)計應(yīng)用系統(tǒng),以使其對扇區(qū)保護寄存器的個性不超過 10000 次。(10)安全措施1)扇區(qū)死鎖命令(3DH-2AH-7FH-30H)

31、這一命令應(yīng)用于商業(yè)上。芯片可以通過扇區(qū)死鎖命令對某一個扇區(qū)進行死鎖,從而使扇區(qū)變?yōu)橹蛔x的。這在應(yīng)用中是很有用的,用來存儲代碼或安全信息。當一個扇區(qū)被死鎖后,它就不能再被擦除或編程,也不能解鎖。要執(zhí)行扇區(qū)死鎖命令,#CS 引腳要設(shè)為有效狀態(tài),寫入 4 字節(jié)操作碼序列,一定按正確的順序?qū)懭?。寫入后,再寫?3 字節(jié)地址。在地址寫入后,再將#CS引腳設(shè)為無效狀態(tài)以初始化一個內(nèi)部死鎖操作。在進行死鎖操作的過程中,狀態(tài)寄存器指示芯片處于忙狀態(tài)。如果操作過程中掉電,則死鎖操作得不到保證。在這種情況下,使用者應(yīng)讀取扇區(qū)死鎖寄存器以確定相應(yīng)的扇區(qū)是否已經(jīng)死鎖。命令字節(jié)1字節(jié)2字節(jié)3字節(jié)4扇區(qū)死鎖命令3DH2A

32、H7FH30H扇區(qū)死鎖命令的時序圖:1. 扇區(qū)死鎖寄存器扇區(qū)死鎖寄存器中包含 16 個字節(jié),如下表所示:扇區(qū)號0(0A,0B)1 to 15保護見下表FFH未保護00H扇區(qū) 0(0A,0B)0A0B07 頁8255 頁位位數(shù)據(jù)值位 7,6位 5,43,21,0扇區(qū) 0A,0B 未保護0000000000H0A 保護(第 07 頁)11000000C0H0B 保護(第 8255 頁)0011000030H扇區(qū) 0A(第 07 頁),0B(第 8255 頁)11110000F0H2. 扇區(qū)死鎖寄存器讀取命令(操作碼:35H)扇區(qū)死鎖寄存器中的數(shù)據(jù)可以讀取以確定扇區(qū)是否被死鎖。要讀取扇區(qū)死鎖寄存器,#CS 引腳必須設(shè)為有效,通過 SI 引腳寫入操作碼與 3 個字節(jié)。寫入后,扇區(qū)死鎖寄存器中的數(shù)據(jù)將從 SO 引腳輸出。每一個字節(jié)是扇區(qū) 0 (0A,0B)的內(nèi)容,第二個字節(jié)是扇區(qū) 1 的內(nèi)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論