aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2019-05-14 11:34:16 +0300
committerShlomo Hecht <shlomo@twine-s.com>2019-05-14 11:34:16 +0300
commit358c1760cd50829c8bf42d857ee3347201227b0e (patch)
treeb96225896c479d87303d4b4e7bc3f134b4149358 /Software/Embedded_SW/Embedded
parentd31ad49fdc654352322da85da921e6e0423d98bd (diff)
parentb9c6f8c973994933c60cf0fa06a4bafeb9d349b1 (diff)
downloadTango-358c1760cd50829c8bf42d857ee3347201227b0e.tar.gz
Tango-358c1760cd50829c8bf42d857ee3347201227b0e.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software/Embedded_SW/Embedded')
-rw-r--r--Software/Embedded_SW/Embedded/DataDef.h52
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c2
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.c14
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c6
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)