




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、SPI 接口的 FLASH ROM AT45DB161D 的驅(qū)動(dòng)方法(1)芯片介紹AT45DB161D 是串行接口的閃存芯片,可工作在 2.5V2.7V,可廣泛應(yīng)用于數(shù)據(jù)語(yǔ)音、圖像、程序代碼數(shù)據(jù)存儲(chǔ)中。AT45DB161D 支持 RapidS 串行接口,適用于高速場(chǎng)合。RapidS串行接口是與 SPI 相兼容的,速度可達(dá)到 66MHz。它包含有 17,301,504 個(gè)位,被組織為 4096 個(gè)頁(yè),每個(gè)頁(yè) 512 或 528 個(gè)字節(jié)。除了主存儲(chǔ)器,AT45DB161D 還包括兩個(gè) SRAM 數(shù)據(jù)緩沖區(qū),每個(gè)緩沖區(qū) 512/528 個(gè)字節(jié)。在主存儲(chǔ)器正在編程時(shí),緩沖區(qū)是允許接收數(shù)據(jù)的,并且支持?jǐn)?shù)
2、據(jù)流式寫入。與并行 FLASH 儲(chǔ)存器不同,它采用 RapidS 串行接口,從而大大減少了可用引腳數(shù)量,同時(shí)也提高了系統(tǒng)可靠性,降低了開(kāi)關(guān)噪聲,縮小了封裝體積??梢詰?yīng)用于商業(yè)、工業(yè)等需要高密度、低引腳數(shù)、低電壓與低功耗的應(yīng)用場(chǎng)合。AT45DB161D 允許簡(jiǎn)單的在系統(tǒng)重新編程,而無(wú)需輸入高編程電壓。芯片可以采用 2.5V3.6V 或 2.7V3.6V 單電源供電,進(jìn)行編程與讀取操作。它可以通過(guò)#CS 來(lái)進(jìn)行使能,并通過(guò)三線接口(SI、SO、SCK)進(jìn)行數(shù)據(jù)通信。(2)引腳配置與封裝1.芯片封裝圖2.引腳功能詳述符號(hào)名稱與功能有效電平類型#CS片選:#CS 用以選中芯片。當(dāng)#CS 被LOW輸入設(shè)
3、置為無(wú)效狀態(tài)時(shí),芯片則不被選中,并且處于閑置狀態(tài)(不是深度睡眠狀態(tài)),輸出引腳 SO 處于高阻態(tài)。當(dāng)芯片未被選中時(shí),從輸入引腳 SI輸入的數(shù)據(jù)將不被接受。#CS 引腳上的下降沿將會(huì)啟動(dòng)一個(gè)操作,而上跳沿則會(huì)結(jié)束一個(gè)操作。在一個(gè)內(nèi)部操作如芯片內(nèi)部的編程或擦除周期內(nèi),芯片不會(huì)進(jìn)入閑置狀態(tài),直到操作完畢。SCK串行時(shí)鐘:此引腳用來(lái)向芯片提供時(shí)-輸入鐘信號(hào),有來(lái)控制數(shù)據(jù)流的出入。SI引腳上的命令、地址與輸入數(shù)據(jù)在時(shí)鐘 SCK 的上升沿被寫入,而 SO 引腳上的輸出數(shù)據(jù)則在時(shí)鐘的下降沿變化。SI串行輸入:SI 引腳用來(lái)向芯片以移-輸入位方式寫入數(shù)據(jù)。SI 引腳上的所有數(shù)據(jù)輸入包括命令與地址。SI 上的數(shù)
4、據(jù)在時(shí)鐘的上升沿寫入芯片。SO串行輸出:SO 引腳用來(lái)從芯片以移-輸出位方式輸出數(shù)據(jù)。SI 上的數(shù)據(jù)在時(shí)鐘的下降沿變化。#WP寫保護(hù):當(dāng)#WP 被設(shè)置為有效時(shí)芯片LOW輸入的扇區(qū)將被保護(hù)起來(lái),以防止編程與擦除對(duì)數(shù)據(jù)的破壞。但是扇區(qū)保護(hù)使能與扇區(qū)死鎖命令仍然可以被芯片識(shí)別。#WP 引腳在內(nèi)部被拉高,可以懸空。但是仍然建議在外部接到 VCC。#RESET復(fù)位:#RESET 引腳上的低電平會(huì)終LOW輸入止正在處理的操作并復(fù)位內(nèi)部狀態(tài)機(jī)到閑置狀態(tài)。#RESET 引腳上的低電平會(huì)使芯片一直處于復(fù)位狀態(tài)。當(dāng)#RESET 上轉(zhuǎn)為高電平后,才能進(jìn)行正常的操作。芯片內(nèi)部設(shè)置上電復(fù)位電路。當(dāng)此引腳不用時(shí),外部接到
5、高電平。RDY/#BUSY就緒/忙碌狀態(tài)指示:此引腳是漏極-輸出開(kāi)路的輸出引腳。當(dāng)芯片處于忙狀態(tài)時(shí)(內(nèi)部操作過(guò)程中)此引腳為低電平,此引腳在正常狀態(tài)下為高電平(外部接上拉電阻)。當(dāng)正在進(jìn)行編程/擦除操作,比較操作與頁(yè)-緩沖區(qū)傳送時(shí),被拉低。忙狀態(tài)指示 FLASH 儲(chǔ)存陣列與某一個(gè)緩沖區(qū)不能被操作,而對(duì)另一個(gè)緩沖區(qū)的讀與寫操作仍然可以進(jìn)行。VCC芯片電源供給-電源GND地:此引腳應(yīng)與系統(tǒng)地接在一起。-地(3)AT45DB161D 的功能框圖:(4)存儲(chǔ)器陣列:AT45DB161D 的儲(chǔ)存器陣列被分為 3 個(gè)級(jí)別的粒度,分別為扇區(qū)、塊與頁(yè)。下面的“存儲(chǔ)器結(jié)構(gòu)圖”對(duì)各個(gè)級(jí)別進(jìn)行了分析,詳細(xì)說(shuō)明了每個(gè)
6、扇區(qū)與塊的頁(yè)數(shù)。所有的編程操作都是針對(duì)于頁(yè)的。擦除操作可以作用于芯片、扇區(qū)、塊或頁(yè)。扇區(qū)結(jié)構(gòu):(扇區(qū) 0A)8 頁(yè)4096/4224字節(jié) (扇區(qū) 0B)248 頁(yè) 126,976/130,944 字節(jié)(扇區(qū) 1 )256 頁(yè) 131,072/135,168 字節(jié)(扇區(qū) 2 )256 頁(yè) 131,072/135,168 字節(jié)(扇區(qū) 14)256 頁(yè) 131,072/135,168 字節(jié)(扇區(qū) 15)256 頁(yè) 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頁(yè)結(jié)構(gòu):頁(yè) 0頁(yè)
7、 1塊 0頁(yè) 6頁(yè) 7頁(yè) 8頁(yè) 9塊 1頁(yè) 14頁(yè) 15頁(yè) 16頁(yè) 17頁(yè) 18頁(yè) 4093頁(yè) 4094頁(yè) 4095(5)芯片操作:芯片的操作是通過(guò)單片機(jī)的指令來(lái)完成的。指令列表與指令操作碼在后面的“指令表”中有詳細(xì)的說(shuō)明。一個(gè)有效的指令由#CS 的下降沿來(lái)指示它的開(kāi)始,隨后是一個(gè)有意義的 8 位操作碼與緩存區(qū)或主存儲(chǔ)器的地址。當(dāng)#CS 為低時(shí),由時(shí)鐘 SCK 引腳來(lái)控制由 SI 引腳寫入的操作碼與緩存區(qū)或主存儲(chǔ)器的地址。所有的指令、地址與數(shù)據(jù)在傳輸時(shí)都是高位在前的。528 字節(jié)模式下,緩沖區(qū)中數(shù)據(jù)的地址由 BFA9BFA0 來(lái)表示。主存儲(chǔ)器中數(shù)據(jù)的地址由 PA11PA0 與 BA9BA0 來(lái)
8、表示,PA11PA0 用來(lái)表示 12 位頁(yè)地址,BA9BA0 表示 10 位的頁(yè)內(nèi)字節(jié)地址。在 512 字節(jié)模式下,緩沖區(qū)中數(shù)據(jù)地址由 BFA8BFA0 來(lái)表示(A8A0 表示 08 共 9 位地址數(shù)據(jù),512 個(gè)字節(jié))。主存儲(chǔ)器中數(shù)據(jù)的地址由 A20A0 來(lái)表示(020 共 21 位地址數(shù)據(jù)),其中 A20A9 是 12 位的頁(yè)地址(4096 頁(yè)),A8A0 為 9 位的頁(yè)內(nèi)字節(jié)地址(512 個(gè)字節(jié))。(6)讀命令使用相應(yīng)的操作碼,數(shù)據(jù)可以從主存儲(chǔ)器或某一個(gè) SRAM 緩沖區(qū)中讀出。1. 連續(xù)讀(命令碼:E8H):可以達(dá)到 66MHz在提供了主存儲(chǔ)器陣列的開(kāi)始地址后,在時(shí)鐘信號(hào)的作用下連續(xù)讀
9、命令可以從芯片中以數(shù)據(jù)流方式進(jìn)行數(shù)據(jù)讀取,而無(wú)需額外的地址信息或控制信號(hào)。芯片內(nèi)部的地址計(jì)數(shù)器會(huì)在每一個(gè)時(shí)鐘周期后自動(dòng)自增,因而可以在不用寫入新的地址的情況下繼續(xù)讀取下一個(gè)字節(jié)。要進(jìn)行一次對(duì)頁(yè)(528 字節(jié))的連續(xù)讀操作,操作碼 E8H 必須要寫入芯片中,隨后是 3 個(gè)字節(jié)的地址(22 位的頁(yè)與字節(jié)地址序列)與 4 個(gè)無(wú)關(guān)字節(jié)。開(kāi)始的 12 位(PA11PA0)來(lái)用表示將要讀取的數(shù)據(jù)在主存儲(chǔ)器中的頁(yè)地址。后 10 位(BA9BA0)用來(lái)表示字節(jié)在頁(yè)中的地址。而要進(jìn)行一次對(duì)頁(yè)(512 字節(jié))的連續(xù)讀時(shí),操作碼 E8H 同樣也要先寫入到芯片中,隨后是三個(gè)字節(jié)的地址與 4 個(gè)無(wú)關(guān)字節(jié)。21 位序列中
10、前 12 位(A20A9)表示要讀的數(shù)據(jù)在主存儲(chǔ)器的頁(yè)地址,后 9 位(A8A0)是頁(yè)內(nèi)的字節(jié)地址。那些無(wú)關(guān)字節(jié)在讀操作初始化時(shí)是必需的。在無(wú)關(guān)字節(jié)后,SCK 引腳上的時(shí)鐘信號(hào)使數(shù)據(jù)從 SO 引腳輸出。在操作寫入地址字節(jié)、無(wú)關(guān)字節(jié)與數(shù)據(jù)讀取的過(guò)程中,#CS 引腳上要保持低電平。連續(xù)讀到達(dá)一個(gè)頁(yè)的結(jié)尾時(shí),芯片會(huì)從下個(gè)頁(yè)的開(kāi)頭繼續(xù)讀取,頁(yè)間的跨越是沒(méi)有延時(shí)的。當(dāng)主存儲(chǔ)器的最后一個(gè)位被讀出后,芯片會(huì)自動(dòng)返回到第一頁(yè)的開(kāi)頭繼續(xù)讀取。與頁(yè)間跨越相同的,從存儲(chǔ)器陣列結(jié)尾轉(zhuǎn)到開(kāi)頭也是無(wú)延時(shí)的。2. 連續(xù)讀(命令碼:0BH 高速模式):可以達(dá)到 66MHz此命令可以在最高頻率以下的任意時(shí)鐘頻率下通過(guò)串行接口對(duì)
11、主存儲(chǔ)器進(jìn)行高速讀取。要進(jìn)行一次連續(xù)讀(頁(yè)容量為 528 字節(jié)),#CS 必須處于有效狀態(tài),然后操作碼 0BH 必須寫入到芯片中,隨后是 3 字節(jié)地址與一個(gè)字節(jié)。22 位地址序列中的前 12 位(PA11PA0)表示將要讀取的數(shù)據(jù)在主存儲(chǔ)器中的頁(yè)地址,后 10 位(BA9BA0)表示頁(yè)內(nèi)的字節(jié)地址。要進(jìn)行一次連續(xù)讀(頁(yè)容量為 512 字節(jié)),同樣地,操作碼 OBH 也要先寫入芯片中,隨后是 3 字節(jié)地址(A20A0)與一個(gè)字節(jié)。在此字節(jié)后數(shù)據(jù)將在 SCK 引腳上的時(shí)鐘信號(hào)作用下從 SO 引腳輸出。同 1 中的內(nèi)容。3. 連續(xù)讀(命令碼:03H 低速模式):可以達(dá)到 33MHz大部分與高速模式下
12、的連續(xù)讀是相同的。不同的在于 3 字節(jié)地址寫入后無(wú)需再寫入一個(gè)字節(jié)。4. 主存儲(chǔ)器頁(yè)讀(操作碼:D2H)主存儲(chǔ)器頁(yè)讀允許直接從 4096 個(gè)頁(yè)中某一個(gè)頁(yè)中讀取數(shù)據(jù),而不影響緩沖區(qū)中的數(shù)據(jù)。其它的內(nèi)容與 1 相同。5. 緩存區(qū)讀(操作碼:緩沖區(qū) 1 D4H 或 D1H 緩沖區(qū) 2 D6H 或 D3H)主存儲(chǔ)陣列中的數(shù)據(jù)可以放在 SRAM 數(shù)據(jù)緩存區(qū)內(nèi),使用緩存區(qū)讀命令允許直接從緩沖區(qū)中讀取數(shù)據(jù)。操作碼的選用要根據(jù)時(shí)鐘頻率而定。D4H、D6H 與 D1H、D3H可以分別使用在頻率低于 66MHz 與 33MHz 的情況下。要進(jìn)行一次緩沖區(qū)讀(528 字節(jié)),操作碼必須先寫入芯片,隨后是 3 字節(jié)地
13、址(14 個(gè)無(wú)關(guān)位與 10 位緩沖區(qū)地址)。要進(jìn)行一次緩沖區(qū)讀(512 字節(jié)),操作同樣也要先寫入芯片,隨后是 3 字節(jié)地址(15個(gè)無(wú)關(guān)位與 9 位緩沖區(qū)地址)。在地址字節(jié)后,一個(gè)無(wú)關(guān)字節(jié)必須要寫入芯片以初始化讀操作。在操作碼、地址字節(jié)、無(wú)關(guān)字節(jié)寫入的過(guò)程中,#CS 引腳必須保持低電平。當(dāng)?shù)竭_(dá)緩沖區(qū)的結(jié)尾時(shí),芯片會(huì)自動(dòng)返回到緩沖區(qū)的開(kāi)始。#CS 的上跳沿將終止讀操作。(7)編程與擦除命令1. 緩沖區(qū)寫(操作碼:緩沖區(qū) 1 84H 緩沖區(qū) 2 87H)數(shù)據(jù)可以通過(guò) SI 引腳寫入緩沖區(qū) 1 或 2 中。要將數(shù)據(jù)寫入緩沖區(qū)(528 字節(jié)),操作碼必須先寫入芯片,隨后是 3 字節(jié)地址(14 位無(wú)關(guān)位
14、與 10 位緩沖區(qū)地址BFA9BFA0)。這 10 位地址表示要寫入的數(shù)據(jù)的第一個(gè)字節(jié)的緩沖區(qū)地址。要將數(shù)據(jù)寫入緩沖區(qū)(512 字節(jié)),操作碼同樣也要先寫入芯片,隨后是 3 字節(jié)地址(15個(gè)無(wú)關(guān)位與 9 位緩沖區(qū)地址 BFA8BFA0)。這 9 位緩沖區(qū)地址表示要寫入的每個(gè)字節(jié)的地址。在最后一個(gè)地址位寫入后,就可以開(kāi)始向其寫入數(shù)據(jù)了。如果到達(dá)了緩沖區(qū)的結(jié)尾,則芯片會(huì)自動(dòng)返回到緩沖區(qū)的開(kāi)頭。數(shù)據(jù)會(huì)繼續(xù)寫入到緩沖區(qū)中,直到#CS 引腳上產(chǎn)生上跳沿為止。2. 緩沖向主存儲(chǔ)器頁(yè)編程(帶預(yù)擦除 操作碼:緩沖區(qū) 1 83H 緩沖區(qū) 2 86H)被寫入到緩沖中的數(shù)據(jù)可以被編程到主存儲(chǔ)器中。先寫入操作碼,對(duì)于
15、頁(yè)容量為 528 字節(jié)的情況,隨后是 3 字節(jié)地址(2 個(gè)無(wú)關(guān)位,12 位頁(yè)地址 PA11PA0 與10 個(gè)無(wú)關(guān)位)。而對(duì)于容量為 512 字節(jié)的情況,操作碼寫入后,隨后是 3 字節(jié)地址(3 個(gè)無(wú)關(guān)位,12 位的地址位 A20A9 與 9 個(gè)無(wú)關(guān)位)。當(dāng)#CS 引腳的上跳沿時(shí),芯片會(huì)先擦除主存儲(chǔ)器中所選中的頁(yè)(擦除后都為邏輯 1),然后將緩沖區(qū)中的數(shù)據(jù)編程到頁(yè)中。擦除與編程操作都是內(nèi)部進(jìn)行的,并會(huì)在一定時(shí)間內(nèi)完成。在這期間,狀態(tài)寄存器與 RDY/#BUSY 都會(huì)指示芯片處于忙狀態(tài)。3. 緩沖區(qū)向主存儲(chǔ)器頁(yè)編程(無(wú)預(yù)擦除 操作碼:緩沖區(qū) 1 88H 緩沖區(qū) 2 89H)主存儲(chǔ)器中已經(jīng)被擦除的頁(yè)可
16、以通過(guò)此操作由緩沖區(qū)向其編程。與有預(yù)擦除的操作不同就在于它是無(wú)預(yù)擦除的。4. 頁(yè)擦除(操作碼:81H)頁(yè)擦除操作可以獨(dú)立對(duì)主存儲(chǔ)陣列中某一個(gè)頁(yè)進(jìn)行擦除,隨后可以對(duì)該頁(yè)進(jìn)行緩沖區(qū)向主存儲(chǔ)器頁(yè)編程(無(wú)預(yù)擦除)操作。對(duì)于頁(yè)容量為 528 字節(jié)的情況,先要寫入操作碼,隨后是 3 字節(jié)地址(2 個(gè)無(wú)關(guān)位,12 位頁(yè)地址 PA11P10 與 10 個(gè)無(wú)關(guān)位)。對(duì)于頁(yè)容量 512 字節(jié)的情況,也要先寫入操作碼,隨后是 3 字節(jié)地址(3個(gè)無(wú)關(guān)位,12 位頁(yè)地址 A20A9 與 9 個(gè)無(wú)關(guān)位)。當(dāng)#CS 引腳上產(chǎn)生上跳沿時(shí),芯片會(huì)擦除所選中的頁(yè)(擦除后都為邏輯 1)。擦除操作是內(nèi)部進(jìn)行的,并會(huì)在一定時(shí)間內(nèi)完成。
17、在這期間,狀態(tài)寄存器與 RDY/#BUSY 都會(huì)指示芯片處于忙狀態(tài)。5. 塊擦除(操作碼:50H)塊擦除操作可以使塊內(nèi)的 8 個(gè)頁(yè)一次全部擦除。這個(gè)命令可以用在有大量數(shù)據(jù)需要寫入的時(shí)候,可以避免多次調(diào)用寫擦除命令。在頁(yè)容量為 528 字節(jié)時(shí),操作碼先要寫入芯片,隨后是 3 字節(jié)地址(2 個(gè)無(wú)關(guān)位,9 位頁(yè)地址 PA11PA3 ,13 個(gè)無(wú)關(guān)位)。要進(jìn)行一次塊擦除操作(頁(yè)容量 512 字節(jié)),也要先寫入操作碼,隨后是 3 字節(jié)地址(3 個(gè)無(wú)關(guān)位,9 位頁(yè)地址 A20A12 與 12 個(gè)無(wú)關(guān)位)。當(dāng)#CS 上產(chǎn)生上跳沿時(shí),芯片將擦除選中的塊。擦除操作是內(nèi)部進(jìn)行的,并會(huì)在一定時(shí)間內(nèi)完成。在這期間,狀
18、態(tài)寄存器與 RDY/#BUSY 都會(huì)指示芯片處于忙狀態(tài)。塊擦除地址如下表所示:PA11/PA10/PA9/PA8/PA7/PA6/PA5/PA4/PA3/PA2/PA1/PA0/BLOCKA20A19A18A17A16A15A14A13A12A11A10A9000000000XXX0000000001XXX1000000010XXX2000000011XXX311111100XXX50811111101XXX50911111110XXX51011111111XXX5116. 扇區(qū)擦除(操作碼:7CH)扇區(qū)擦除命令可以獨(dú)立對(duì)主存儲(chǔ)器中的某一個(gè)扇區(qū)進(jìn)行擦除。一共有 16 個(gè)扇區(qū),每次扇區(qū)擦除操作只
19、能對(duì)一個(gè)扇區(qū)進(jìn)行擦除。頁(yè)容量為 528 字節(jié)時(shí),要對(duì)扇區(qū)0A 或扇區(qū) 0B 進(jìn)行擦除,需要先寫入操作碼,隨后是 3 字節(jié)地址(2 個(gè)無(wú)關(guān)位,9位頁(yè)地址 PA11PA3 與 13 個(gè)無(wú)關(guān)位)。要擦除扇區(qū) 115,也要先寫入操作碼,隨后是 3 字節(jié)地址(2 個(gè)無(wú)關(guān)位,4 位頁(yè)地址 PA11PA8 與 18 個(gè)無(wú)關(guān)位)。頁(yè)容量為 512 字節(jié)時(shí),要對(duì)扇區(qū) 0A 或扇區(qū) 0B 進(jìn)行擦除,先寫入操作碼,隨后是 3 字節(jié)地址(3 個(gè)無(wú)關(guān)位,9 位頁(yè)地址 A20A12 與 12 個(gè)無(wú)關(guān)位)。要擦除扇區(qū) 115,也要先寫入操作碼,隨后是 4 字節(jié)地址(3 個(gè)無(wú)關(guān)位,4 位頁(yè)地址 A20A17 與 17 個(gè)無(wú)關(guān)
20、位)。擦除操作是內(nèi)部進(jìn)行的,并會(huì)在一定時(shí)間內(nèi)完成。在這期間,狀態(tài)寄存器與 RDY/#BUSY 都會(huì)指示芯片處于忙狀態(tài)。7. 片擦除(操作碼:C7H、94H、80H 與 9AH)主存儲(chǔ)器可以使用片擦除命令一次全部擦除。要進(jìn)行一次片擦除操作,先要寫入操作碼,無(wú)須寫入地址,交且操作過(guò)程中任何寫入的數(shù)據(jù)都是無(wú)效的。操作碼寫入后,#CS 引腳上的上跳沿可以開(kāi)始擦除過(guò)程。在操作過(guò)程中,狀態(tài)寄存器指示芯片處于忙狀態(tài)。那些被保護(hù)或死鎖的扇區(qū)不受此命令的影響,其數(shù)據(jù)不會(huì)發(fā)生改變。只有那些沒(méi)有保護(hù)或死鎖的扇區(qū)會(huì)被擦除。芯片在進(jìn)行擦除操作的過(guò)程中#WP 引腳可以設(shè)為有效,但是在內(nèi)部擦除周期完成前保護(hù)不會(huì)生效。8.
21、通過(guò)緩沖區(qū)對(duì)主存儲(chǔ)器頁(yè)編程(操作碼:緩沖區(qū) 1 82H 緩沖區(qū) 2 85H)這個(gè)命令是緩沖區(qū)寫與緩沖區(qū)向主存儲(chǔ)器頁(yè)編程(帶預(yù)擦除)兩條命令的綜合。數(shù)據(jù)先從輸入引腳 SI 寫入緩沖區(qū) 1 或 2,再?gòu)木彌_區(qū)向指定的頁(yè)編程。在頁(yè)容量為 528 字節(jié)時(shí),要進(jìn)行一次此操作,先要寫入操作碼,再將數(shù)據(jù)寫入到緩沖區(qū)中,然后向芯片寫入 3 字節(jié)地址(2 個(gè)無(wú)關(guān)位,12 位頁(yè)地址 PA11PA0 與 10 位緩沖區(qū)地址 BFA9BFA0)。在頁(yè)容量為 512 字節(jié)時(shí),要進(jìn)行此操作,也要先將操作碼寫入,再將數(shù)據(jù)寫入到緩沖區(qū)中,隨后是 3 字節(jié)地址(3 個(gè)無(wú)關(guān)位,12 位頁(yè)地址 A20A9 與 9 位緩沖區(qū)地址 B
22、FA8BFA0)。所有的地址字節(jié)都被寫入后,就可以通過(guò)輸入引腳向芯片寫入數(shù)據(jù)了。當(dāng)#CS 引腳上出現(xiàn)上跳沿時(shí),芯片先會(huì)擦除主存儲(chǔ)器所選中的頁(yè),然后將存在緩沖區(qū)中的數(shù)據(jù)編程到頁(yè)中去。編程操作是在芯片內(nèi)部進(jìn)行的,并會(huì)在一定時(shí)間內(nèi)完成。在這期間,狀態(tài)寄存器與 RDY/#BUSY 都會(huì)指示芯片處于忙狀態(tài)。(8)扇區(qū)保護(hù)AT45DB161D 提供硬件與軟件兩種方法對(duì)扇區(qū)進(jìn)行保護(hù),以使其避免數(shù)據(jù)的破壞。軟件的方法是通過(guò)軟件命令來(lái)實(shí)現(xiàn)扇區(qū)保護(hù)的使能與禁止的。而硬件的方法則是通過(guò)使用#WP 引腳來(lái)實(shí)現(xiàn)的。通過(guò)“扇區(qū)保護(hù)寄存器”對(duì)哪一個(gè)扇區(qū)保護(hù)或不保護(hù)進(jìn)行選擇。要知道某一個(gè)扇區(qū)是否有保護(hù),可以查詢狀態(tài)寄存器。1
23、. 扇區(qū)保護(hù)的軟件方法1)扇區(qū)保護(hù)使能命令(操作碼:3DH-2AH-7FH-A9H)指定的扇區(qū)通過(guò)使扇區(qū)保護(hù)使能命令可使其在編程與擦除操作中得以保護(hù)。要采用方法使能扇區(qū)保護(hù),#CS 引腳必須處于有效狀態(tài),從輸入引腳 SI 寫入 4 字節(jié)命令序列。寫入后,#CS 引腳轉(zhuǎn)為無(wú)效狀態(tài),此時(shí)扇區(qū)保護(hù)就被使能了。命令字節(jié) 1字節(jié)2字節(jié)3字節(jié)4扇區(qū)保護(hù)使能命令3DH2AH7FHA9H扇區(qū)保護(hù)使能命令的時(shí)序圖:2)扇區(qū)保護(hù)禁止命令(操作碼:3DH-2AH-7FH-9AH)用軟件方法來(lái)禁止扇區(qū)保護(hù)時(shí),除了寫入的操作碼序列不同,其它與扇區(qū)保護(hù)使能命令是相同的。命令字節(jié) 1字節(jié)2字節(jié)3字節(jié)4扇區(qū)保護(hù)禁止命令3DH
24、2AH7FH9AH扇區(qū)保護(hù)禁止命令的時(shí)序圖:3)軟件控制保護(hù)的各個(gè)方面軟件控制保護(hù)在#WP 沒(méi)有或不能被單片機(jī)控制的情況下是很有用的。在這種情況下,#WP 可以懸空(#WP 引腳在內(nèi)部拉高),扇區(qū)保護(hù)可以由以上兩種命令來(lái)控制。(9)保護(hù)的硬件控制#WP 引腳設(shè)為有效狀態(tài)后,在扇區(qū)保護(hù)寄存器中設(shè)置為保護(hù)的扇區(qū)及扇區(qū)保護(hù)寄存器自身在編程與擦除操作中可以得到保護(hù)。扇區(qū)保護(hù)寄存器與設(shè)置為保護(hù)的任何一個(gè)扇區(qū),都不能被編程或擦除。要改變扇區(qū)保護(hù)寄存器的值只能將#WP 設(shè)為無(wú)效。如果#WP 被接到地,扇區(qū)保護(hù)寄存器的內(nèi)容不能被改變。如果#WP 被設(shè)為無(wú)效或接到 VCC,則其內(nèi)容可以被改變。#WP 會(huì)使保護(hù)的
25、軟件控制方法無(wú)效。例如:如果扇區(qū)原先并沒(méi)有被扇區(qū)保護(hù)使能命令保護(hù),那么簡(jiǎn)單的把#WP 設(shè)為有效狀態(tài)就可以使能扇區(qū)保護(hù)。當(dāng)#WP 引腳設(shè)為有效狀態(tài)而扇區(qū)保護(hù)使能命令沒(méi)有執(zhí)行,扇區(qū)保護(hù)不會(huì)被使能。如果在#WP 引腳設(shè)為有效狀態(tài)前扇區(qū)保護(hù)使能命令被執(zhí)行了,那么只簡(jiǎn)單地將#WP 設(shè)為無(wú)效并不能禁止扇區(qū)保護(hù)。在這種情況下,扇區(qū)保護(hù)禁止命令需要在#WP 引腳無(wú)效時(shí)執(zhí)行來(lái)使扇區(qū)保護(hù)禁止。在#WP 引腳為有效時(shí),扇區(qū)保護(hù)禁止命令會(huì)被忽略。1. 扇區(qū)保護(hù)寄存器非易揮發(fā)的(掉電不丟失)扇區(qū)保護(hù)寄存器指示哪些扇區(qū)被保護(hù)或未被保護(hù)。扇區(qū)保護(hù)寄存器包括 16 個(gè)字節(jié),從第 0 到第 15 字節(jié)的不同值確定了扇區(qū) 0 到
26、 15 是否被保護(hù)。扇區(qū)保護(hù)寄存器是可以由用戶修改的,但在生新程序前必須先擦除。扇區(qū)保護(hù)寄存器:扇區(qū)號(hào)0(0A,0B)1 to 15保護(hù)見(jiàn)下表FFH未保護(hù)00H扇區(qū) 0(0A,0B)0A0B07 頁(yè)8255 頁(yè)位位數(shù)據(jù)值位 7,6位 5,43,21,0扇區(qū) 0A,0B 未保護(hù)0000xxxx0xH0A 保護(hù)(第 07 頁(yè))1100xxxxCxH0B 保護(hù)(第 8255 頁(yè))0011xxxx3xH扇區(qū) 0A(第 07 頁(yè)),0B(第 8255 頁(yè))1111xxxxFxH注:從 ATMEL 出廠后 015 字節(jié)默認(rèn)值為 00H。1)擦除扇區(qū)保護(hù)寄存器命令(操作碼:3DH-2AH-7FH-CFH)為
27、了修改扇區(qū)保護(hù)寄存器的值,必須先使用擦除扇區(qū)保護(hù)寄存器命令將其擦除。要擦除扇區(qū)保護(hù)寄存器,#CS 必須設(shè)置為有效,然后將 4 字節(jié)的操作碼序列寫入芯片。在操作碼寫入后,需要將#CS 設(shè)置為無(wú)效,以初始化一個(gè)擦除操作。扇區(qū)保護(hù)寄存器的擦除需要一定的時(shí)間,此期間狀態(tài)寄存器會(huì)指示芯片處于忙狀態(tài)。如果在進(jìn)行擦除的過(guò)程中掉電,則扇區(qū)保護(hù)寄存器的擦除得不到保證。命令字節(jié)1字節(jié)2字節(jié)3字節(jié)4擦除扇區(qū)保護(hù)寄存器命令3DH2AH7FHCFH擦除扇區(qū)保護(hù)寄存器命令的時(shí)序圖:2)扇區(qū)保護(hù)寄存器編程命令(操作碼:3DH-2AH-7FH-FCH)在扇區(qū)保護(hù)寄存器被擦除后,就可以使用扇區(qū)保護(hù)寄存器編程命令對(duì)其進(jìn)行重新編程
28、。要對(duì)扇區(qū)保護(hù)寄存器進(jìn)行編程,必須先將#CS 設(shè)為有效,從 SI 引腳寫入 4字節(jié)操作碼序列。寫入后,再將要寫入扇區(qū)保護(hù)寄存器的內(nèi)容寫入。扇區(qū)保護(hù)寄存器中包括有 16 個(gè)字節(jié),所以要寫入 16 個(gè)字節(jié)。每個(gè)字節(jié)對(duì)應(yīng)對(duì)寄存器中的每個(gè)單元。16 個(gè)字節(jié)被寫入后,#CS 引腳需要設(shè)為無(wú)效以初始化一個(gè)編程周期。編程過(guò)程需要一定的時(shí)間,在此期間狀態(tài)寄存器指示芯片處于忙狀態(tài)。如果在進(jìn)行編程的過(guò)程中掉電,則扇區(qū)保護(hù)寄存器中的內(nèi)容的修改得不到保證。如果在#CS 引腳無(wú)效以前沒(méi)有寫入適當(dāng)數(shù)量的字節(jié),則沒(méi)有字節(jié)與其相對(duì)應(yīng)的寄存器單元所對(duì)應(yīng)扇區(qū)保護(hù)狀態(tài)的改變不能保證。如果扇區(qū)保護(hù)寄存器中的字節(jié)不是 00H 或 FF
29、H,則相應(yīng)單元所對(duì)應(yīng)的扇區(qū)保護(hù)狀態(tài)的改變不能保證。扇區(qū)保護(hù)寄存器編程命令利用內(nèi)部 SRAM 數(shù)據(jù)緩沖區(qū) 1 來(lái)實(shí)現(xiàn)編程操作。緩沖區(qū) 1 的數(shù)據(jù)在命令執(zhí)行完畢后會(huì)恢復(fù)回到原來(lái)的數(shù)據(jù)。命令 字節(jié) 1 字節(jié) 2 字節(jié) 3 字節(jié) 4扇區(qū)保護(hù)寄存器編程命令 3DH 2AH 7FH 9AH扇區(qū)保護(hù)寄存器編程命令的時(shí)序圖:3)扇區(qū)保護(hù)寄存器讀取命令(操作碼:32H)要讀取扇區(qū)保護(hù)寄存器,首先要將#CS 引腳設(shè)為有效,從 SI 引腳寫入操作碼與三個(gè)字節(jié)。寫入后,芯片便可以從 SO 引腳輸出數(shù)據(jù)。第一個(gè)字節(jié)是扇區(qū) 0 的內(nèi)容,第二個(gè)字節(jié)是扇區(qū) 1 的內(nèi)容,最后一個(gè)字節(jié)是扇區(qū) 15 的內(nèi)容。在最后一個(gè)字節(jié)輸出后,
30、再輸出的數(shù)據(jù)就為未定義數(shù)據(jù)。最后必須要將#CS 設(shè)為無(wú)效狀態(tài)以終止扇區(qū)保護(hù)寄存器讀取操作,并使輸出轉(zhuǎn)為高阻態(tài)。命令字節(jié)1字節(jié)2字節(jié)3字節(jié)4扇區(qū)保護(hù)寄存器讀取命令32HXXHXXHXXH扇區(qū)保護(hù)寄存器的時(shí)序圖:4)扇區(qū)保護(hù)寄存器的各個(gè)方面扇區(qū)保護(hù)寄存器約可以擦/寫 10000 次。使用者會(huì)很關(guān)心芯片在其應(yīng)用系統(tǒng)中的使用壽命。如果應(yīng)用系統(tǒng)中需要多于 10000 次對(duì)扇區(qū)保護(hù)寄存器的修改,因?yàn)樗枰R時(shí)性地對(duì)某一個(gè)扇區(qū)不加以保護(hù),那么應(yīng)用系統(tǒng)就要限制自身的使用。要合理地設(shè)計(jì)應(yīng)用系統(tǒng),以使其對(duì)扇區(qū)保護(hù)寄存器的個(gè)性不超過(guò) 10000 次。(10)安全措施1)扇區(qū)死鎖命令(3DH-2AH-7FH-30H)
31、這一命令應(yīng)用于商業(yè)上。芯片可以通過(guò)扇區(qū)死鎖命令對(duì)某一個(gè)扇區(qū)進(jìn)行死鎖,從而使扇區(qū)變?yōu)橹蛔x的。這在應(yīng)用中是很有用的,用來(lái)存儲(chǔ)代碼或安全信息。當(dāng)一個(gè)扇區(qū)被死鎖后,它就不能再被擦除或編程,也不能解鎖。要執(zhí)行扇區(qū)死鎖命令,#CS 引腳要設(shè)為有效狀態(tài),寫入 4 字節(jié)操作碼序列,一定按正確的順序?qū)懭?。寫入后,再寫?3 字節(jié)地址。在地址寫入后,再將#CS引腳設(shè)為無(wú)效狀態(tài)以初始化一個(gè)內(nèi)部死鎖操作。在進(jìn)行死鎖操作的過(guò)程中,狀態(tài)寄存器指示芯片處于忙狀態(tài)。如果操作過(guò)程中掉電,則死鎖操作得不到保證。在這種情況下,使用者應(yīng)讀取扇區(qū)死鎖寄存器以確定相應(yīng)的扇區(qū)是否已經(jīng)死鎖。命令字節(jié)1字節(jié)2字節(jié)3字節(jié)4扇區(qū)死鎖命令3DH2A
32、H7FH30H扇區(qū)死鎖命令的時(shí)序圖:1. 扇區(qū)死鎖寄存器扇區(qū)死鎖寄存器中包含 16 個(gè)字節(jié),如下表所示:扇區(qū)號(hào)0(0A,0B)1 to 15保護(hù)見(jiàn)下表FFH未保護(hù)00H扇區(qū) 0(0A,0B)0A0B07 頁(yè)8255 頁(yè)位位數(shù)據(jù)值位 7,6位 5,43,21,0扇區(qū) 0A,0B 未保護(hù)0000000000H0A 保護(hù)(第 07 頁(yè))11000000C0H0B 保護(hù)(第 8255 頁(yè))0011000030H扇區(qū) 0A(第 07 頁(yè)),0B(第 8255 頁(yè))11110000F0H2. 扇區(qū)死鎖寄存器讀取命令(操作碼:35H)扇區(qū)死鎖寄存器中的數(shù)據(jù)可以讀取以確定扇區(qū)是否被死鎖。要讀取扇區(qū)死鎖寄存器,#CS 引腳必須設(shè)為有效,通過(guò) SI 引腳寫入操作碼與 3 個(gè)字節(jié)。寫入后,扇區(qū)死鎖寄存器中的數(shù)據(jù)將從 SO 引腳輸出。每一個(gè)字節(jié)是扇區(qū) 0 (0A,0B)的內(nèi)容,第二個(gè)字節(jié)是扇區(qū) 1 的內(nèi)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 綠色品牌與企業(yè)形象競(jìng)爭(zhēng)力考核試卷
- 創(chuàng)業(yè)創(chuàng)新與可持續(xù)發(fā)展戰(zhàn)略研究考核試卷
- 安全生產(chǎn)培訓(xùn)認(rèn)證對(duì)企業(yè)安全文化建設(shè)的影響評(píng)估考核試卷
- 中國(guó)新媒體短視頻成功的白酒企直播案例
- 山東在職申碩考試試題及答案
- 老師護(hù)理考試題及答案
- 互動(dòng)游戲化營(yíng)銷考核試卷
- 消防題目考試試題及答案
- 雅居樂(lè)財(cái)務(wù)面試題及答案
- 口譯復(fù)述考試題及答案
- TB-T 3355-2023 軌道檢測(cè) 軌道幾何狀態(tài)動(dòng)態(tài)檢測(cè)
- 自來(lái)水廠操作規(guī)程手冊(cè)
- 天翼云從業(yè)者認(rèn)證考試題庫(kù)
- 中國(guó)風(fēng)中醫(yī)藥文化PPT模板
- 2022-2023學(xué)年廣西北海市七年級(jí)(下)期末地理試卷(含解析)
- 醫(yī)院戰(zhàn)略管理如何制定醫(yī)院戰(zhàn)略規(guī)劃講座
- 部編版語(yǔ)文二年級(jí)下冊(cè)第4單元童心童趣大單元整體作業(yè)設(shè)計(jì)
- 娛樂(lè)場(chǎng)所文明服務(wù)責(zé)任書(shū)
- 鋼結(jié)構(gòu)防腐油漆施工方案
- 第五講社會(huì)建設(shè)
- GB/T 20303.1-2006起重機(jī)司機(jī)室第1部分:總則
評(píng)論
0/150
提交評(píng)論