久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于NAND Flash的大容量立體封裝芯片在嵌入式系統中的應用

基于NAND Flash的大容量立體封裝芯片在嵌入式系統中的應用

——
作者:葉振榮 王烈洋 時間:2013-11-27 來源:電子產品世界 收藏

  軟件設計

本文引用地址:http://cqxgywz.com/article/192739.htm

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

  S698-mil芯片GPIO0對應的地址為0x2000 0000 – 0x27ff ffff,因為VDNF64G08芯片位寬是8bit的,所以需要把的GPIO位寬也定義成8bit,根據前面的硬件連接可以知道地址低3位對應到VDNF64G08芯片的片選信號,add[4]對應到CLE,add[5]對應到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

  根據芯片指令表,可以知道讀ID芯片只需要寫入命令0x90,然后在寫入地址0x0即可,詳細操作可以根據以下時序圖進行:
  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在其生命周期中保持性能的可靠,因此,在 的生產中及使用過程中會產生壞塊。為了檢測數據的可靠性,在應用NAND 的系統中一般都會采用一定的壞區管理策略,而管理壞區的前提是能比較可靠的進行壞區檢測。檢測流程如圖4所示。

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

存儲器相關文章:存儲器原理


上拉電阻相關文章:上拉電阻原理


評論


相關推薦

技術專區

關閉