diff options
| author | Avi Levkovich <avi@twine-s.com> | 2020-03-08 14:00:53 +0200 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2020-03-08 14:00:53 +0200 |
| commit | 89235be35397d91ad5e8cadd59cd009b8d682960 (patch) | |
| tree | 56f5296c240c32c9124c2528363379294ff321bf /Software/Embedded_SW/Embedded | |
| parent | ec3f3c69f80c52a48e35dc0e4eb6910a335038b6 (diff) | |
| download | Tango-89235be35397d91ad5e8cadd59cd009b8d682960.tar.gz Tango-89235be35397d91ad5e8cadd59cd009b8d682960.zip | |
update the dispenser eeprom struct
Diffstat (limited to 'Software/Embedded_SW/Embedded')
5 files changed, 73 insertions, 4 deletions
diff --git a/Software/Embedded_SW/Embedded/DataDef.h b/Software/Embedded_SW/Embedded/DataDef.h index 0ada1e7ec..06cec2e1e 100644 --- a/Software/Embedded_SW/Embedded/DataDef.h +++ b/Software/Embedded_SW/Embedded/DataDef.h @@ -438,6 +438,8 @@ typedef union uint8_t Buf[16]; }DISP_EEPROM; */ + +/* //////////////////////////////////////////// typedef struct { @@ -482,6 +484,44 @@ typedef struct uint32_t Spare[5]; }DISP_EEPROM_BYTES; + +*/ + +typedef struct +{ + uint32_t Header; + uint32_t Table_Length; + uint32_t Table_version; + uint8_t Dispenser_Part_Number[20];//String + uint8_t PCB_SN[20];//String + uint8_t PCB_Part_Number[20];//String + uint8_t Dispenser_SN[20];//String + int32_t Minimal_Pressure; + int32_t Maximal_Pressure; + int32_t Minimal_MV; + int32_t Maximal_MV; + uint32_t Total_Cycles; + uint32_t Bubble_Size; + uint32_t AVG_Nl_Step_Value_1_4; + uint32_t AVG_Nl_Step_Value_2_4; + uint32_t AVG_Nl_Step_Value_3_4; + uint32_t AVG_Nl_Step_Value_4_4; + uint32_t SW_Reserve; + int32_t Spare1_pressure; + int32_t Spare2_pressure; + uint32_t Motor_PPC; + uint32_t color; + uint32_t Pressure_Slope; + uint8_t Production_Test_Date[8];//string + uint32_t ATS_Location; + uint32_t Spare1; + uint32_t Spare2; + uint8_t Unit_Empty; + uint8_t Dry_Run_Status; + uint8_t Flow_Status; + uint8_t CheckSum; +}DISP_EEPROM_BYTES; + typedef union { DISP_EEPROM_BYTES bytes; diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.c index 3abe727dc..1c9935a52 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.c @@ -97,7 +97,7 @@ uint32_t test_disp_eeprom(uint8_t Dispenser_ID , uint8_t EEprom_Add)//0..7 { uint32_t status= OK; uint32_t i; - +/* Dispenser_struct[Dispenser_ID].Write_Disp_EEPROM.bytes.Dispebser_Data.SN = 0x12345678; Dispenser_struct[Dispenser_ID].Write_Disp_EEPROM.bytes.Nl_Pulse_Value = 0xAB; Dispenser_struct[Dispenser_ID].Write_Disp_EEPROM.bytes.Flow_Pass_Fail = 0xCD; @@ -108,17 +108,18 @@ uint32_t test_disp_eeprom(uint8_t Dispenser_ID , uint8_t EEprom_Add)//0..7 status |= I2C_EEprom_Write_Ch(Dispenser_ID, EEprom_Add); SysCtlDelay(5000000);//Must delay for at least 5 milli. !!! (See data sheet ) + */ status |= I2C_EEprom_Set_for_Read_Ch(Dispenser_ID, EEprom_Add); status |= I2C_EEprom_Read_Ch(Dispenser_ID, EEprom_Add); - if(status == 0) +/* if(status == 0) { for(i=0;i<Max_buf_size;i++) { if(Dispenser_struct[Dispenser_ID].Read_Disp_EEPROM.Buf[i]!=Dispenser_struct[Dispenser_ID].Write_Disp_EEPROM.Buf[i]) status |= ERROR; } - } + }*/ return status; } diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.h b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.h index 76eee82af..2db341914 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.h +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.h @@ -14,7 +14,7 @@ uint32_t I2C_EEprom_Write_Ch(uint8_t Dispenser_ID); uint32_t I2C_EEprom_Set_for_Read_Ch(uint8_t Dispenser_ID);; uint32_t I2C_EEprom_Read_Ch(uint8_t Dispenser_ID); -uint32_t test_disp_eeprom(uint8_t Dispenser_ID); +uint32_t test_disp_eeprom(uint8_t Dispenser_ID , uint8_t EEprom_Add); uint8_t Check_Dispenser_Type(); diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_FIFO.h b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_FIFO.h new file mode 100644 index 000000000..2e2ccc37a --- /dev/null +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_FIFO.h @@ -0,0 +1,17 @@ +/* + * I2C_FIFO.h + * + * Created on: Mar 3, 2020 + * Author: avi + */ + +#ifndef DRIVERS_I2C_COMMUNICATION_I2C_FIFO_H_ +#define DRIVERS_I2C_COMMUNICATION_I2C_FIFO_H_ + +void i2c_setup(uint32_t base, bool highspeed); +uint32_t I2C_ReadFifo(uint32_t base, uint8_t addr, void *data, size_t len); +uint32_t I2C_WriteFifo(uint32_t base, uint8_t addr, void *data, size_t len); + + + +#endif /* DRIVERS_I2C_COMMUNICATION_I2C_FIFO_H_ */ diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c index 57b596931..76a92bd89 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c @@ -44,6 +44,10 @@ #include <Drivers/I2C_Communication/WHS_Card/IO_Extender_Ports_TCA9555/WHS_IO.h> +#include "Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.h" + + + extern float NumberOfRotationPerPassage; // how many rotations per spool passage //#include "graphics_adapter.h" @@ -563,6 +567,13 @@ void Stub_ProgressRequest(MessageContainer* requestContainer) response.has_progress = true; } else + if((request->amount == 0x0D) && (request->delay == 0xEE)) //Dispenser EEprom + { + test_disp_eeprom(0x01,0xA0); + response.progress = OK; + response.has_progress = true; + } + else if((request->amount == 0xCF) && (request->delay == 0xCF)) //Create File System on the Drive { #ifdef WATCHDOG |
