forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-06-19 6e3f1f560d618b37ee1a47fa2b0f682b70c3ef1c
Function/E2P/EEPROM.c
@@ -30,6 +30,19 @@
   OutputIO(EEPROM_CS1_PORT,EEPROM_CS1_PIN,OUT_PUSHPULL);
   OutputIO(EEPROM_CS2_PORT,EEPROM_CS2_PIN,OUT_PUSHPULL);
   CloseIO(EEPROM_WP_PORT,EEPROM_WP_PIN);
   E2P_PWR_ON;
   EEPROM_CS_HIGH;
   EEPROM_CS_2_HIGH;
}
void E2P_Ctrl_Gpio_sleep(void)
{
   CMU_PERCLK_SetableEx(PADCLK, ENABLE);  //PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý
   OutputIO(EEPROM_PWR_PORT,EEPROM_PWR_PIN,OUT_PUSHPULL);
   OutputIO(EEPROM_CS1_PORT,EEPROM_CS1_PIN,OUT_PUSHPULL);
   OutputIO(EEPROM_CS2_PORT,EEPROM_CS2_PIN,OUT_PUSHPULL);
   CloseIO(EEPROM_WP_PORT,EEPROM_WP_PIN);
   E2P_PWR_OFF;
   EEPROM_CS_LOW;
   EEPROM_CS_2_LOW;
@@ -95,7 +108,9 @@
      
     EEPROM_CS_ENABLE;
      FM_ReadWriteByte(FM_WRITE);
   #ifndef EEPROM_ADDR_BYTES2
     FM_ReadWriteByte((uint8_t)((addr_fit)>>16));
   #endif
     FM_ReadWriteByte((uint8_t)((addr_fit)>>8));
      FM_ReadWriteByte((uint8_t)((addr_fit)));
     FM_ReadWriteByte(data);
@@ -127,7 +142,9 @@
   
   EEPROM_CS_ENABLE;
   FM_ReadWriteByte(FM_READ);
   #ifndef EEPROM_ADDR_BYTES2
   FM_ReadWriteByte((uint8_t)(addr_fit>>16));
   #endif
   FM_ReadWriteByte((uint8_t)(addr_fit>>8));
   FM_ReadWriteByte((uint8_t)(addr_fit));
   data = FM_ReadWriteByte(0xff);//data = FM_ReadWriteByte(0xff);
@@ -418,7 +435,9 @@
         
      EEPROM_CS_ENABLE;
      FM_ReadWriteByte(FM_WRITE);
      #ifndef EEPROM_ADDR_BYTES2
      FM_ReadWriteByte((uint8_t)((addr_temp)>>16));
      #endif
      FM_ReadWriteByte((uint8_t)((addr_temp)>>8));
      FM_ReadWriteByte((uint8_t)(addr_temp));
      for(i = 0;i < bytewrite;i ++)
@@ -460,51 +479,57 @@
   
   EEPROM_CS_ENABLE;
   FM_ReadWriteByte(FM_READ);
   #ifndef EEPROM_ADDR_BYTES2
   FM_ReadWriteByte((uint8_t)(addr>>16));
   #endif
   FM_ReadWriteByte((uint8_t)(addr>>8));
   FM_ReadWriteByte((uint8_t)(addr));
   for(index = 0;index < bytes;index ++)
     data[index] = FM_ReadWriteByte(0xff);
   EEPROM_CS_DISABLE;
   EEPROM_Wait_Busy();   
   EEPROM_CS_DISABLE;
}
uint8_t  EEPROM_MultipleWrite_CS_2(uint8_t *data,u32 addr,u16 bytes)
{
   Fram_cs_flag = EEPROM_CS_2;
   EEPROM_MultipleWrite(data,  addr,  bytes) ;
   Fram_cs_flag = EEPROM_CS_1;
   return 0;
}
uint8_t  EEPROM_MultipleRead_CS_2(uint8_t *data,u32 addr,u16 bytes)
{
   Fram_cs_flag = EEPROM_CS_2;
   EEPROM_MultipleRead(data,  addr,  bytes) ;
   Fram_cs_flag = EEPROM_CS_1;
   return 0;
}
void EEPROM_CS_2_test(void)
void EEPROM_test(void)
{
   uint8_t   u8_temp;
   uint8_t   u8_temp_s[256];
   uint8_t   u8_temp_s2[256];
   uint8_t   buf_test[10] = {0};
   static uint16_t   WR_times = 0;
   static uint16_t   WR_times_suc = 0;
   
   u16   count_i = 0;
   
   for(count_i=0;count_i<256;count_i++)
   {
      u8_temp_s[count_i] = count_i;
      u8_temp_s2[count_i] = 0;
   }
   delay_ms(10);
   delay_ms(100);
   EEPROM_CTRL_ENABLE;
   delay_ms(100);
   EEPROM_MultipleRead(buf_test, 256, 10);
   EEPROM_CTRL_DISABLE;
   delay_ms(10);
   memset(buf_test,0,sizeof(buf_test));
   
   EEPROM_CTRL_ENABLE;
   delay_ms(10);
   EEPROM_MultipleRead(buf_test, 256, 10);
   EEPROM_CTRL_DISABLE;
   while(1){
      IWDT_Clr();
      delay_ms(500);
   }
   
//   while(WR_times <1024)
//   {
@@ -535,7 +560,7 @@
//      
//   }
   
//   EEPROM_MultipleRead_CS_2(u8_temp_s2,(1000 * 256+9),256);