當(dāng)前位置:首頁(yè) > 智能硬件 > 智能硬件
[導(dǎo)讀]重點(diǎn)介紹DataFlash存儲(chǔ)器與單片機(jī)的接口,并給出實(shí)際的電路設(shè)計(jì)和軟件代碼示例。

    摘要:DataFlash是Atmel公司新推出的大容量串行Flash存儲(chǔ)器產(chǎn)品,具有體積小、容量大、功耗低和硬件接口簡(jiǎn)單的特點(diǎn),非常易于構(gòu)成微型測(cè)量系統(tǒng)。本文重點(diǎn)介紹此類存儲(chǔ)器與單片機(jī)的接口,并給出實(shí)際的電路設(shè)計(jì)和軟件代碼示例。

    關(guān)鍵詞:串行Flash存儲(chǔ)器 接口 AT45DB161B

1 概述

Flash存儲(chǔ)器按其接口可分為串行和并行兩大類。串行Flash存儲(chǔ)器大多采用I2C接口或SPI接口進(jìn)行讀寫(xiě);與并行Flash存儲(chǔ)器相比,所需引腳少、體積小、易于擴(kuò)展、與單片機(jī)或控制器連接簡(jiǎn)單、工作可靠,所以串行Flash存儲(chǔ)器越來(lái)越多地用在各類電子產(chǎn)品和工業(yè)測(cè)控系統(tǒng)中。

DataFlash是美國(guó)Atmel公司新推出的大容量串行Flash存儲(chǔ)器產(chǎn)品,采用NOR技術(shù)制造,可用于存儲(chǔ)數(shù)據(jù)或程序代碼,其產(chǎn)品型號(hào)為AT45DBxxxx。此系列存儲(chǔ)器容量較大,從1Mb~256Mb;封裝尺寸小,最小封裝型式(CBGA)尺寸為6mm×8mm;采用SPI接口進(jìn)行讀寫(xiě),硬件連線少;內(nèi)部頁(yè)面尺寸較小,8Mb容量的頁(yè)面尺寸為264字節(jié),16Mb和32Mb容量的頁(yè)面尺寸為512字節(jié),64Mb容量的頁(yè)面尺寸為1056字節(jié),128Mb容量和256Mb容量的頁(yè)面尺寸為2112字節(jié)。另外,AT45DBxxxx系列存儲(chǔ)器內(nèi)部集成了兩個(gè)與主存頁(yè)面相同大小的SRAM緩存,極大地提高了整個(gè)系統(tǒng)的靈活性,簡(jiǎn)化了數(shù)據(jù)的讀寫(xiě)過(guò)程。此外,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 芯片簡(jiǎn)介

2.1 引腳排列和功能

AT45DB161B為DataFlash系列中的中檔產(chǎn)品,單片容量為16Mb。其引腳排列如圖1所示,引腳功能如表1所列。

表1 AT45DB161B引腳功能

引腳名稱 功能描述
CS 片選
SCK 串行時(shí)鐘
SI 串行輸入
SO 串行輸出
WP 頁(yè)面寫(xiě)保護(hù)
RESET 復(fù)位
RDY/BUSY 準(zhǔn)備好/忙
NC 未使用

2.2 芯片內(nèi)部邏輯結(jié)構(gòu)

AT45DB161B的內(nèi)部邏輯結(jié)構(gòu)分為三個(gè)部分:存儲(chǔ)器頁(yè)陣列(主存)、緩存與I/O接口。AT45DB161B的存儲(chǔ)頁(yè)面大小為528字節(jié),整個(gè)存儲(chǔ)器共分為4096頁(yè),片內(nèi)集成了兩個(gè)528字節(jié)的SRAM緩存,內(nèi)部邏輯結(jié)構(gòu)如圖2所示。

3 存儲(chǔ)器讀寫(xiě)接口

3.1 SPI接口及操作模式

AT45DB161B存儲(chǔ)器采用SPI接口進(jìn)行讀寫(xiě)。SPI接口是一種通用串行接口總線,字長(zhǎng)為8位,用來(lái)與外部設(shè)備(例如EEPROM、A/D轉(zhuǎn)換器等)進(jìn)行通信。SPI接口利用SCK、SI和SO三根線進(jìn)行數(shù)據(jù)的讀/寫(xiě)。其中,SCK為時(shí)鐘信號(hào),SI和SO為數(shù)據(jù)輸入和輸出線。AT45DB161B的SCK引腳的時(shí)鐘信號(hào)必須由外部單片機(jī)或控制器輸入,讀/寫(xiě)命令字由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),用來(lái)指示設(shè)備的操作狀態(tài)。向存儲(chǔ)器輸入讀狀態(tài)寄存器命令可將狀態(tài)寄存器的數(shù)據(jù)從最高位開(kāi)始依次讀出。狀態(tài)寄存器各位的意義如表2所列。

表2 狀態(tài)寄存器各位定義

位7 位6 位5 位4 位3
準(zhǔn)備好/忙 比較 容    量
位2 位1 位0  
將來(lái)使用

3.3 存儲(chǔ)器操作命令及其模式

為了使存儲(chǔ)器進(jìn)行所需的操作,例如讀、寫(xiě)、擦除等,必須從SI引腳輸入相應(yīng)的操作命令,然后從SO或SI引腳讀取或?qū)懭霐?shù)據(jù)。除讀狀態(tài)寄存器命令外,所有的命令格式為:1字節(jié)操作碼+3字節(jié)地址碼。操作碼指示所需的操作,DataFlash系列節(jié)地址碼用來(lái)尋址存儲(chǔ)器頁(yè)陣列或緩存。圖4為AT45DB161B的讀/寫(xiě)命令格式。

4 存儲(chǔ)器與單片機(jī)接口實(shí)例

4.1 硬件電路

DataFlash系列存儲(chǔ)器幾乎可以和任何類型的單片機(jī)接口,無(wú)論單片機(jī)是否有SPI接口。當(dāng)然,如果單片機(jī)有SPI接口,那么存儲(chǔ)器讀/寫(xiě)程序就相對(duì)簡(jiǎn)單些;如果單片機(jī)沒(méi)有SPI接口,則可以用軟件仿真SPI接口與存儲(chǔ)器通信。

圖5為微型壓力測(cè)量系統(tǒng)的一部分。存儲(chǔ)器采用AT45DB161B-TC,TSOD封裝;單片機(jī)為美國(guó)Microchip公司的PIC16LC73B-04/SS,SSOP封裝。單片機(jī)采用軟件仿真SPI接口的方式與存儲(chǔ)器通信,存儲(chǔ)器工作于SPI模式0。

4.2 AT45DB161B存儲(chǔ)器讀/寫(xiě)子程序

DataFlash系列存儲(chǔ)器可以按地址從低到高順序讀寫(xiě),也可以隨機(jī)讀寫(xiě)任一字節(jié)的數(shù)據(jù)。對(duì)于順序讀數(shù)據(jù),可以使用連續(xù)讀主存頁(yè)陣列命令(操作碼68H或E8H)從給定的起始地址開(kāi)始連續(xù)讀出,中間不需用戶干預(yù),也可使用讀單頁(yè)主存命令(操作碼52H或D2H),自行提供頁(yè)地址讀取數(shù)據(jù)。對(duì)于順序?qū)憯?shù)據(jù),可以使用通過(guò)緩存寫(xiě)主存頁(yè)命令(操作碼82H或85H),直接將數(shù)據(jù)寫(xiě)入主存;也可以先使用寫(xiě)緩存命令(操作碼84H或87H),將數(shù)據(jù)寫(xiě)入緩存,在適當(dāng)?shù)臅r(shí)刻再使用緩存寫(xiě)主存頁(yè)命令(操作碼83H或86H),將緩存中的數(shù)據(jù)寫(xiě)入主存,如圖6所示。使用何種方式讀寫(xiě)取決于特定的應(yīng)用場(chǎng)合與要求。

下面的子程序?yàn)轫樞蜃x/寫(xiě)存儲(chǔ)器的例子。子程序spiwt采用了通過(guò)緩存寫(xiě)主存頁(yè)的方法,向存儲(chǔ)器寫(xiě)入1字節(jié)數(shù)據(jù)。順序讀存儲(chǔ)器子程序spicrd采用了邊疆讀主存頁(yè)陣列命令。從給定地址處連續(xù)讀出數(shù)據(jù),用圖5所示的PIC16LC73B單片機(jī)匯編語(yǔ)言編寫(xiě),使用MPLAB5.4.00編譯器編譯通過(guò)并燒寫(xiě)入單片機(jī),按圖5所示系統(tǒng)實(shí)測(cè)通過(guò)。

    ;順序?qū)懽映绦颍胹piwt名稱調(diào)用

spiwt bcf STATUS,RP0

bcf PORTB,SCK ;模式0

bcf PORTB,cs ;片選

movlw 82H ;加載操作碼

movwf spi_out ;置入寄存器

call spiout ;調(diào)用子程序輸出操作碼

movf PA1,w ;加載第一字節(jié)地址

movwf spi_out ;置入寄存器

call spiout ;調(diào)用子程序輸出

movf BA1,w

xorwf PA2,w ;獲得第二字節(jié)地址

movwf spi_out ;置入寄存器

call spiout ;調(diào)用子程序輸出

movf BA2,w ;加載第三字節(jié)地址

movwf spi_out ;置入寄存器

call spiout ;調(diào)用子程序輸出

movf spi_wt,w ;加載待寫(xiě)數(shù)據(jù)

movwf spi_out ;置入寄存器

call spiout ;調(diào)用子程序輸出

bsf PORTB,cs ;觸發(fā)寫(xiě)入操作

nop ;延時(shí)

retlw 0 ;從子程序返回

;輸出子程序,用spiout名稱調(diào)用

spiout movlw 0x08 ;加載輸出位數(shù)

movwf spi_cnt ;置入寄存器

nspiout rlf spi_out ;先輸出最高位

btfsc STATUS,C ;是否為1

bsf PORTB,SDO ;輸出1

btfss STATUS,C ;是否為0

bcf PORTB,SDO ;輸出0

nop ;延時(shí)

bsf PORTB,SCK ;時(shí)鐘信號(hào)上升沿

nop ;延時(shí)

bcf PORTB,SCK ;時(shí)鐘信號(hào)下降沿

decfsz spi_cnt ;檢查輸出位數(shù)

goto nspiout ;輸出下一位

retlw 0 ;從子程序返回

;順序讀子程序,用名稱spicrd調(diào)用

spicrd bcf STATUS,RP0

bcf PORTB,cs ;片選

bcf PORTB,SCK ;模式0

movlw E8H ;加載操作碼

movwf spi_out ;置入寄存器

call spiout ;調(diào)用子程序輸出

movf PA1,w ;加載第一字節(jié)地址

movwf spi_out ;置入寄存器

call spiout ;調(diào)用子程序輸出

movf BA1,w

xorwf PA2,w ;獲得第二字節(jié)地址

movwf spi_out ;置入寄存器

call spiout ;調(diào)用子程序輸出

movf BA2,w ;加載第三字節(jié)地址

movwf spi_out ;置入寄存器

call spiout ;調(diào)用子程序輸出

movf DCRE,w ;加載任意位字節(jié)

movwf spi_out ;置入寄存器

call spiout ;調(diào)用子程序輸出

movf DCRE,w ;共需4個(gè)任意位字節(jié)

movwf spi_out

call spiout

movf DCRE,w

movwf spi_out

call spiout

movf DCRE,w

movwf spi_out

call spiout

retlw 0 ;從子程序返回

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉