aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Drivers
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2019-09-05 13:23:16 +0300
committerShlomo Hecht <shlomo@twine-s.com>2019-09-05 13:23:16 +0300
commit6bf0136ccdfa462247dc5e4ef5f4b2569ff21279 (patch)
tree3676e9d26c7fb6a14be13440ab644fc5b8e66adc /Software/Embedded_SW/Embedded/Drivers
parent8aa8895ed7b0159c668aa0d0d71131ddd570ad6c (diff)
downloadTango-6bf0136ccdfa462247dc5e4ef5f4b2569ff21279.tar.gz
Tango-6bf0136ccdfa462247dc5e4ef5f4b2569ff21279.zip
EEPROM - midtanks and MCU serial number
Diffstat (limited to 'Software/Embedded_SW/Embedded/Drivers')
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c29
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h6
2 files changed, 33 insertions, 2 deletions
diff --git a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c
index 4f0f0a827..1fa019d0d 100644
--- a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c
+++ b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c
@@ -64,7 +64,7 @@ float MCU_E2PromReadMidtank_A(int MidtankId)
return ERROR;
}
EEPROMRead((uint32_t *)&Data,Address*4, 4);
- Report("MCU_E2PromRead",__FILE__,__LINE__,Address,RpWarning,(int)Data,0);
+ Report("MCU_E2PromRead",__FILE__,__LINE__,Address,RpWarning,(int)(Data*1000),0);
return (Data);
}
@@ -78,10 +78,35 @@ float MCU_E2PromReadMidtank_B(int MidtankId)
return ERROR;
}
EEPROMRead((uint32_t *)&Data,Address*4, 4);
- Report("MCU_E2PromRead",__FILE__,__LINE__,Address,RpWarning,(int)Data,0);
+ Report("MCU_E2PromRead",__FILE__,__LINE__,Address,RpWarning,(int)(Data*1000),0);
return (Data);
}
+uint32_t MCU_E2PromSerialNumProgram(char *Data)
+{
+ char * SerialNum = Data;
+ int len = strlen(SerialNum);
+ if (len > MAX_SERIAL_NUM_LEN)
+ {
+ Report("MCU_E2PromSerialNumProgram length error",__FILE__,__LINE__,len,RpWarning,(int)0,0);
+ return ERROR;
+ }
+ EEPROMProgram((uint32_t *)SerialNum, EEPROM_STORAGE_SERIAL_NUM*4, MAX_SERIAL_NUM_LEN);
+
+
+}
+uint32_t MCU_E2PromSerialNumRead(char* *Data)
+{
+ char SerialNum[MAX_SERIAL_NUM_LEN];
+ EEPROMRead((uint32_t *)SerialNum,EEPROM_STORAGE_SERIAL_NUM*4, MAX_SERIAL_NUM_LEN);
+
+ int len = strlen(SerialNum);
+ strcpy(Data,SerialNum);
+ Report("MCU_E2PromSerialNumRead length ",__FILE__,__LINE__,len,RpWarning,(int)0,0);
+
+ return len;
+
+}
//Each word may not be subject to more than a specific number of programming cycles before an
//erase cycle is required. In other words, for any given word, FlashProgram can only be called
diff --git a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h
index eb9993559..223f31005 100644
--- a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h
+++ b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h
@@ -35,12 +35,18 @@ typedef enum {
EEPROM_STORAGE_MAC_ADDR,
MAX_EEPROM_STORAGE
}EEPROM_STORAGE_USAGE_ENUM;
+#define MAX_SERIAL_NUM_LEN 20
+#define SERIAL_NUM_ADDR EEPROM_STORAGE_SERIAL_NUM*4
+#define MAC_ADDR_ADDR (SERIAL_NUM_ADDR + MAX_SERIAL_NUM_LEN)
+
uint32_t MCU_E2PromProgram(int Address,uint32_t Data);
uint32_t MCU_E2PromRead(int Address,uint32_t *Data);
void MCU_E2PromProgramMidTank(int midtankId,float a,float b);
float MCU_E2PromReadMidtank_A(int MidtankId);
float MCU_E2PromReadMidtank_B(int MidtankId);
void MCU_E2PromInit(void);
+uint32_t MCU_E2PromSerialNumProgram(char *Data);
+uint32_t MCU_E2PromSerialNumRead(char* *Data);