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

📄 at91c_spi_dataflash.h

📁 at91rm9200的一级bootloader
💻 H
字号:
//*---------------------------------------------------------------------------

//*         ATMEL Microcontroller Software Support  -  ROUSSET  -

//*---------------------------------------------------------------------------

//* The software is delivered "AS IS" without warranty or condition of any

//* kind, either express, implied or statutory. This includes without

//* limitation any warranty or condition with respect to merchantability or

//* fitness for any particular purpose, or against the infringements of

//* intellectual property rights of others.

//*---------------------------------------------------------------------------

//* File Name           : AT91C_SPI_DataFlash.h

//* Object              : Data Flash Atmel Description File

//* Translator          :

//*

//* 1.0 03/04/01 HI	: Creation

//* 1.2 20/10/02 FB	: Adapatation Service and Lib v3

//*---------------------------------------------------------------------------



#ifndef AT91C_DataFlash_h

#define AT91C_DataFlash_h



/////////////////////////////////////////////////////////////////////////////////////////////////////



/*DataFlash return value */

#define DATAFLASH_BUSY				0x00

#define DATAFLASH_OK				0x01

#define DATAFLASH_ERROR				0x02

#define DATAFLASH_MEMORY_OVERFLOW	0x03

#define DATAFLASH_BAD_COMMAND		0x04

#define DATAFLASH_BAD_ADDRESS		0x05



#define DATAFLASH_CLK		12000000

#define DATAFLASH_TIMEOUT	30

/* Driver State */

#define IDLE				0x0

#define	BUSY				0x1

#define	ERROR				0x2



/* DataFlash Driver State */

#define	GET_STATUS			0x0F



/////////////////////////////////////////////////////////////////////////////////////////////////////

// Command Definition

/////////////////////////////////////////////////////////////////////////////////////////////////////



/* READ COMMANDS */

#define DB_CONTINUOUS_ARRAY_READ       	0xE8		/* Continuous array read */

#define DB_BURST_ARRAY_READ            	0xE8		/* Burst array read */

#define DB_PAGE_READ                   	0xD2		/* Main memory page read */

#define DB_BUF1_READ                   	0xD4		/* Buffer 1 read */

#define DB_BUF2_READ                   	0xD6		/* Buffer 2 read */

#define DB_STATUS                      	0xD7		/* Status Register */



/* PROGRAM and ERASE COMMANDS */

#define DB_BUF1_WRITE                  	0x84		/* Buffer 1 write */

#define DB_BUF2_WRITE                  	0x87		/* Buffer 2 write */

#define DB_BUF1_PAGE_ERASE_PGM         	0x83		/* Buffer 1 to main memory page program with built-In erase */

#define DB_BUF1_PAGE_ERASE_FASTPGM     	0x93		/* Buffer 1 to main memory page program with built-In erase, Fast program */

#define DB_BUF2_PAGE_ERASE_PGM         	0x86		/* Buffer 2 to main memory page program with built-In erase */

#define DB_BUF2_PAGE_ERASE_FASTPGM     	0x96		/* Buffer 1 to main memory page program with built-In erase, Fast program */

#define DB_BUF1_PAGE_PGM               	0x88		/* Buffer 1 to main memory page program without built-In erase */

#define DB_BUF1_PAGE_FASTPGM           	0x98		/* Buffer 1 to main memory page program without built-In erase, Fast program*/

#define DB_BUF2_PAGE_PGM               	0x89		/* Buffer 2 to main memory page program without built-In erase */

#define DB_BUF2_PAGE_FASTPGM           	0x99		/* Buffer 1 to main memory page program without built-In erase, Fast program*/

#define DB_PAGE_ERASE                  	0x81		/* Page Erase */

#define DB_BLOCK_ERASE                 	0x50		/* Block Erase */

#define DB_PAGE_PGM_BUF1               	0x82		/* Main memory page through buffer 1 */

#define DB_PAGE_FASTPGM_BUF1           	0x92		/* Main memory page through buffer 1, Fast program */

#define DB_PAGE_PGM_BUF2               	0x85		/* Main memory page through buffer 2 */

#define DB_PAGE_FastPGM_BUF2           	0x95		/* Main memory page through buffer 2, Fast program */



/* ADDITIONAL COMMANDS */

#define DB_PAGE_2_BUF1_TRF             	0x53		/* Main memory page to buffer 1 transfert */

#define DB_PAGE_2_BUF2_TRF             	0x55		/* Main memory page to buffer 2 transfert */

#define DB_PAGE_2_BUF1_CMP             	0x60		/* Main memory page to buffer 1 compare */

#define DB_PAGE_2_BUF2_CMP             	0x61		/* Main memory page to buffer 2 compare */

#define DB_AUTO_PAGE_PGM_BUF1          	0x58		/* Auto page rewrite throught buffer 1 */

#define DB_AUTO_PAGE_PGM_BUF2          	0x59		/* Auto page rewrite throught buffer 2 */



/////////////////////////////////////////////////////////////////////////////////////////////////////

// DataFlash Structures 

/////////////////////////////////////////////////////////////////////////////////////////////////////



/*---------------------------------------------*/

/* DataFlash Descriptor Structure Definition   */

/*---------------------------------------------*/

typedef struct _AT91S_DataflashDesc

{

	unsigned char			*tx_cmd_pt;

	unsigned int			tx_cmd_size;

	unsigned char			*rx_cmd_pt;

	unsigned int			rx_cmd_size;

	unsigned char			*tx_data_pt;

	unsigned int			tx_data_size;

	unsigned char			*rx_data_pt;

	unsigned int			rx_data_size;

	volatile unsigned char	state;

	volatile unsigned char	DataFlash_state;

	unsigned char			command[8];

} AT91S_DataflashDesc, *AT91PS_DataflashDesc;



/*---------------------------------------------*/

/*DataFlash device definition structure        */

/*---------------------------------------------*/

typedef struct _AT91S_Dataflash {

	int		pages_number;	//* dataflash page number

	int		pages_size;		//* dataflash page size

	int		page_offset;	//* page offset in command

	int		byte_mask;		//* byte mask in command

} AT91S_Dataflash, *AT91PS_Dataflash;



/////////////////////////////////////////////////////////////////////////////////////////////////////



#endif

⌨️ 快捷键说明

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