音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

有問NAND FLASH的問題?急

作者:xujian370 欄目:ARM技術(shù)
有問NAND FLASH的問題?急
   NAND FLASH的片選線我是用地址,讀寫信號譯碼出來的,現(xiàn)在的問題是能讀到ID號,但是我要檢測壞塊,我去讀每個BLOCK的第1和2頁的空閑的16個字節(jié),通過判斷第6個字節(jié)來判斷塊的好壞,但是我讀到的都是0XC0,這是什么問題?
   難道片選一定要用IO線來控制?還有程序中的檢測空閑與忙是讀狀態(tài)寄存器還是讀R/B這個引腳?datasheet好象沒講清楚。

2樓: >>參與討論
平常人
問NAND FLASH的問題
NAND的片選最好用I/O,因為地址線隨時可以變化的,比如在中斷處理期間。

判斷空閑與忙最好是先檢測R/B,R/B為Ready時讀狀態(tài)寄存器。

3樓: >>參與討論
xujian370
上面的問題是出在哪?
 
4樓: >>參與討論
平常人
上面的問題是出在哪。坎缓谜f
你最好用帶邏輯通道的示波器看看。

貼個圖上來,再解釋一下,我做過NAND但沒用ARM做過。

5樓: >>參與討論
xujian370
繼續(xù)
其實很簡單,ARM的WR和RD接NAND FLASH的寫讀信號,片選信號是地址譯碼后的,ALE,CLE接兩個地址信號,IO0-IO8接D0-D7,看看有什么問題?

6樓: >>參與討論
平常人
片選信號不能落后于ALE和CLE
你的片選信號是地址譯碼后得到,而ALE,CLE接兩個地址信號,地址譯碼需要時間,所以CE落后于ALE和CLE,這里有問題。

另外更重要的是,你應(yīng)用I/O輸出CE,這樣CE不會隨指令的變化而變化,在NAND的datasheet上有很多情況不允許CE隨便改變。

7樓: >>參與討論
xujian370
我已經(jīng)把CE改成片選和IO引腳相與了
問題依然存在:可以讀ID號。但是讀不了數(shù)據(jù),我先在沒有寫數(shù)據(jù),因為我在找壞的塊,所以只要讀。我是ARM的CS2,地址A18,A19譯碼的到片選CS_NAND,根據(jù)上面的建議我用一個IO口P0.23與上面的片選CS_NAND相與。A17接CLE,A16接ALE
  我的程序如下:
void Page_read(ADDRFLASH addr,UCHAR read_command)
{
  UCHAR TEMP;
  IO0SET=IOSET|(1<<23);     //片選有效  
  flash_commd=read_command; //輸入命令
  flash_addr=addr.addrlow;  //輸入地址
  flash_addr=addr.addrmid1;
  flash_addr=addr.addrmid2;
  flash_addr=addr.addrhigh;
  IO0CLR=IO0CLR|(1<<23);   //保證NAND FLASH的片選信號一直為低電平
                         //P0.23和片選相與了
   
  while(!Do_ready()); //busy
}
  R/B沒有出現(xiàn)低電平。所以最后一句是直通的。
怎么會沒有出現(xiàn)低電平的呢?我是按照它的時序?qū)懙陌?br>
8樓: >>參與討論
xujian370
頂一下
 
9樓: >>參與討論
平常人
R/B沒有出現(xiàn)低電平,說明你的命令沒被正確接受
你應(yīng)該用帶邏輯通道的示波器看看,我沒在ARM上做過NAND,也不清楚你的ARM的時序,很難講是什么問題。

看不懂你這兩句:
  IO0SET=IOSET|(1<<23);     //片選有效
  IO0CLR=IO0CLR|(1<<23);    //保證NAND FLASH的片選信號一直為低電平

你應(yīng)保證在Page_read()運行的整個過程中,CS始終保持低電平不要變化。

還有,“用一個IO口P0.23與上面的片選CS_NAND相與”有何意義?直接在P0.23輸出低電平作為片選就好了嗎。

10樓: >>參與討論
xujian370
我的R/B引腳始終不會變低
    芯片復(fù)位在向命令寄存器中寫入0xFF后,R/B應(yīng)該變低一會,但我用示波器看不到那個信號變低,這邊都不能變低,不要說后面程序的這個信號了。但復(fù)位后ID和狀態(tài)寄存器都能順利的讀取。為什么R/B信號總是不能變低?應(yīng)該不是芯片問題吧。

11樓: >>參與討論
平常人
難說,換一片試試?
 
12樓: >>參與討論
xujian370
繼續(xù)
現(xiàn)在直接讀頁,讀出的都是0XFF,這樣就檢測不出壞的BLOCK,難道是被人用過的片子啊?不管現(xiàn)在先寫一頁在讀出一頁來,看看對不對。謝謝關(guān)注,平常人。有沒有聯(lián)系方法,我們保持聯(lián)系

13樓: >>參與討論
toobad
難道是被人用過的片子啊?
沒有壞塊還不好嗎?
被人用過的片子常常并不見得是沒有壞塊,而是塊內(nèi)的數(shù)據(jù)區(qū)/冗余區(qū)有
非0xFF和非0x00的數(shù)據(jù)。

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
同一地址存放一樣的數(shù)據(jù)能說明存放了一樣的程序嗎?
想買2410/2440開發(fā)板,幫忙推薦一些啦
00,twentyone老兄幫我分析一下,真是百思不得其解啊!謝謝
誰能介紹下KEIL ARM 的啟動過程?
查過很多,還是不能理解透徹。
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號