stm32 nand flash 操作问题

2019-03-23 18:52发布

STM32 读取 NAND512W3A2CN6E 的ID为20 76 20 76.但是读取不到status。一直为0x00.应该为0xC0才对的。这是怎么回事呢?有遇到这个情况的吗? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
zqjqq88
1楼-- · 2019-03-24 05:31
/ 上程序和图~~~~~~~~~
490353119
2楼-- · 2019-03-24 09:33
 精彩回答 2  元偷偷看……
490353119
3楼-- · 2019-03-24 13:07
u32 FSMC_NAND_ReadStatus(void)
{
  u32 data = 0x00, status = NAND_BUSY;

  /* Read status operation ------------------------------------ */
  *(vu8 *)(Bank_NAND_ADDR | CMD_AREA) = NAND_CMD_STATUS;
       
  data = *(vu8 *)(Bank_NAND_ADDR);

  if((data & NAND_ERROR) == NAND_ERROR)//SR0
  {
    status = NAND_ERROR;
  }
  else if((data & NAND_READY) == NAND_READY)//SR6
  {
    status = NAND_READY;
  }
  else
  {
    status = NAND_BUSY;
  }
  
  return (status);
}
490353119
4楼-- · 2019-03-24 14:07

/* NAND Area definition  Board RevD */
#define CMD_AREA                   (u32)(1<<16)  /* A16 = CLE  high */
#define ADDR_AREA                  (u32)(1<<17)  /* A17 = ALE high */
#define DATA_AREA                  ((u32)0x00000000)
/* FSMC NAND memory command */

#define NAND_CMD_AREA_A            ((u8)0x00) //area_a(Bytes0~255)
#define NAND_CMD_AREA_B            ((u8)0x01) //area_b(Bytes256~511)
#define NAND_CMD_AREA_C            ((u8)0x50) //area_c(Bytes512~527)
#define NAND_CMD_AREA_TRUE1        ((u8)0x30)

#define NAND_CMD_WRITE0            ((u8)0x80)
#define NAND_CMD_WRITE_TRUE1       ((u8)0x10)

#define NAND_CMD_ERASE0            ((u8)0x60)
#define NAND_CMD_ERASE1            ((u8)0xD0)

#define NAND_CMD_READID            ((u8)0x90)
#define NAND_CMD_STATUS            ((u8)0x70)
#define NAND_CMD_LOCK_STATUS       ((u8)0x7A)
#define NAND_CMD_RESET             ((u8)0xFF)
//60h Block_address D0h   70h->SR0
//SR6
/* NAND memory status */
#define NAND_VALID_ADDRESS         ((u32)0x00000100)
#define NAND_INVALID_ADDRESS       ((u32)0x00000200)
#define NAND_TIMEOUT_ERROR         ((u32)0x00000400)
#define NAND_BUSY                  ((u32)0x00000000)
#define NAND_ERROR                 ((u32)0x00000001)
#define NAND_READY                 ((u32)0x00000040)
490353119
5楼-- · 2019-03-24 19:04
 精彩回答 2  元偷偷看……
490353119
6楼-- · 2019-03-24 22:59
串口打印:SDRAM_16_write:eeff , SDRAM_16_read:eeff
NAND FLASH Status:0
Nand Flash ID = 20,76,20,76  

一周热门 更多>