K9F2G08U0C NAND FLASH 的地址分析

  1. 计算物理地址

    K9F2G08U0C是samsun出产的FLASH,容量为256MB

    页--Page: (2K + 64)Byte
    块--Block: (128K + 4K)Byte

    128 / 2 = 64 Page

    256M / 128 K  = 2048 Block

    现在以第25块的30页中的24byte为例

       物理地址 = 块大小×块号 + 页大小×页号 + 页内地址

                 = 128K x 25 + 2K x 30 + 24B

                 = 3338264(10)

                 = 32F018 (16)

    1. 如图
    2. 计算我们需要发出的地址
    3. 每页有2048字节,需要2^11 = 2048,既需要11位地址

      每块有64页,需要2^6 = 64,既需要6位地址

      芯片一共有2048块,需要需要2^11 = 2048,既需要11位地址

       

      0x32F018 = 0011 0010 1111 0000 0001 1000

      由上图可得到实际发送的数据

      1st: A7  - A0  =  0001 1000

      2nd:A10  - A8  =  0000 0000  (A11没用到)

      3rd:A19  - A12 =  0010 1111

      4th:A27  - A20 =  0000 0011

      5th:A28 = 0000 0000

      注:*L 需要写入0

       

      Code:

      int i;

      volatile unsigned char *p = (volatile unsigned char *)&s3c2440_nand->NFADDR;

      *p = addr & 0xFF;        // 1

      for(i=0; i<10; i++);

      *p = (addr>>12) & 0xFF;  // 2

      for(i=0; i<10; i++);

      *p = (addr>>12) & 0xFF;  // 3

      for(i=0; i<10; i++);

      *p = (addr>>20) & 0xFF;  // 4

      for(i=0; i<10; i++);

      *p = (addr>>28) & 0xFF;  // 5

          for(i=0; i<10; i++);

posted @ 2017-04-29 10:35  goodboyyd  阅读(1525)  评论(0编辑  收藏  举报