diff options
| author | Shai Frieder <Shai.Frieder@twine-s.com> | 2019-10-07 18:29:45 +0300 |
|---|---|---|
| committer | Shai Frieder <Shai.Frieder@twine-s.com> | 2019-10-07 18:29:45 +0300 |
| commit | b30b9e33bc8a7df92b37df790ff3cd97d9f76a55 (patch) | |
| tree | ed1f55dda2dbf62d63295fcf40a1e834711ffa89 /Software/Embedded_SW | |
| parent | 35217ac6ffc06af7d23ea3f9359f0dd4f2decf6e (diff) | |
| parent | 07280066f97510892838c451bee6c066a7591131 (diff) | |
| download | Tango-b30b9e33bc8a7df92b37df790ff3cd97d9f76a55.tar.gz Tango-b30b9e33bc8a7df92b37df790ff3cd97d9f76a55.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software/Embedded_SW')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/EEPROM/Head_EEPROM.c | 49 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/EEPROM/Head_EEPROM.h | 22 |
2 files changed, 71 insertions, 0 deletions
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/EEPROM/Head_EEPROM.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/EEPROM/Head_EEPROM.c index 9d13727ee..f88852d83 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/EEPROM/Head_EEPROM.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/EEPROM/Head_EEPROM.c @@ -5,9 +5,58 @@ * Author: avi */ #include "include.h" +#include "Head_EEPROM.h" +#include <Drivers/I2C_Communication/I2C.h> +#include "../I2C_Head_Mux.h" //EEPROM M24M01-DFMN6TP uint32_t I2C_HEAD_EEPROM_SLAVE_ADD = 0xA0; +uint8_t Head_Write_Buf[Max_Head_buf_size +2]; +uint32_t Head_I2C_EEprom_Write_Ch() +{ + uint32_t status= OK; + uint8_t i = 0; + + + status |= Select_Main_Head_Mux_Channel(); + + Head_Write_Buf[0] = 0x00; + Head_Write_Buf[1] = 0x00; + + for(i=0;i<Max_Head_buf_size;i++) + { + Head_Write_Buf[i+2] = Head_struct.Write_Head_EEPROM.Buf[i]; + } + + status |= I2C_Write(I2C_ID_HEAD_CARD, I2C_HEAD_EEPROM_SLAVE_ADD, Head_Write_Buf, Max_Head_buf_size+2); + + return status; +} + +uint32_t Head_I2C_EEprom_Set_for_Read_Ch() +{ + uint32_t status= OK; + + status |= Select_Main_Head_Mux_Channel(); + + Head_Write_Buf[0] = 0x00; + Head_Write_Buf[1] = 0x00; + + status |= I2C_Write(I2C_ID_HEAD_CARD, I2C_HEAD_EEPROM_SLAVE_ADD, Head_Write_Buf, 2); + + return status; +} + +uint32_t Head_I2C_EEprom_Read_Ch() +{ + uint32_t status= OK; + + status |= Select_Main_Head_Mux_Channel(); + + status |= I2C_Read(I2C_ID_HEAD_CARD, I2C_HEAD_EEPROM_SLAVE_ADD + 1, Head_struct.Read_Head_EEPROM.Buf, Max_Head_buf_size); + + return status; +} diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/EEPROM/Head_EEPROM.h b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/EEPROM/Head_EEPROM.h index 98214bd5b..fdffce869 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/EEPROM/Head_EEPROM.h +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/EEPROM/Head_EEPROM.h @@ -9,6 +9,28 @@ #define DRIVERS_I2C_COMMUNICATION_HEAD_CARD_EEPROM_HEAD_EEPROM_H_ +typedef struct +{ + uint32_t SN; + uint32_t Uint32_Spare[5]; + double Double_Spare[5]; +}HEAD_EEPROM_BYTES; + +typedef union +{ + HEAD_EEPROM_BYTES bytes; + uint8_t Buf[sizeof(HEAD_EEPROM_BYTES)]; +}HEAD_EEPROM; + +typedef struct +{ + HEAD_EEPROM Write_Head_EEPROM; + HEAD_EEPROM Read_Head_EEPROM; +}HEAD_EEPROM_STRUCT; + +HEAD_EEPROM_STRUCT Head_struct; + +#define Max_Head_buf_size sizeof(Head_struct.Write_Head_EEPROM.Buf) |
