diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2019-05-14 11:34:16 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2019-05-14 11:34:16 +0300 |
| commit | 358c1760cd50829c8bf42d857ee3347201227b0e (patch) | |
| tree | b96225896c479d87303d4b4e7bc3f134b4149358 /Software/Embedded_SW/Embedded | |
| parent | d31ad49fdc654352322da85da921e6e0423d98bd (diff) | |
| parent | b9c6f8c973994933c60cf0fa06a4bafeb9d349b1 (diff) | |
| download | Tango-358c1760cd50829c8bf42d857ee3347201227b0e.tar.gz Tango-358c1760cd50829c8bf42d857ee3347201227b0e.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software/Embedded_SW/Embedded')
4 files changed, 65 insertions, 9 deletions
diff --git a/Software/Embedded_SW/Embedded/DataDef.h b/Software/Embedded_SW/Embedded/DataDef.h index 1b5f000f2..0cf75637c 100644 --- a/Software/Embedded_SW/Embedded/DataDef.h +++ b/Software/Embedded_SW/Embedded/DataDef.h @@ -325,7 +325,7 @@ typedef enum }LS_STATUS; - +/* typedef union { struct @@ -340,7 +340,57 @@ typedef union }bytes; uint8_t Buf[16]; }DISP_EEPROM; +*/ +//////////////////////////////////////////// +typedef struct +{ + uint32_t SN; + uint32_t Batch_Productions_data; + uint32_t Production_date; + uint32_t Dispenser_Part_Number; + uint32_t PCB_Serial; + uint32_t PCB_Version; +}DISPENSER_DATA; + +typedef struct +{ + float Humidity; + float Temperature; +}DISPENSER_TEST_AMBIENT; + +typedef struct +{ + uint16_t Current; + uint16_t Batch; +}DISPENSER_COLOR; + +typedef struct +{ + float Calibration0; + float Calibration1; +}DISPENSER_CALIBRATION_TABLE; + +typedef struct +{ + DISPENSER_DATA Dispebser_Data; + uint32_t Calibration_Test_Date ; + uint32_t ATS_location_Slot ; + uint32_t Nl_Pulse_Value ; + uint32_t Flow_Pass_Fail ; + DISPENSER_CALIBRATION_TABLE Calibration_table; + uint32_t Test_TI_Batch; + DISPENSER_COLOR Color; + DISPENSER_TEST_AMBIENT Test_Ambient; + uint32_t Total_Cycles_Working_Time; + uint32_t Spare[5]; +}DISP_EEPROM_BYTES; +typedef union +{ + DISP_EEPROM_BYTES bytes; + uint8_t Buf[sizeof(DISP_EEPROM_BYTES)]; +}DISP_EEPROM; +//////////////////////////////////////////// typedef struct { DISP_TYPE Type; diff --git a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c index 0ba34deb6..4686f4b58 100644 --- a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c +++ b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c @@ -119,7 +119,7 @@ LS_DRYER_DH Ls_Dryer_Dh; void FPGA_Read_LS_Safty_Ind_Reg() { - uint8_t temp[8],i; + uint8_t temp[8] = {0,0,0,0,0,0,0,0},i; LS_Left.ushort = F1_GPI_LS2_D; Ls_Right_Screw_Spool.ushort = F1_GPI_LS3_D; 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 a75ef5e40..9aeb5b20a 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 @@ -96,13 +96,13 @@ 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.SN = 0x12345678; - Dispenser_struct[Dispenser_ID].Write_Disp_EEPROM.bytes.Version = 0xAB; - Dispenser_struct[Dispenser_ID].Write_Disp_EEPROM.bytes.Content = 0xCD; - Dispenser_struct[Dispenser_ID].Write_Disp_EEPROM.bytes.Location = 0xEF; - Dispenser_struct[Dispenser_ID].Write_Disp_EEPROM.bytes.Life_Time = 0x55; - Dispenser_struct[Dispenser_ID].Write_Disp_EEPROM.bytes.Calibration = 0xA1B2C3D4; - Dispenser_struct[Dispenser_ID].Write_Disp_EEPROM.bytes.Spare = 0xE5F60102; + 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; + Dispenser_struct[Dispenser_ID].Write_Disp_EEPROM.bytes.Test_Ambient.Humidity = 0xEF; + Dispenser_struct[Dispenser_ID].Write_Disp_EEPROM.bytes.Color.Batch = 0x55; + Dispenser_struct[Dispenser_ID].Write_Disp_EEPROM.bytes.Calibration_table.Calibration0 = 0xA1B2C3D4; + Dispenser_struct[Dispenser_ID].Write_Disp_EEPROM.bytes.Spare[0] = 0xE5F60102; status |= I2C_EEprom_Write_Ch(Dispenser_ID, EEprom_Add); SysCtlDelay(5000000);//Must delay for at least 5 milli. !!! (See data sheet ) diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c index 409737a9e..15060ab8b 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c +++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c @@ -42,6 +42,8 @@ #include "StateMachines/Initialization/InitSequence.h" #include "StateMachines/Initialization/PowerIdle.h" #include "StateMachines/Initialization/PowerOffSequence.h" +#include "Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.h" +#include <Drivers/I2C_Communication/Dispenser_Card/IO_Ports/Dispenser_IO.h> uint32_t EmbeddedParametersInit(void); uint32_t EmbeddedParametersWrite(void * buffer, uint16_t size); @@ -286,6 +288,10 @@ uint32_t HWConfiguration(UploadHardwareConfigurationRequest* UploadRequest) PrintingHWConfiguration(request); if (request->n_winders == 1) status += InternalWinderConfigMessage(request->winders); + + Check_Dispenser_Type(); + Init_Dispensers_IO_Registers(&Disp_IO_Reg); + status += MotorsInit(); if (request->n_motors < NUM_OF_MOTORS) |
