⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 at45.h

📁 F020集成以太网接口核心模块DataFlash例程源代码
💻 H
字号:
//---------------------------------------------------------------------------------------
// AT45.H文件
// AT45DB161操作头文件
// 操作命令定义文件
// scj
// 07/05/04
//---------------------------------------------------------------------------------------

#ifndef _AT45_H_
#define _AT45_H_


//--------------------------------------------------------
// 操作命令定义
// 注意这些命令中的一部分与SPI使用的模式有关系
//--------------------------------------------------------

#define BUFFER_1 0x00 			             // buffer 1
#define BUFFER_2 0x01 			             // buffer 2

// User->Buffer
#define BUFFER_1_WRITE               0x84 	 // buffer 1 write
#define BUFFER_2_WRITE               0x87 	 // buffer 2 write

// Buffer->User
#define BUFFER_1_READ                0x54	 // buffer 1 read (change to 0xD4 for SPI mode 0,3)
#define BUFFER_2_READ                0x56	 // buffer 2 read (change to 0xD6 for SPI mode 0,3)

// PAGE->Buffer
#define PAGE_TO_B1_XFER              0x53 	 // main memory page to buffer 1 transfer
#define PAGE_TO_B2_XFER              0x55    // main memory page to buffer 2 transfer

// Buffer->Main Page
#define B1_TO_PAGE_WITH_ERASE        0x83 	 // buffer 1 to main memory page program with built-in erase
#define B2_TO_PAGE_WITH_ERASE        0x86 	 // buffer 2 to main memory page program with built-in erase

#define B1_TO_PAGE_WITHOUT_ERASE     0x88 	 // buffer 1 to main memory page program without built-in erase
#define B2_TO_PAGE_WITHOUT_ERASE     0x89 	 // buffer 2 to main memory page program without built-in erase

// 通过Buffer直接写入Main Page
// 该命令包括三个部分:数据首先写入指定的buffer,擦除指定的buffer,重新写入到page
// User->Page(with erase)
#define PAGE_PROG_THROUGH_B1         0x82 	 // main memory page program through buffer 1
#define PAGE_PROG_THROUGH_B2         0x85 	 // main memory page program through buffer 2

// 页面自动重新写入
#define AUTO_PAGE_REWRITE_THROUGH_B1 0x58    // auto page rewrite through buffer 1
#define AUTO_PAGE_REWRITE_THROUGH_B2 0x59    // auto page rewrite through buffer 2


#define PAGE_TO_B1_COMP              0x60 	 // main memory page compare to buffer 1
#define PAGE_TO_B2_COMP              0x61 	 // main memory page compare to buffer 2




#define STATUS_REGISTER              0x57    // Flash 状态

// Page->User
#define MAIN_MEMORY_PAGE_READ        0x52    // main memory page read (change to 0xD2 for SPI mode 0,3)

// Page->0xFF
#define PAGE_ERASE                   0x81 	 // erase a 528 byte page
// Block->Erase
#define BLOCK_ERASE                  0x50 	 // 擦除块(512 pages)

#define FLASH_DEVICEID               0x9F    // 读取Flash的生产信息

//--------------------------------------------------------------
// 函数声明
//--------------------------------------------------------------
const char *GetFlashType();

BYTE GetFlashInfo();
BYTE GetFlashStatus();

BYTE FlashBuffer1Read(WORD start_addr,WORD len, BYTE *pBuffer);
BYTE FlashBuffer2Read(WORD start_addr,WORD len, BYTE *pBuffer);

BYTE FlashBuffer1Write(WORD start_addr, WORD len,BYTE *pBuffer);
BYTE FlashBuffer2Write(WORD start_addr, WORD len,BYTE *pBuffer);

BYTE PageToBuffer1(WORD pageAddr);
BYTE PageToBuffer2(WORD pageAddr);

BYTE FlashPageErase(WORD pageAddr);
BYTE FlashBlockErase(WORD blockAddr);

BYTE FlashBuffer1ProgNoErase(WORD pageAddr);
BYTE FlashBuffer2ProgNoErase(WORD pageAddr);

BYTE FlashBuffer1ProgAutoErase(WORD pageAddr);
BYTE FlashBuffer2ProgAutoErase(WORD pageAddr);

BYTE FlashProgViaBuffer1(WORD start_addr, WORD len,BYTE *pBuffer,WORD pageAddr);
BYTE FlashProgViaBuffer2(WORD start_addr, WORD len,BYTE *pBuffer,WORD pageAddr);

BYTE FlashAutoProgViaBuffer1(WORD pageAddr);
BYTE FlashAutoProgViaBuffer2(WORD pageAddr);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -