999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于dsPIC30F6010A的并口NANDFlash驅(qū)動設(shè)計與實現(xiàn)

2020-05-18 02:44:46陸鵬
科技視界 2020年9期
關(guān)鍵詞:定義信號

陸鵬

摘 要

本文通過分析8位并口NAND Flash的工作時序,設(shè)計其在dsPIC30F 6010A單片機(jī)下的軟件驅(qū)動,能夠?qū)崿F(xiàn)對NAND Flash的讀寫擦除等各種操作。

關(guān)鍵詞

NAND Flash;dsPIC30F6010A;并口;驅(qū)動

中圖分類號: TP316.2 ? ? ? ? ? ? 文獻(xiàn)標(biāo)識碼: A

DOI:10.19694/j.cnki.issn2095-2457.2020.09.044

0 前言

NAND Flash是嵌入式設(shè)計中常見的存儲器。8位并口NAND Flash是指數(shù)據(jù)線寬度為8位,通信接口為并行接口的NAND Flash,在其與微處理器的配合應(yīng)用中,NAND Fla sh與微處理器一般采用如圖1所示的連接方式。微處理器軟件驅(qū)動的設(shè)計是根據(jù)NAND Flash的工作時序,通過配置相關(guān)寄存器進(jìn)行相應(yīng)操作來實現(xiàn)的。本文中NAND Flash使用Micron公司的MT29F2G08系列進(jìn)行說明,微處理器則使用了Microchip公司的16位高性能單片機(jī)dsPIC30F6010A。

1 NAND Flash信號時序

從軟件驅(qū)動角度來講,NAND Flash最基本的操作有四種,即命令輸入、地址輸入、數(shù)據(jù)輸入、數(shù)據(jù)輸出。所有的NAND Flash接口命令都是由這四種操作組合而成,以MT29F2G08的READ PAGE命令為例,它是由兩個命令輸入操作(0x00,0x30)、五個地址輸入操作以及若干數(shù)據(jù)輸出操作組成,READ PAGE命令時序如圖2所示。

因此如果在微處理上實現(xiàn)這四種基本操作,就能實現(xiàn)所有的接口命令,即實現(xiàn)了NAND Flash的驅(qū)動設(shè)計。

為了實現(xiàn)這四種操作,我們需要明確兩個內(nèi)容:一,四種操作中接口信號的電平;二,接口信號及各信號之間的時間要求。這兩項內(nèi)容均在NAND Flash的器件手冊上有明確要求。以MT29F2G08為例,在它的的異步接口模式列表中(表1),我們可以得到四種操作的接口信號電平要求。以命令輸入(Comm and Input)為例,從表1中可以得到接口信號電平要求為:當(dāng)CE#為低,CLE為高,ALE為低,WE#的上升沿,WP#為高時,完成命令輸入操作。

接口信號及各信號之間的時間要求通過時序定義來得到。命令輸入的時序定義如圖3所示,接口信號的時間要求在表2中列出。因命令輸入發(fā)生在WE#上升沿,因此與WE#上升沿相關(guān)的幾個時間是設(shè)計的關(guān)鍵所在:tWP寫使能脈沖寬度時間-最小為10ns;tDS數(shù)據(jù)建立時間-最小7ns,即命令輸入后WE#需至少保持使能7ns才可以置高;tDH數(shù)據(jù)保持時間-最少5ns,即WE#置高后命令需要至少保持5ns;tCLS命令鎖存使能建立時間-最少10ns;tCLH命令鎖存使能保持時間-最小為5ns,即WE#置高后CLE需至少保持為高5ns。

得到接口信號的電平和時間要求后,就可以在微處理器上編程實現(xiàn)對NAND Flash的各種操作。

2 軟件驅(qū)動實現(xiàn)

在進(jìn)行NAND Flash驅(qū)動編程之前,我們需要對微處理器dsPIC30F6010A的I/O按照圖1所示的連接方式進(jìn)行配置,分別將CE#、RE#, WE#、R/B#、ALE、CLE、WP#、I/O[7:0]配置到所需的I/O口,其中CE#、RE#、WE#、ALE、CLE、WP#為輸出端口,R/B#為輸入端口,I/O[7:0]在命令輸入、地址輸入、數(shù)據(jù)輸入三種操作時為輸出端口,在數(shù)據(jù)輸出操作時為輸入端口。時間方面,本例中dsPIC30F6010A系統(tǒng)時鐘設(shè)置為24MHz,因此指令周期FCY為24MHz/4為6MHz,即一條指令所用時間為167ns。

以命令輸入操作為例,將其定義為函數(shù)FlashWriteCmd(),為函數(shù)定義一個參數(shù)cmd,根據(jù)上一小節(jié)所講,按照命令輸入的時序要求,將函數(shù)編寫如下:

void FlashWriteCmd(unsigned char cmd)

{

TRISDATA &= ~(0x00FF) ; // RE0~RE7輸出

ALE=0;

CLE=1;

_nop_(); ?_nop_(); //tCLS

WE=0;

_nop_(); ?_nop_(); _nop_(); _nop_();

_nop_(); ?_nop_(); _nop_(); _nop_();

_nop_(); ?_nop_(); _nop_(); _nop_();//tWP

DATAOUT= ((DATAOUT ?& 0xFF00) | cmd);

_nop_(); ?_nop_(); //tDS

WE=1;

_nop_(); ?_nop_(); ?_nop_();// tDH, tCLH

CLE=0;

}

按同樣思路完成其他三種基本操作的函數(shù)編程,分別定義為:地址輸入函數(shù)FlashWriteAddr(),數(shù)據(jù)輸入函數(shù)Flash Wr itePort(),數(shù)據(jù)輸出函數(shù)FlashReadPort(),以這四個函數(shù)為基礎(chǔ)即可實現(xiàn)所有接口命令函數(shù),下面以接口命令READ PAGE為例說明。

將READ PAGE命令定義為函數(shù)FlashReadByte(),為函數(shù)定義五個參數(shù),Read_num讀取字節(jié)數(shù)量,ByteAddr字節(jié)地址,PageAddr頁地址,BlockAddr塊地址,以及buf字節(jié)存儲位置。如圖1所示,READ PAGE命令需要首先發(fā)送命令0x00,然后發(fā)送五個周期的地址,再發(fā)送命令0x30,之后等待R/B#(RDY)信號為高后才能進(jìn)行數(shù)據(jù)讀取,依此函數(shù)編程如下:

void FlashReadByte(unsigned int

Read_number,unsigned int ByteAddr,unsigned

char PageAddr,unsigned int BlockAddr,unsigned

char *buf)

{

unsigned int j,

CE=0;

FlashWriteCmd(0x00); //讀命令周期1

FlashWriteAddr(ByteAddr&0xff); //寫字節(jié)低位地址

FlashWriteAddr((ByteAddr>>8)&0x3f); //寫字節(jié)高位地址

FlashWriteAddr(PageAddr); //寫頁地址

FlashWriteAddr((BlockAddr>>1)&0xff); //寫塊低位地址

FlashWriteAddr((BlockAddr>>9)&0x0F); //寫塊高位地址

FlashWriteCmd(0x30); //讀命令周期2

delay_us(20);

NAND_WAITREADY();//等待RDY信號置高

for(j=0;j

{

ClrWdt();

*buf=FlashReadPort(); //讀取數(shù)據(jù)

buf++;

}

CE=1;

}

依照類似方法可實現(xiàn)NAND Flash規(guī)定的所有接口命令。需要注意的是在實現(xiàn)函數(shù)時,要將時間留出余量,以免出現(xiàn)異常錯誤。

3 結(jié)論

本文介紹的驅(qū)動程序已經(jīng)應(yīng)用在項目中,實際結(jié)果顯示程序功能正確、穩(wěn)定可靠。雖然驅(qū)動是基于dsPIC30F6010A單片機(jī),但其方法可以用于任意微處理器,此外驅(qū)動可適用于任何符合ONFI1.0標(biāo)準(zhǔn)的NAND Flash器件,有良好的通用性。

參考文獻(xiàn)

[1]Rino Micheloni,Luca Crippa,Alessia Marelli.Inside NAND Flash Memories.

[2]MT29F2G08 NAND Flash Memory Datasheet.Micron Technology,Inc.

[3]dsPIC30F6010A/6015 Datasheet.Microchip Technology,Inc.

猜你喜歡
定義信號
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
永遠(yuǎn)不要用“起點(diǎn)”定義自己
海峽姐妹(2020年9期)2021-01-04 01:35:44
完形填空二則
定義“風(fēng)格”
孩子停止長個的信號
基于LabVIEW的力加載信號采集與PID控制
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
一種基于極大似然估計的信號盲抽取算法
修辭學(xué)的重大定義
山的定義
主站蜘蛛池模板: 日韩精品亚洲人旧成在线| 中国一级特黄视频| 四虎永久在线视频| 超碰精品无码一区二区| 国内精品久久九九国产精品| 亚洲精品波多野结衣| 伊人久久大香线蕉影院| 亚洲天堂色色人体| 成人精品视频一区二区在线| 精品三级网站| 天堂网国产| 日韩大乳视频中文字幕 | 亚洲精品在线91| 久久人与动人物A级毛片| 在线色国产| 日韩高清一区 | 国产亚洲欧美日韩在线一区二区三区| 她的性爱视频| 日韩视频福利| 欧美日韩午夜| 毛片视频网| 国产精品无码久久久久AV| 99精品在线视频观看| 日韩欧美国产精品| 久久婷婷五月综合色一区二区| 久久96热在精品国产高清| 欧美另类图片视频无弹跳第一页| 99视频免费观看| 在线看国产精品| 国产精品自在拍首页视频8| 综合久久五月天| 在线观看av永久| 亚洲国产欧美中日韩成人综合视频| 精品综合久久久久久97超人该| 欧美成人怡春院在线激情| 国产人人射| 日韩 欧美 小说 综合网 另类| 99热这里只有成人精品国产| 国产导航在线| 国产青榴视频| 中文字幕66页| 3344在线观看无码| 青青热久免费精品视频6| 91国内在线视频| 波多野结衣爽到高潮漏水大喷| 国内精自视频品线一二区| 久久黄色一级视频| 亚洲人成网线在线播放va| 日韩欧美国产中文| av在线手机播放| 亚洲欧美日韩高清综合678| 99久久性生片| 国产高清色视频免费看的网址| 国产尤物jk自慰制服喷水| 天天综合网站| 日韩AV无码一区| 国产激爽大片高清在线观看| 91丨九色丨首页在线播放 | 波多野结衣无码中文字幕在线观看一区二区| 一区二区偷拍美女撒尿视频| 久久国产成人精品国产成人亚洲| 欧美高清三区| 天天摸天天操免费播放小视频| 精品一区二区无码av| 在线观看国产精品一区| 国产成人亚洲综合A∨在线播放| 激情六月丁香婷婷| 国产在线视频欧美亚综合| 免费看a级毛片| 日韩视频免费| 亚洲swag精品自拍一区| 99视频在线免费观看| 欧美在线一二区| 国产污视频在线观看| 岛国精品一区免费视频在线观看 | 亚洲国产成人在线| 国产精品网址你懂的| 成人午夜福利视频| 日韩毛片在线视频| 五月婷婷伊人网| 国产无码在线调教| 国产综合亚洲欧洲区精品无码|