forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-06-12 f03cf3ae7a36954e64fc014e6bb7afd20c5a5247
Function/E2P/EEPROM.h
@@ -45,8 +45,8 @@
/***********************EEP »ù±¾ÐÅÏ¢ÅäÖÃ*************************************/
#define  EEPROM_PHYS_SIZE  (32*1024)       //EEP´óС
#define  EEPROM_ADDR_BYTES2                //СÄÚ´æEEPÊý¾ÝµØÖ·Îª2×Ö½ÚÐ趨Òå
#define  EEPROM_PHYS_SIZE  (256*1024)       //EEP´óС
//#define  EEPROM_ADDR_BYTES2                //СÄÚ´æEEPÊý¾ÝµØÖ·Îª2×Ö½ÚÐ趨Òå
#define  EEPROM_CFG_BLOCK_SIZE  4096       //EEP×Ô¶¨Òå¿é´óС
#define  EEPROM_CFG_BLOCK_CNT   (EEPROM_PHYS_SIZE/EEPROM_CFG_BLOCK_SIZE)//EEP×Ô¶¨Òå¿éÊýÁ¿
#define  EEPROM_PAGE_SIZE  64              //EEPÒ³´óС
@@ -55,27 +55,45 @@
/***********************EEP Ïà¹ØÒý½ÅÅäÖÃ**************************************/
#define EEPROM_PWR_PORT               GPIOC
#define EEPROM_PWR_PIN                GPIO_Pin_6
#define EEPROM_PWR_PIN                GPIO_Pin_11
#define EEPROM_CS1_PORT                  GPIOC
#define EEPROM_CS1_PIN                GPIO_Pin_6
#define EEPROM_CS2_PORT                  GPIOC
#define EEPROM_CS2_PIN                GPIO_Pin_14
#define EEPROM_WP_PORT                  GPIOC
#define EEPROM_WP_PIN                   GPIO_Pin_10
#define  EEPROM_CS_1      0
#define  EEPROM_CS_2      1
#define E2P_PWR_ON             GPIO_ResetBits(EEPROM_PWR_PORT,EEPROM_PWR_PIN)     ///jlc  µçÔ´ÊÇ·ñ¿É¿Ø»¹Ã»¸ÄÍê
#define E2P_PWR_ON             GPIO_ResetBits(EEPROM_PWR_PORT,EEPROM_PWR_PIN)     //³¤¸ß£¬µÍÓÐЧ
#define E2P_PWR_OFF          GPIO_SetBits(EEPROM_PWR_PORT,EEPROM_PWR_PIN)
#define  EEPROM_CS_LOW      GPIO_ResetBits(EEPROM_CS1_PORT,EEPROM_CS1_PIN)
#define  EEPROM_CS_HIGH      GPIO_SetBits(EEPROM_CS1_PORT,EEPROM_CS1_PIN)
#define  EEPROM_CS_LOW       do{GPIO_ResetBits(EEPROM_CS1_PORT,EEPROM_CS1_PIN);GPIO_SetBits(EEPROM_CS2_PORT,EEPROM_CS2_PIN);}while(0)
#define  EEPROM_CS_HIGH      do{GPIO_SetBits(EEPROM_CS1_PORT,EEPROM_CS1_PIN);GPIO_SetBits(EEPROM_CS2_PORT,EEPROM_CS2_PIN);}while(0)
#define  EEPROM_CS_ENABLE       do{EEPROM_CS_LOW;EEPROM_CS_2_HIGH;}while(0)
#define  EEPROM_CS_DISABLE      do{EEPROM_CS_HIGH;EEPROM_CS_2_HIGH;}while(0)
///×¢Ò⣬ǧÍò²»ÒªÔÙÖжÏÖжÁдEEPROM£¬Èç¹ûÖжÏ֮ǰÊÇÔÚ²Ù×÷EEPROM£¬ÓÖÔÚÖжÏÖжÁдEEPROM£¬Ôò¿ÉÄܳöÎÊÌâ
#define  EEPROM_CS_2_LOW      {GPIO_ResetBits(FRAM_CS2_GROUP,FRAM_CS2_NUM);GPIO_SetBits(FRAM_CS_GROUP,FRAM_CS_NUM);}//CS_2 = 0
#define  EEPROM_CS_2_HIGH     GPIO_SetBits(FRAM_CS2_GROUP,FRAM_CS2_NUM)  //CS_2 = 1
#define  EEPROM_CS_2_LOW             GPIO_ResetBits(EEPROM_CS2_PORT,EEPROM_CS2_PIN)
#define  EEPROM_CS_2_HIGH            GPIO_SetBits(EEPROM_CS2_PORT,EEPROM_CS2_PIN)
#define  EEPROM_CS_2_ENABLE      do{EEPROM_CS_2_LOW;EEPROM_CS_HIGH;}while(0)
#define  EEPROM_CS_2_DISABLE     do{EEPROM_CS_HIGH;EEPROM_CS_2_HIGH;}while(0)
//¿ØÖÆÊ¹ÄÜ£¬E2P²Ù×÷ǰºóµ÷ÓÃ
#define  EEPROM_CTRL_ENABLE      do{SPI3_Init();E2P_Ctrl_Gpio_Init();E2P_PWR_ON;EEPROM_CS_ENABLE;}while(0)
#define  EEPROM_CTRL_DISABLE      do{SPI3_sleep();E2P_Ctrl_Gpio_sleep();}while(0)
#define  EEPROM_2_CTRL_ENABLE      do{SPI3_Init();E2P_Ctrl_Gpio_Init();E2P_PWR_ON;EEPROM_CS_2_ENABLE;}while(0)
#define  EEPROM_2_CTRL_DISABLE      do{SPI3_sleep();E2P_Ctrl_Gpio_sleep();}while(0)
#define   FM_ReadWriteByte(dat) SpiWriteAndRead(dat)
#define EEPROM_ioconfig()    SPI3_ioconfig()
@@ -83,20 +101,20 @@
uint8_t     EEPROM_MultipleWrite(uint8_t *data,u32 addr,u16 bytes);
void    EEPROM_MultipleRead(uint8_t *data, u32 addr, u16 bytes);
void  EEPROM_data_write(uint8 data,u32 addr16);
uint8 EEPROM_data_read(uint32 addr16);
//void  EEPROM_data_write(uint8 data,u32 addr16);
//uint8 EEPROM_data_read(uint32 addr16);
void  EEPROM_stat_write(uint8 stat);
uint8 EEPROM_stat_read(void); 
void  EEPROM_sleep(void); 
void  EEPROM_ID_read(uint8 *dst);
float EEPROM_data_read_float(uint32 addr16);
void EEPROM_data_write_float(uint32 addr16, float data);
double EEPROM_data_read_double(uint32 addr16);
void EEPROM_data_write_double(uint32 addr16, double data);
u32 EEPROM_data_read_uint32(uint32 addr16);
void EEPROM_data_write_uint32(uint32 addr16, uint32 data);
u16 EEPROM_data_read_uint16(uint32 addr16);
void EEPROM_data_write_uint16(uint32 addr16, uint16 data);
//float EEPROM_data_read_float(uint32 addr16);
//void EEPROM_data_write_float(uint32 addr16, float data);
//double EEPROM_data_read_double(uint32 addr16);
//void EEPROM_data_write_double(uint32 addr16, double data);
//u32 EEPROM_data_read_uint32(uint32 addr16);
//void EEPROM_data_write_uint32(uint32 addr16, uint32 data);
//u16 EEPROM_data_read_uint16(uint32 addr16);
//void EEPROM_data_write_uint16(uint32 addr16, uint16 data);
void EEPROM_WP_enable(void);
void EEPROM_WP_disable(void);
@@ -106,7 +124,10 @@
//uint8_t  EEPROM_MultipleRead_CS_2(uint8_t *data,u32 addr,u16 bytes);
void EEPROM_CS_2_test(void);
void EEPROM_test(void);
void E2P_Ctrl_Gpio_Init(void);
void E2P_Ctrl_Gpio_sleep(void);
#endif