From f03cf3ae7a36954e64fc014e6bb7afd20c5a5247 Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Wed, 12 Jun 2024 17:22:08 +0800
Subject: [PATCH] 增加IAP功能,准备测试上位机升级

---
 Function/E2P/EEPROM.h |   61 ++++++++++++++++++++----------
 1 files changed, 41 insertions(+), 20 deletions(-)

diff --git a/Function/E2P/EEPROM.h b/Function/E2P/EEPROM.h
index 90239ed..f8ad413 100644
--- a/Function/E2P/EEPROM.h
+++ b/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
 

--
Gitblit v1.9.3