新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于NAND Flash的大容量立體封裝芯片在嵌入式系統(tǒng)中的應(yīng)用

基于NAND Flash的大容量立體封裝芯片在嵌入式系統(tǒng)中的應(yīng)用

——
作者:葉振榮 王烈洋 時(shí)間:2013-11-27 來源:電子產(chǎn)品世界 收藏

  軟件設(shè)計(jì)

本文引用地址:http://m.butianyuan.cn/article/192739.htm

  根據(jù)前面的介紹,通過圖3的硬件連接方式,可以實(shí)現(xiàn)對(duì)芯片的讀寫,擦除等控制操作,已可以滿足各種場(chǎng)合的應(yīng)用,S698-mil處理器是通過GPIO來操作控制VDNF64G08的,所以需要對(duì)底層操作需要比較了解,下面簡(jiǎn)單介紹一些常用操作的實(shí)現(xiàn)。

  S698-mil芯片GPIO0對(duì)應(yīng)的地址為0x2000 0000 – 0x27ff ffff,因?yàn)閂DNF64G08芯片位寬是8bit的,所以需要把的GPIO位寬也定義成8bit,根據(jù)前面的硬件連接可以知道地址低3位對(duì)應(yīng)到VDNF64G08芯片的片選信號(hào),add[4]對(duì)應(yīng)到CLE,add[5]對(duì)應(yīng)到ALE,為了方便編程,這里做以下宏定義 :
  #define NF_ADDREG(CE) (*(volatile unsigned char *) (0x20000010 + CE))
  #define NF_CMDREG(CE) (*(volatile unsigned char *) (0x20000008 + CE))
  #define NF_DATAREG(CE) (*(volatile unsigned char *) (0x20000000 + CE))

  讀芯片ID

  根據(jù)芯片指令表,可以知道讀ID芯片只需要寫入命令0x90,然后在寫入地址0x0即可,詳細(xì)操作可以根據(jù)以下時(shí)序圖進(jìn)行:
  int readID(unsigned char CE,unsigned IDlength)
  {
  unsigned char ID[],i;
  NF_CMDREG(CE) = 0x90;
  NF_ADDREG(CE) = 0x0;
  delayed(1);
  for(i = 0;i < IDlength;i++)
  {
  ID[i] = NF_DATAREG(CE);
  }
  i = i - 1;
  printf("CHIP CE d% ID:0x%x",ID[0]);
  while(i){
  printf("-%x",ID[IDlength - i]);
  i --;
  }
  printf("nr");
  }

  芯片壞塊查詢

  由于 的工藝不能保證 的Memory Array在其生命周期中保持性能的可靠,因此,在 的生產(chǎn)中及使用過程中會(huì)產(chǎn)生壞塊。為了檢測(cè)數(shù)據(jù)的可靠性,在應(yīng)用NAND 的系統(tǒng)中一般都會(huì)采用一定的壞區(qū)管理策略,而管理壞區(qū)的前提是能比較可靠的進(jìn)行壞區(qū)檢測(cè)。檢測(cè)流程如圖4所示。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理


上拉電阻相關(guān)文章:上拉電阻原理


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉