📄 at91c_spi_dataflash.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#include "AT91RM9200.h"#include "lib_AT91RM9200.h"typedef unsigned int AT91S_DataFlashStatus;/****************************************************************************************************/ /* 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;} 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_DataflashFeatures, *AT91PS_DataflashFeatures;/*---------------------------------------------*//* DataFlash Structure Definition *//*---------------------------------------------*/typedef struct _AT91S_DataFlash{ BLK_DEV blkDev; int drive; int blkOffset ; AT91PS_DataflashDesc pDataFlashDesc; /* dataflash descriptor*/ AT91PS_DataflashFeatures pDevice; /* Pointer on a dataflash features array */}AT91S_DataFlash_Device, *AT91PS_DataFlash_Device;/* Global Variables*/extern AT91S_DataflashFeatures DeviceAT45DB;extern AT91S_DataflashFeatures DeviceAT45DCB;#define DATAFLASH_TCSS (0xf << 16) /* 250ns 12/48000000 */#define DATAFLASH_TCHS (0x1 << 24) /* 250ns 32*1/48000000 */#define AT91C_SPI_PCS0_SERIAL_DATAFLASH 0xE /* Chip Select 0 : NPCS0 %1110 */#define AT91C_SPI_PCS3_DATAFLASH_CARD 0x7 /* Chip Select 3 : NPCS3 %0111 *//* 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 5000000#define DATAFLASH_TIMEOUT 30/* Driver State */#define IDLE 0x0#define BUSY 0x1#ifdef ERROR#undef ERROR#endif#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 *//****************************************************************************************************/ #endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -