forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-05-06 64cf4a779ef5c16c79bbbee27370169dc8d69499
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#ifndef _OFF_CHIP_FLASH_H_
#define _OFF_CHIP_FLASH_H_
 
 
#include "define_all.h"
#include "eeprom.h"
/***************************ÍⲿflashÈÝÁ¿µÈÐÅÏ¢¶¨Òå**********************************************/
#define        OUT_FLASH_ALL_SIZE                   0x400000// 4194304=32Mbits 
#define        OUT_FLASH_PAGE_SIZE               256// Ò»Ò³Îª256×Ö½Ú£¬×î´ó¿ÉÁ¬Ðø±à¼­Ò»Ò³
#define        OUT_FLASH_SECTOR_SIZE           4096// Ò»¸öÉÈÇø4096×Ö½Ú£¬×îС²Á³ýµ¥Î»Îª1¸öÉÈÇø
// ÍⲿFLASH×Ô¶¨ÒåµÄ¿éÊýÁ¿
#define OUT_FLASH_CFG_BLOCK_CNT (OUT_FLASH_ALL_SIZE / OUT_FLASH_SECTOR_SIZE)
 
//op cmd
#define FLASH_WREN            0x06      //write enable
#define FLASH_WRDI            0x04      //write disable
#define FLASH_RDSR            0x05      //read  status register
#define FLASH_WRSR            0x01      //write status register
#define FLASH_READ            0x03      //read  fram memory data
#define FLASH_FSTRD           0x0b      //fast  read  fram memory data
#define FLASH_WRITE           0x02      //write fram memory data
#define FLASH_POWERDOWN       0xb9      //go to power-down mode
#define FLASH_WKUP            0xab      //release from power-down mode
#define FLASH_RDID            0x90      //read  Manufacturer ID/Devive ID 16bit
#define FLASH_BlockErase            0xD8      //erase 64KB  block
#define FLASH_SectorErase          0x20      //erase 4KB   sector
#define FLASH_ChipErase              0xC7      //erase all chip 
 
 
// FlashƬѡ2
#define FLASH_CS_PORT         EEPROM_CS2_PORT
#define FLASH_CS_PIN             EEPROM_CS2_PIN
 
//#define  FLASH_CS_LOW             GPIO_ResetBits(FLASH_CS_PORT,FLASH_CS_PIN)//CS = 0
//#define  FLASH_CS_HIGH            GPIO_SetBits(FLASH_CS_PORT,FLASH_CS_PIN)  //CS = 1
 
//#define  FLASH_CS_ENABLE            do{FLASH_CS_LOW;EEPROM_CS_HIGH;}while(0)
//#define  FLASH_CS_DISABLE            do{FLASH_CS_HIGH;EEPROM_CS_HIGH;}while(0)
 
#define  FLASH_CS_ENABLE       do{GPIO_ResetBits(FLASH_CS_PORT,FLASH_CS_PIN);GPIO_SetBits(EEPROM_CS1_PORT,EEPROM_CS1_PIN);}while(0)
#define  FLASH_CS_DISABLE      do{GPIO_SetBits(FLASH_CS_PORT,FLASH_CS_PIN);GPIO_SetBits(EEPROM_CS1_PORT,EEPROM_CS1_PIN);}while(0)
 
#define    FLASH_ReadWriteByte(dat)  SpiWriteAndRead(dat)
//#define FLASH_ioconfig()          SPI2_ioconfig()
 
uint8_t Flash_ReadSR(void);  
void FLASH_Write_SR(uint8_t sr);
void FLASH_Write_Enable(void);
void FLASH_Write_Disable(void);
u16 Flash_ReadID(void);
 
void Out_Flash_MultipleRead(uint8* pBuffer,uint32 ReadAddr,uint16 NumByteToRead);
void Flash_Write_Page(uint8_t* pBuffer,u32 WriteAddr,u16 NumByteToWrite);
uint8 Flash_data_read(uint32 ReadAddr);
//void Flash_Write_NoCheck(uint8* pBuffer,uint32 WriteAddr,uint16 NumByteToWrite);
void Out_Flash_MultipleWrite(uint8_t* pBuffer,u32 WriteAddr,u16 NumByteToWrite);
 
void Flash_Erase_Chip(void);
void Flash_OUT_Erase_Sector(u32 Dst_Addr);
void Flash_Wait_Busy(void);
void Flash_PowerDown(void);
void Flash_WAKEUP(void);
 
float Flash_data_read_float(uint32 addr16);
void  Flash_data_write_float(uint32 addr16, float data) ;
double Flash_data_read_double(uint32 addr16) ;
void   Flash_data_write_double(uint32 addr16, double data) ;
u32  Flash_data_read_uint32(uint32 addr16) ;
void Flash_data_write_uint32(uint32 addr16, uint32 data) ;
u16  Flash_data_read_uint16(uint32 addr16) ;
void Flash_data_write_uint16(uint32 addr16, uint16 data) ;
 
 
void OUT_FLASH_test(void);
 
 
#endif