aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2020-03-08 14:00:53 +0200
committerAvi Levkovich <avi@twine-s.com>2020-03-08 14:00:53 +0200
commit89235be35397d91ad5e8cadd59cd009b8d682960 (patch)
tree56f5296c240c32c9124c2528363379294ff321bf /Software/Embedded_SW/Embedded
parentec3f3c69f80c52a48e35dc0e4eb6910a335038b6 (diff)
downloadTango-89235be35397d91ad5e8cadd59cd009b8d682960.tar.gz
Tango-89235be35397d91ad5e8cadd59cd009b8d682960.zip
update the dispenser eeprom struct
Diffstat (limited to 'Software/Embedded_SW/Embedded')
-rw-r--r--Software/Embedded_SW/Embedded/DataDef.h40
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.c7
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.h2
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_FIFO.h17
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c11
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