- 相關(guān)推薦
串行DataFlash存儲(chǔ)器及其與單片機(jī)的接口
摘要:DataFlash是Atmel公司新推出的大容量串行Flash存儲(chǔ)器產(chǎn)品,具有體積小、容量大、功耗低和硬件接口簡單的特點(diǎn),非常易于構(gòu)成微型測(cè)量系統(tǒng)。本文重點(diǎn)介紹此類存儲(chǔ)器與單片機(jī)的接口,并給出實(shí)際的電路設(shè)計(jì)和軟件代碼示例。1 概述
Flash存儲(chǔ)器按其接口可分為串行和并行兩大類。串行Flash存儲(chǔ)器大多采用I2C接口或SPI接口進(jìn)行讀寫;與并行Flash存儲(chǔ)器相比,所需引腳少、體積小、易于擴(kuò)展、與單片機(jī)或控制器連接簡單、工作可靠,所以串行Flash存儲(chǔ)器越來越多地用在各類電子產(chǎn)品和工業(yè)測(cè)控系統(tǒng)中。
DataFlash是美國Atmel公司新推出的大容量串行Flash存儲(chǔ)器產(chǎn)品,采用NOR技術(shù)制造,可用于存儲(chǔ)數(shù)據(jù)或程序代碼,其產(chǎn)品型號(hào)為AT45DBxxxx。此系列存儲(chǔ)器容量較大,從1Mb~256Mb;封裝尺寸小,最小封裝型式(CBGA)尺寸為6mm×8mm;采用SPI接口進(jìn)行讀寫,硬件連線少;內(nèi)部頁面尺寸較小,8Mb容量的頁面尺寸為264字節(jié),16Mb和32Mb容量的頁面尺寸為512字節(jié),64Mb容量的頁面尺寸為1056字節(jié),128Mb容量和256Mb容量的頁面尺寸為2112字節(jié)。另外,AT45DBxxxx系列存儲(chǔ)器內(nèi)部集成了兩個(gè)與主存頁面相同大小的SRAM緩存,極大地提高了整個(gè)系統(tǒng)的靈活性,簡化了數(shù)據(jù)的讀寫過程。此外,AT45DBxxxx系列存儲(chǔ)器工作電壓較低,只需2.7~3.6V;整個(gè)芯片的功耗也較小,典型的讀取電流為4mA,待機(jī)電流僅為2μA。所有這些特點(diǎn)使得此系列存儲(chǔ)器非常適合于構(gòu)成微型、低功耗的測(cè)控系統(tǒng)。筆者就使用AT45DB161B存儲(chǔ)器和PIC16LC73B單片機(jī)及微型壓力傳感器構(gòu)成了用兩片紐扣電池驅(qū)動(dòng)的微型壓力測(cè)量裝置,其外形尺寸僅為φ10mm×20mm。
2 芯片簡介
2.1 引腳排列和功能
AT45DB161B為DataFlash系列中的中檔產(chǎn)品,單片容量為16Mb。其引腳排列如圖1所示,引腳功能如表1所列。
表1 AT45DB161B引腳功能
2.2 芯片內(nèi)部邏輯結(jié)構(gòu)
AT45DB161B的內(nèi)部邏輯結(jié)構(gòu)分為三個(gè)部分:存儲(chǔ)器頁陣列(主存)、緩存與I/O接口。AT45DB161B的存儲(chǔ)頁面大小為528字節(jié),整個(gè)存儲(chǔ)器共分為4096頁,片內(nèi)集成了兩個(gè)528字節(jié)的SRAM緩存,內(nèi)部邏輯結(jié)構(gòu)如圖2所示。
3 存儲(chǔ)器讀寫接口
3.1 SPI接口及操作模式
AT45DB161B存儲(chǔ)器采用SPI接口進(jìn)行讀寫。SPI接口是一種通用串行接口總線,字長為8位,用來與外部設(shè)備(例如EEPROM、A/D轉(zhuǎn)換器等)進(jìn)行通信。SPI接口利用SCK、SI和SO三根線進(jìn)行數(shù)據(jù)的讀/寫。其中,SCK為時(shí)鐘信號(hào),SI和SO為數(shù)據(jù)輸入和輸出線。AT45DB161B的SCK引腳的時(shí)鐘信號(hào)必須由外部單片機(jī)或控制器輸入,讀/寫命令字由SI引腳輸入,數(shù)據(jù)由SO引腳輸出。
SPI接口共有四種操作模式,分別為0、1、2和3。SPI操作模式?jīng)Q定了設(shè)備接收和發(fā)送數(shù)據(jù)時(shí)的時(shí)鐘相位和極性,即決定了時(shí)鐘信號(hào)的上升和下降沿與數(shù)據(jù)流行方向之間的關(guān)系,如圖3所示。
DataFlash系列存儲(chǔ)器僅支持使用得最為廣泛的SPI模式0和3。在這兩種模式下,SCK信號(hào)的上升沿觸發(fā)數(shù)據(jù)輸入,下降沿觸發(fā)數(shù)據(jù)輸出。二者的區(qū)別是SCK信號(hào)的起始電平不同。
3.2 存儲(chǔ)器命令接口與狀態(tài)機(jī)
除了基本存儲(chǔ)單元外,DataFlash系列存儲(chǔ)器內(nèi)部還包括命令用戶接口CUI(Command User Interface)和狀態(tài)機(jī)。CUI接收用戶軟件的操作命令,將其翻譯成狀態(tài)機(jī)內(nèi)部操作碼并進(jìn)行命令的有效性檢驗(yàn)。狀態(tài)機(jī)控制存儲(chǔ)器所有的內(nèi)部操作,包含一個(gè)8位的狀態(tài)寄存器(status register),用來指示設(shè)備的操作狀態(tài)。向存儲(chǔ)器輸入讀狀態(tài)寄存器命令可將狀態(tài)寄存器的數(shù)據(jù)從最高位開始依次讀出。狀態(tài)寄存器各位的意義如表2所列。
表2 狀態(tài)寄存器各位定義
3.3 存儲(chǔ)器操作命令及其模式
為了使存儲(chǔ)器進(jìn)行所需的操作,例如讀、寫、擦除等,必須從SI引腳輸入相應(yīng)的操作命令,然后從SO或SI引腳讀取或?qū)懭霐?shù)據(jù)。除讀狀態(tài)寄存器命令外,所有的命令格式為:1字節(jié)操作碼 3字節(jié)地址碼。操作碼指示所需的操作,DataFlash系列節(jié)地址碼用來尋址存儲(chǔ)器頁陣列或緩存。圖4為AT45DB161B的讀/寫命令格式。
4 存儲(chǔ)器與單片機(jī)接口實(shí)例
4.1
【串行DataFlash存儲(chǔ)器及其與單片機(jī)的接口】相關(guān)文章:
MultiMediacard及其與單片機(jī)接口03-20
串行接口鍵盤控制器SK5278及其在單片機(jī)系統(tǒng)中的應(yīng)用03-18
一種用于單片機(jī)的紅外串行通信接口03-18
ADμC812的串行外設(shè)接口(SPI)及其應(yīng)用03-18
并行接口鐵電存儲(chǔ)器FM1808及其應(yīng)用03-20