stm32 nand flash 操作问题

2019-03-23 18:52发布

STM32 读取 NAND512W3A2CN6E 的ID为20 76 20 76.但是读取不到status。一直为0x00.应该为0xC0才对的。这是怎么回事呢?有遇到这个情况的吗? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
490353119
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)

一周热门 更多>