aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Drivers
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2020-01-30 16:47:22 +0200
committerShlomo Hecht <shlomo@twine-s.com>2020-01-30 16:47:22 +0200
commitbdb2ae480c0616dff10deabaa7c8cbb6fa16ffff (patch)
treebd5b6068a5e56b30cd26a025a20cc456c4d9fcdf /Software/Embedded_SW/Embedded/Drivers
parente1a8c002ded63f0ff87f8b2e9dc93370ff51e5ba (diff)
downloadTango-bdb2ae480c0616dff10deabaa7c8cbb6fa16ffff.tar.gz
Tango-bdb2ae480c0616dff10deabaa7c8cbb6fa16ffff.zip
Version 1.4.6.7 : beginning of removing the #ifdefs. Sylco head and arc head temperature control fixed. new events (version 18),
Diffstat (limited to 'Software/Embedded_SW/Embedded/Drivers')
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c65
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/Heater/Heater.c207
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c50
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.h12
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.c20
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c5
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Heaters/Head_Heaters.c24
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c4
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C.h1
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Comm.c16
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c35
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c7
12 files changed, 220 insertions, 226 deletions
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 f2f4ce7ae..af326b4ed 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
@@ -421,17 +421,18 @@ bool FPGA_Read_limit_Switches(FPGA_GPI_ENUM Limit_Switch)
case GPI_LS_DH_CLEAN_DOWN:
LM_Status = Ls_Dryer_Dh.bits.F1_LS_DH_CLEAN_DOWN;
break;
-#ifdef Use_Head_Card
case HEADCARD_COVER_LS_FRONT:
- LM_Status = Head_I2C_EXP4_0x46.bits.INPUT_LS_FRONT;
+ if(Head_Type == HEAD_TYPE_SYLKO)
+ LM_Status = Head_I2C_EXP4_0x46.bits.INPUT_LS_FRONT;
break;
case HEADCARD_COVER_LS_REAR:
- LM_Status = Head_I2C_EXP4_0x46.bits.INPUT_LS_FRONT;
+ if(Head_Type == HEAD_TYPE_SYLKO)
+ LM_Status = Head_I2C_EXP4_0x46.bits.INPUT_LS_FRONT;
break;
case HEADCARD_COVER_LS_UPPER:
- LM_Status = Head_I2C_EXP4_0x46.bits.INPUT_LS_FRONT;
+ if(Head_Type == HEAD_TYPE_SYLKO)
+ LM_Status = Head_I2C_EXP4_0x46.bits.INPUT_LS_FRONT;
break;
-#endif
default :
LM_Status = NO_LIMIT;
break;
@@ -511,11 +512,12 @@ uint32_t DeActivateCoolerPump() //WHS - Pump the waste accumulated in cooler to
uint32_t MagnetControlId = 0xFF;
uint32_t MagnetCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag)
{
-#ifdef Use_Head_Card
- HeadCard_HeadMagnet_Disable();
-#else
- MotorStop(HARDWARE_MOTOR_TYPE__MOTO_RLOADARM,Hard_Hiz );
-#endif
+
+ if(Head_Type == HEAD_TYPE_SYLKO)
+ HeadCard_HeadMagnet_Disable();
+ else
+ MotorStop(HARDWARE_MOTOR_TYPE__MOTO_RLOADARM,Hard_Hiz );
+
if (SafeRemoveControlCallback(MagnetControlId, MagnetCallBackFunction )==OK)
MagnetControlId = 0xFF;
else
@@ -528,17 +530,17 @@ uint32_t ActivateHeadMagnet()
{
Report("ActivateHeadMagnet - Close the lid magnet",__FILE__,__LINE__,(int)HARDWARE_MOTOR_TYPE__MOTO_RLOADARM,RpWarning,(int)DH_LID_OPEN,0);
//Task_sleep(500);
-#ifdef Use_Head_Card
- HeadCard_ActivateHeadMagnet();
-
-#else
- F2_CTRL_Reg.ushort &= ~SPARE_SSR13_CTRL;
- F2_CTRL = F2_CTRL_Reg.ushort;
- if (isMotorConfigured(HARDWARE_MOTOR_TYPE__MOTO_RLOADARM))
+ if(Head_Type == HEAD_TYPE_SYLKO)
+ HeadCard_ActivateHeadMagnet();
+ else
{
- MotorGoTo(HARDWARE_MOTOR_TYPE__MOTO_RLOADARM,DH_LID_CLOSE );
+ F2_CTRL_Reg.ushort &= ~SPARE_SSR13_CTRL;
+ F2_CTRL = F2_CTRL_Reg.ushort;
+ if (isMotorConfigured(HARDWARE_MOTOR_TYPE__MOTO_RLOADARM))
+ {
+ MotorGoTo(HARDWARE_MOTOR_TYPE__MOTO_RLOADARM,DH_LID_CLOSE );
+ }
}
-#endif
MagnetControlId = AddControlCallback(NULL, MagnetCallBackFunction, 2* eOneSecond, TemplateDataReadCBFunction,0,0, 0 );
return OK;
}
@@ -550,19 +552,22 @@ uint32_t HeadCard_HeadMagnet_Disable();
uint32_t DeActivateHeadMagnet()
{
-#ifdef Use_Head_Card
- HeadCard_DeActivateHeadMagnet();
- MagnetControlId = AddControlCallback(NULL, MagnetCallBackFunction, 2* eOneSecond, TemplateDataReadCBFunction,0,0, 0 );
-#else
- Report("DeActivateHeadMagnet - open the lid magnet",__FILE__,__LINE__,(int)HARDWARE_MOTOR_TYPE__MOTO_RLOADARM,RpWarning,(int)DH_LID_CLOSE,0);
- if (isMotorConfigured(HARDWARE_MOTOR_TYPE__MOTO_RLOADARM))
+ if(Head_Type == HEAD_TYPE_SYLKO)
{
- MotorGoTo(HARDWARE_MOTOR_TYPE__MOTO_RLOADARM,DH_LID_OPEN );
- //MotorGotoWithCallback(HARDWARE_MOTOR_TYPE__MOTO_RLOADARM, DH_LID_OPEN, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_RLOADARM], NULL,1000);
+ HeadCard_DeActivateHeadMagnet();
+ MagnetControlId = AddControlCallback(NULL, MagnetCallBackFunction, 2* eOneSecond, TemplateDataReadCBFunction,0,0, 0 );
+ }
+ else
+ {
+ Report("DeActivateHeadMagnet - open the lid magnet",__FILE__,__LINE__,(int)HARDWARE_MOTOR_TYPE__MOTO_RLOADARM,RpWarning,(int)DH_LID_CLOSE,0);
+ if (isMotorConfigured(HARDWARE_MOTOR_TYPE__MOTO_RLOADARM))
+ {
+ MotorGoTo(HARDWARE_MOTOR_TYPE__MOTO_RLOADARM,DH_LID_OPEN );
+ //MotorGotoWithCallback(HARDWARE_MOTOR_TYPE__MOTO_RLOADARM, DH_LID_OPEN, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_RLOADARM], NULL,1000);
+ }
+ F2_CTRL_Reg.ushort |= SPARE_SSR13_CTRL;
+ F2_CTRL = F2_CTRL_Reg.ushort;
}
- F2_CTRL_Reg.ushort |= SPARE_SSR13_CTRL;
- F2_CTRL = F2_CTRL_Reg.ushort;
-#endif
Task_sleep(500);
return OK;
}
diff --git a/Software/Embedded_SW/Embedded/Drivers/Heater/Heater.c b/Software/Embedded_SW/Embedded/Drivers/Heater/Heater.c
index 9062c79ca..57f96fbbf 100644
--- a/Software/Embedded_SW/Embedded/Drivers/Heater/Heater.c
+++ b/Software/Embedded_SW/Embedded/Drivers/Heater/Heater.c
@@ -106,152 +106,147 @@ bool isHeater(HardwarePidControlType HeaterId)
uint32_t ActivateHeater (int HeaterId)
{
assert(isHeater(HeaterIdtoHeaterpid[HeaterId]));
-#ifdef Use_Head_Card
- if (HeaterId>HEATER_TYPE__DryerSecondaryHeater)
- {
- HeadCard_Control_Heaters(HeaterTypetoHeadHeater[HeaterId],ON);
- //Activate_Head_Card_Heaters(HeaterTypetoHeadHeater[HeaterId]);
- }
- else
- { //F2_CTRL |= portMap[HeaterId].m_pin;
- F2_CTRL_Reg.ushort |= portMap[HeaterId].m_pin;
- F2_CTRL = F2_CTRL_Reg.ushort;
- }
-
-#else
- if (HeaterId >= HEATER_TYPE__HeaterZone7) return OK;
-
if (HeaterId == HEATER_TYPE__DryerAirHeater)
{
return OK;
}
-#ifndef EVALUATION_BOARD
- if(HeaterId == HEATER_TYPE__HeaterZone5)
- {
- //F1_gpo_01 |= portMap[HeaterId].m_pin;
- F1_GPO_Reg.ushort |= portMap[HeaterId].m_pin;
- F1_gpo_01 = F1_GPO_Reg.ushort;
-
- }
- else if(HeaterId == HEATER_TYPE__HeaterZone6)
- {
- //F3_GPO_01_bus |= portMap[HeaterId].m_pin;
- F3_GPO_01_Reg.ushort |= portMap[HeaterId].m_pin;
- F3_GPO_01_bus = F3_GPO_01_Reg.ushort;
-
- }
- else
+ if (HeaterId<=HEATER_TYPE__DryerSecondaryHeater)
{
- //F2_CTRL |= portMap[HeaterId].m_pin;
F2_CTRL_Reg.ushort |= portMap[HeaterId].m_pin;
F2_CTRL = F2_CTRL_Reg.ushort;
}
-#endif
-//---------------------------------------------------------------------------------------
-// if(HeaterId < HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ1) // Turn On FPGA LED
-// F3_GPO_01_bus |= (0x01 << HeaterId);
-// else
-// F3_GPO_01_bus |= BIT4;
-
-// if (HeaterId == HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ1)
-// STATUS_GREEN_LED_ON;
-// if (HeaterId == HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ2)
-// ACTIVITY_RED_LED_ON;
-// if (HeaterId == HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ3)
-// COMM_RED_LED_ON;
-
- //---------------------------------------------------------------------------------------
-
- portMap[HeaterId].Active = true;
+ else
+ { //F2_CTRL |= portMap[HeaterId].m_pin;
+ if(Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD)
+ HeadCard_Control_Heaters(HeaterTypetoHeadHeater[HeaterId],ON);
+ else
+ {
+ if (HeaterId >= HEATER_TYPE__HeaterZone7) return OK;
+ #ifndef EVALUATION_BOARD
+ if(HeaterId == HEATER_TYPE__HeaterZone5)
+ {
+ //F1_gpo_01 |= portMap[HeaterId].m_pin;
+ F1_GPO_Reg.ushort |= portMap[HeaterId].m_pin;
+ F1_gpo_01 = F1_GPO_Reg.ushort;
- //---------------------------------------------------------------------------------------
+ }
+ else if(HeaterId == HEATER_TYPE__HeaterZone6)
+ {
+ //F3_GPO_01_bus |= portMap[HeaterId].m_pin;
+ F3_GPO_01_Reg.ushort |= portMap[HeaterId].m_pin;
+ F3_GPO_01_bus = F3_GPO_01_Reg.ushort;
- HeaterActive |= 1 << HeaterId;
+ }
+ else
+ {
+ //F2_CTRL |= portMap[HeaterId].m_pin;
+ F2_CTRL_Reg.ushort |= portMap[HeaterId].m_pin;
+ F2_CTRL = F2_CTRL_Reg.ushort;
+ }
+ #endif
+ //---------------------------------------------------------------------------------------
+ // if(HeaterId < HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ1) // Turn On FPGA LED
+ // F3_GPO_01_bus |= (0x01 << HeaterId);
+ // else
+ // F3_GPO_01_bus |= BIT4;
-// } -----------------------------------------
-#endif
- //---------------------------------------------------------------------------------------
+ // if (HeaterId == HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ1)
+ // STATUS_GREEN_LED_ON;
+ // if (HeaterId == HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ2)
+ // ACTIVITY_RED_LED_ON;
+ // if (HeaterId == HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ3)
+ // COMM_RED_LED_ON;
+ //---------------------------------------------------------------------------------------
+ portMap[HeaterId].Active = true;
+ //---------------------------------------------------------------------------------------
+ HeaterActive |= 1 << HeaterId;
+ // } -----------------------------------------
+ //---------------------------------------------------------------------------------------
+ }
+ //Activate_Head_Card_Heaters(HeaterTypetoHeadHeater[HeaterId]);
+ }
return OK;
}
uint32_t DeActivateHeater (int HeaterId)
{
assert(isHeater(HeaterIdtoHeaterpid[HeaterId]));
-#ifdef Use_Head_Card
- if (HeaterId>HEATER_TYPE__DryerSecondaryHeater)
- {
- HeadCard_Control_Heaters(HeaterTypetoHeadHeater[HeaterId],OFF);
- //Deactivate_Head_Card_Heaters(HeaterTypetoHeadHeater[HeaterId]);
- }
- else
+ if (HeaterId<=HEATER_TYPE__DryerSecondaryHeater)
{
//F2_CTRL &= ~portMap[HeaterId].m_pin;
F2_CTRL_Reg.ushort &= ~portMap[HeaterId].m_pin;
F2_CTRL = F2_CTRL_Reg.ushort;
}
-#else
- if (HeaterId >= HEATER_TYPE__HeaterZone7) return OK;
-
-#ifndef EVALUATION_BOARD
- if(HeaterId == HEATER_TYPE__HeaterZone5)
- {
- //F1_gpo_01 &= ~portMap[HeaterId].m_pin;
- F1_GPO_Reg.ushort&= ~portMap[HeaterId].m_pin;
- F1_gpo_01 = F1_GPO_Reg.ushort;
- }
- else if(HeaterId == HEATER_TYPE__HeaterZone6)
- {
- //F3_GPO_01_bus &= ~portMap[HeaterId].m_pin;
- F3_GPO_01_Reg.ushort &= ~portMap[HeaterId].m_pin;
- F3_GPO_01_bus = F3_GPO_01_Reg.ushort;
- }
else
{
- //F2_CTRL &= ~portMap[HeaterId].m_pin;
- F2_CTRL_Reg.ushort &= ~portMap[HeaterId].m_pin;
- F2_CTRL = F2_CTRL_Reg.ushort;
- }
-#endif
-//---------------------------------------------------------------------------------------
-// if(HeaterId < HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ1) // Turn Off FPGA LED
-// F3_GPO_01_bus &= ~(0x01 << HeaterId);
-// else
-// F3_GPO_01_bus &= ~BIT4;
-
-// if (HeaterId == HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ1)
-// STATUS_GREEN_LED_OFF;
-// if (HeaterId == HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ2)
-// ACTIVITY_RED_LED_OFF;
-// if (HeaterId == HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ3)
-// COMM_RED_LED_OFF;
- //HeaterActive = false;
- //---------------------------------------------------------------------------------------
- portMap[HeaterId].Active = false;
-
- HeaterActive &= ~(1 << HeaterId);
+ if(Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD)
+ HeadCard_Control_Heaters(HeaterTypetoHeadHeater[HeaterId],OFF);
+ else
+ {
+ if (HeaterId >= HEATER_TYPE__HeaterZone7) return OK;
+#ifndef EVALUATION_BOARD
+ if(HeaterId == HEATER_TYPE__HeaterZone5)
+ {
+ //F1_gpo_01 &= ~portMap[HeaterId].m_pin;
+ F1_GPO_Reg.ushort&= ~portMap[HeaterId].m_pin;
+ F1_gpo_01 = F1_GPO_Reg.ushort;
+ }
+ else if(HeaterId == HEATER_TYPE__HeaterZone6)
+ {
+ //F3_GPO_01_bus &= ~portMap[HeaterId].m_pin;
+ F3_GPO_01_Reg.ushort &= ~portMap[HeaterId].m_pin;
+ F3_GPO_01_bus = F3_GPO_01_Reg.ushort;
+ }
+ else
+ {
+ //F2_CTRL &= ~portMap[HeaterId].m_pin;
+ F2_CTRL_Reg.ushort &= ~portMap[HeaterId].m_pin;
+ F2_CTRL = F2_CTRL_Reg.ushort;
+ //---------------------------------------------------------------------------------------
+ // if(HeaterId < HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ1) // Turn Off FPGA LED
+ // F3_GPO_01_bus &= ~(0x01 << HeaterId);
+ // else
+ // F3_GPO_01_bus &= ~BIT4;
- // } -----------------------------------------
+ // if (HeaterId == HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ1)
+ // STATUS_GREEN_LED_OFF;
+ // if (HeaterId == HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ2)
+ // ACTIVITY_RED_LED_OFF;
+ // if (HeaterId == HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ3)
+ // COMM_RED_LED_OFF;
+ //HeaterActive = false;
+ //---------------------------------------------------------------------------------------
+ portMap[HeaterId].Active = false;
+ HeaterActive &= ~(1 << HeaterId);
+ // } -----------------------------------------
+ }
#endif
+ }
+ //Deactivate_Head_Card_Heaters(HeaterTypetoHeadHeater[HeaterId]);
+ }
+
return OK;
}
bool GetHeaterState (int HeaterId)
{
assert(isHeater(HeaterIdtoHeaterpid[HeaterId]));
-#ifdef Use_Head_Card
if (HeaterId<=HEATER_TYPE__DryerSecondaryHeater)
{
return portMap[HeaterId].Active;
}
else
{
- return(Get_HeadCard_Heater_State(HeaterTypetoHeadHeater[HeaterId]));
+ if(Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD)
+ {
+ return(Get_HeadCard_Heater_State(HeaterTypetoHeadHeater[HeaterId]));
+ }
+ else
+ {
+ return portMap[HeaterId].Active;
+ }
}
-
-#else
- return portMap[HeaterId].Active;
-#endif
}
diff --git a/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c b/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c
index c5511e745..9d7cdbe4c 100644
--- a/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c
+++ b/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c
@@ -177,36 +177,38 @@ int TemperatureSensorRead(TEMPERATURE_SENSOR_ID_ENUM SensorId)
return TempSensorResponse[SensorId].Temperature_C_mult_by_100;
}
-#ifndef Use_Head_Card
-int TemperatureListString(char* str)
-{
- int len;
- len = usnprintf(str, 150, "Prepare H1: %d H2: %d H3: %d H4: %d H5: %d H6: %d D1: %d D2: %d D3: %d M: %d",TempSensorResponse[TEMP_SENSE_ANALOG_DYEINGH_TEMP1].Temperature_C_mult_by_100/100,
- TempSensorResponse[TEMP_SENSE_ANALOG_DYEINGH_TEMP2].Temperature_C_mult_by_100/100,TempSensorResponse[TEMP_SENSE_ANALOG_DYEINGH_TEMP3].Temperature_C_mult_by_100/100,
- TempSensorResponse[TEMP_SENSE_ANALOG_DYEINGH_TEMP4].Temperature_C_mult_by_100/100,TempSensorResponse[TEMP_SENSE_ANALOG_DYEINGH_TEMP5].Temperature_C_mult_by_100/100,
- TempSensorResponse[HEAD6_PT100].Temperature_C_mult_by_100/100,TempSensorResponse[TEMP_SENSE_ANALOG_DRYER_TEMP1].Temperature_C_mult_by_100/100,
- TempSensorResponse[TEMP_SENSE_ANALOG_DRYER_TEMP2].Temperature_C_mult_by_100/100,TempSensorResponse[TEMP_SENSE_ANALOG_DRYER_TEMP3].Temperature_C_mult_by_100/100
- ,TempSensorResponse[MIXER_PT100].Temperature_C_mult_by_100/100);
- //Prepare H1: 78 H2: 111 H3: 137 H4: 135 H5: 144 H6: 75 D1: 120 D2: 167 D3: 158 M: 129
- return len;
-}
-#else
int TemperatureListString(char* str)
{
int len;
+ if(Head_Type == HEAD_TYPE_SYLKO)
+ {
+ len = usnprintf(str, 160, "Prepare H1: ,%d, H2: ,%d, H3: ,%d, H4: ,%d, H5: ,%d, H6: ,%d, H7: ,%d, H8: ,%d, H9: ,%d, H10: ,%d, H11: ,%d, H12: ,%d, M: ,%d, D: ,%d,",
+ TempSensorResponse[HEAD_PT100_ZONE_1_0X80_0].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_2_0X80_1].Temperature_C_mult_by_100/100,
+ TempSensorResponse[HEAD_PT100_ZONE_3_0X82_0].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_4_0X82_1].Temperature_C_mult_by_100/100,
+ TempSensorResponse[HEAD_PT100_ZONE_5_0X84_0].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_6_0X84_1].Temperature_C_mult_by_100/100,
+ TempSensorResponse[HEAD_PT100_ZONE_7_0X86_0].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_8_0X86_1].Temperature_C_mult_by_100/100,
+ TempSensorResponse[HEAD_PT100_ZONE_9_0X88_0].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_10_0X88_1].Temperature_C_mult_by_100/100,
+ TempSensorResponse[HEAD_PT100_ZONE_11_0X8A_0].Temperature_C_mult_by_100/100,TempSensorResponse[HEAD_PT100_ZONE_12_0X8A_1].Temperature_C_mult_by_100/100,
+ TempSensorResponse[HEAD_PT100_MIXER_0X8E_0].Temperature_C_mult_by_100/100, TempSensorResponse[TEMP_SENSE_ANALOG_DRYER_TEMP1].Temperature_C_mult_by_100/100);
+
+ }
+ else if(Head_Type == HEAD_TYPE_SYLKO_WITHOUT_CARD)
+ {
+ len = usnprintf(str, 150, "Prepare H1: %d H2: %d H3: %d H4: %d H5: %d H6: %d D1: %d D2: %d D3: %d M: %d",TempSensorResponse[TEMP_SENSE_ANALOG_DYEINGH_TEMP1].Temperature_C_mult_by_100/100,
+ TempSensorResponse[TEMP_SENSE_ANALOG_DYEINGH_TEMP2].Temperature_C_mult_by_100/100,TempSensorResponse[TEMP_SENSE_ANALOG_DYEINGH_TEMP3].Temperature_C_mult_by_100/100,
+ TempSensorResponse[TEMP_SENSE_ANALOG_DYEINGH_TEMP4].Temperature_C_mult_by_100/100,TempSensorResponse[TEMP_SENSE_ANALOG_DYEINGH_TEMP5].Temperature_C_mult_by_100/100,
+ TempSensorResponse[HEAD6_PT100].Temperature_C_mult_by_100/100,TempSensorResponse[TEMP_SENSE_ANALOG_DRYER_TEMP1].Temperature_C_mult_by_100/100,
+ TempSensorResponse[TEMP_SENSE_ANALOG_DRYER_TEMP2].Temperature_C_mult_by_100/100,TempSensorResponse[TEMP_SENSE_ANALOG_DRYER_TEMP3].Temperature_C_mult_by_100/100
+ ,TempSensorResponse[MIXER_PT100].Temperature_C_mult_by_100/100);
+ //Prepare H1: 78 H2: 111 H3: 137 H4: 135 H5: 144 H6: 75 D1: 120 D2: 167 D3: 158 M: 129
+ }
+ else
+ {
+ len = usnprintf(str, 150, "Unknown head type");
+ }
- len = usnprintf(str, 160, "Prepare H1: ,%d, H2: ,%d, H3: ,%d, H4: ,%d, H5: ,%d, H6: ,%d, H7: ,%d, H8: ,%d, H9: ,%d, H10: ,%d, H11: ,%d, H12: ,%d, M: ,%d, D: ,%d,",
- TempSensorResponse[HEAD_PT100_ZONE_1_0X80_0].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_2_0X80_1].Temperature_C_mult_by_100/100,
- TempSensorResponse[HEAD_PT100_ZONE_3_0X82_0].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_4_0X82_1].Temperature_C_mult_by_100/100,
- TempSensorResponse[HEAD_PT100_ZONE_5_0X84_0].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_6_0X84_1].Temperature_C_mult_by_100/100,
- TempSensorResponse[HEAD_PT100_ZONE_7_0X86_0].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_8_0X86_1].Temperature_C_mult_by_100/100,
- TempSensorResponse[HEAD_PT100_ZONE_9_0X88_0].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_10_0X88_1].Temperature_C_mult_by_100/100,
- TempSensorResponse[HEAD_PT100_ZONE_11_0X8A_0].Temperature_C_mult_by_100/100,TempSensorResponse[HEAD_PT100_ZONE_12_0X8A_1].Temperature_C_mult_by_100/100,
- TempSensorResponse[HEAD_PT100_MIXER_0X8E_0].Temperature_C_mult_by_100/100, TempSensorResponse[TEMP_SENSE_ANALOG_DRYER_TEMP1].Temperature_C_mult_by_100/100);
- //Prepare H1: 78 H2: 111 H3: 137 H4: 135 H5: 144 H6: 75 D1: 120 D2: 167 D3: 158 M: 129
return len;
}
-#endif
uint32_t Filter_Temparature_Measurement(TEMPERATURE_SENSOR_ID_ENUM SensorId, int32_t Current_Measurement_C, uint32_t NoOfAvrSamples)
diff --git a/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.h b/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.h
index a8ef720ad..0b2c60822 100644
--- a/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.h
+++ b/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.h
@@ -34,7 +34,7 @@ HEAD_PT100_ZONE_5_0X84_0, //4
HEAD_PT100_ZONE_7_0X86_0, //6
HEAD_PT100_ZONE_9_0X88_0, //8
HEAD_PT100_ZONE_11_0X8A_0, //10
-HEAD_PT100_AIR_HEATER_1_0X8C_0, //12
+HEAD_PT100_AIR_HEATER_1_0X8C_0, //12 OUT!!!!!
HEAD_PT100_MIXER_0X8E_0, //14
//Select 1
HEAD_PT100_ZONE_2_0X80_1, //1
@@ -43,7 +43,7 @@ HEAD_PT100_ZONE_6_0X84_1, //5
HEAD_PT100_ZONE_8_0X86_1, //7
HEAD_PT100_ZONE_10_0X88_1, //9
HEAD_PT100_ZONE_12_0X8A_1, //11
-HEAD_PT100_AIR_HEATER_2_0X8C_1, //13
+HEAD_PT100_AIR_HEATER_2_0X8C_1, //13 IN!!!!
HEAD_PT100_RESERVE_0X8E_1, //15
//WHS Card 4 channels for temperature measuring
@@ -62,13 +62,13 @@ WHS_PT100_4_0X82_1,
#warning assuming that we won't use whs card without head card..
-#if defined(Use_WHS_Card)
+//#if defined(Use_WHS_Card)
#define MAX_TANGO_TEMPERATURE_SENSOR_ID MAX_WHS_CARD_TEMP_SENS_ID // WHS + Head cards
-#elif defined(Use_Head_Card)
+/*#elif defined(Use_Head_Card)
#define MAX_TANGO_TEMPERATURE_SENSOR_ID MAX_HEAD_CARD_TEMP_SENS_ID
#else
#define MAX_TANGO_TEMPERATURE_SENSOR_ID MAX_MAIN_CARD_TEMP_SENS_ID
-#endif
+#endif*/
typedef enum
{
@@ -166,9 +166,7 @@ uint32_t CalculateTemperatures(TEMPERATURE_SENSOR_ID_ENUM SensorId, uint32_t Dat
int TemperatureSensorRead(TEMPERATURE_SENSOR_ID_ENUM SensorId); // read from buffer
-#ifndef Use_Head_Card
int TemperatureListString(char* str);
-#endif
//The temparature will be at:
//TempSensorResponse[TEMP_SENSE_ANALOG_DYEINGH_TEMP1].Temperature_C_mult_by_100
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.c
index a9fcd4420..123f3f1e9 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.c
@@ -412,25 +412,22 @@ uint32_t Heaters_Current_Bits[9];//just for debug
void Enable_Reading_Heaters_Current(HEATERS_CURRENT Heater_ID) //0-8
{
-#ifdef Use_Head_Card
- return;
-#endif
+ if(Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD)
+ return;
assert (Heater_ID<NUM_OF_CURRENT_HEATERS);
Heaters_Current_Read_Enable[Heater_ID] = true;
}
void Disable_Reading_Heaters_Current(HEATERS_CURRENT Heater_ID) //0-8
{
-#ifdef Use_Head_Card
- return;
-#endif
+ if(Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD)
+ return;
assert (Heater_ID<NUM_OF_CURRENT_HEATERS);
Heaters_Current_Read_Enable[Heater_ID] = false;
}
bool Get_Heater_Current_Reading_State(HEATERS_CURRENT Heater_ID) //0-8
{
-#ifdef Use_Head_Card
- return;
-#endif
+ if(Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD)
+ return false;
assert (Heater_ID<NUM_OF_CURRENT_HEATERS);
return Heaters_Current_Read_Enable[Heater_ID];
}
@@ -438,9 +435,8 @@ bool Get_Heater_Current_Reading_State(HEATERS_CURRENT Heater_ID) //0-8
uint32_t Read_Heaters_Current(HEATERS_CURRENT Heater_ID) //0-8
{
uint32_t Status = OK;
-#ifdef Use_Head_Card
- return 0;
-#endif
+ if(Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD)
+ return 0;
assert (Heater_ID<NUM_OF_CURRENT_HEATERS);
if (Heaters_Current_Read_Enable[Heater_ID] == true)
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c
index 55e902f24..691513452 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c
@@ -359,9 +359,8 @@ uint32_t HeadCard_Read_Cover_LS()//
if(HeadCard_Activate_Cover_LS == true)
{
- #ifdef Use_Head_Card
- Head_Read_IO_Reg(0x46, HIGH);//READ HEAD CARD LS
- #endif
+ if(Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD)
+ Head_Read_IO_Reg(0x46, HIGH);//READ HEAD CARD LS
}
return status;
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Heaters/Head_Heaters.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Heaters/Head_Heaters.c
index 21d6feed9..c2ac5fd66 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Heaters/Head_Heaters.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Heaters/Head_Heaters.c
@@ -136,32 +136,32 @@ uint32_t HeadCard_Control_Heaters(HEADCARD_HEATERS_ENUM Heater_ID, bool Pwr_Cmd)
case HEADCARD_UPPER_HIT_IN1:
Head_I2C_EXP1_0x40.bits.OUTPUT_ON_HTIN1 = Pwr_Cmd;
//status |= Head_Write_IO_Reg(0x40,HIGH);
- break;
- case HEADCARD_UPPER_HIT_IN2:
+// break;
+// case HEADCARD_UPPER_HIT_IN2:
Head_I2C_EXP1_0x40.bits.OUTPUT_ON_HTIN2 = Pwr_Cmd;
//status |= Head_Write_IO_Reg(0x40,HIGH);
- break;
- case HEADCARD_UPPER_HIT_IN3:
+// break;
+// case HEADCARD_UPPER_HIT_IN3:
Head_I2C_EXP1_0x40.bits.OUTPUT_ON_HTIN3 = Pwr_Cmd;
//status |= Head_Write_IO_Reg(0x40,HIGH);
- break;
- case HEADCARD_UPPER_HIT_IN4:
+// break;
+// case HEADCARD_UPPER_HIT_IN4:
Head_I2C_EXP1_0x40.bits.OUTPUT_ON_HTIN4 = Pwr_Cmd;
//status |= Head_Write_IO_Reg(0x40,HIGH);
break;
case HEADCARD_UPPER_HIT_OUT1:
Head_I2C_EXP2_0x42.bits.OUTPUT_ON_HTOT1 = Pwr_Cmd;
//status |= Head_Write_IO_Reg(0x42,LOW);
- break;
- case HEADCARD_UPPER_HIT_OUT2:
+// break;
+// case HEADCARD_UPPER_HIT_OUT2:
Head_I2C_EXP2_0x42.bits.OUTPUT_ON_HTOT2 = Pwr_Cmd;
//status |= Head_Write_IO_Reg(0x42,LOW);
- break;
- case HEADCARD_UPPER_HIT_OUT3:
+// break;
+// case HEADCARD_UPPER_HIT_OUT3:
Head_I2C_EXP2_0x42.bits.OUTPUT_ON_HTOT3 = Pwr_Cmd;
//status |= Head_Write_IO_Reg(0x42,LOW);
- break;
- case HEADCARD_UPPER_HIT_OUT4:
+// break;
+// case HEADCARD_UPPER_HIT_OUT4:
Head_I2C_EXP2_0x42.bits.OUTPUT_ON_HTOT4 = Pwr_Cmd;
//status |= Head_Write_IO_Reg(0x42,LOW);
break;
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c
index ca645444e..3cc1a0fa3 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c
@@ -87,7 +87,7 @@ uint32_t I2C_Write_SensorId(uint32_t I2C_ID, TEMPERATURE_SENSOR_ID_ENUM SensorId
I2C_ADC_ADS122C04_SLAVE_ADD = SensorId_To_SlaveAdd(SensorId);
status |= I2C_Write(I2C_ID, I2C_ADC_ADS122C04_SLAVE_ADD, I2C_Write_buf, No_BytesToWrite);
if (status)
- Report("I2C_Write_SensorId error", __FILE__,Task_self(),status, RpMessage,SensorId, 0);
+ Report("I2C_Write_SensorId error", __FILE__,Arb_Loss_Count,status, RpMessage,SensorId, 0);
return status;
}
@@ -211,7 +211,7 @@ uint32_t HeadADCPT100_SendReadDataCommand(TEMPERATURE_SENSOR_ID_ENUM SensorId)
Status |= I2C_Read_SensorId(I2C_ID_HEAD_CARD, SensorId, temp, 3);
if (Status)
- Report("HeadADCPT100_SendReadDataCommand error", __FILE__,Task_self(),Status, RpMessage,SensorId, 0);
+ Report("HeadADCPT100_SendReadDataCommand error", __FILE__,Arb_Loss_Count,Status, RpMessage,SensorId, 0);
//First send the MSB so we need to reorder the bytes
Data_ADC_Head = temp[0];
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C.h b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C.h
index bb6d934de..efb46c5be 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C.h
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C.h
@@ -8,6 +8,7 @@
#ifndef DRIVERS_I2C_COMMUNICATION_I2C_H_
#define DRIVERS_I2C_COMMUNICATION_I2C_H_
+extern uint32_t Arb_Loss_Count;
#define I2C_BUSY_DELAY 5000//15000
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Comm.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Comm.c
index 6152d32ac..ecd598f88 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Comm.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Comm.c
@@ -110,7 +110,7 @@ uint32_t I2C_WriteBuff(uint32_t I2C_BASE, unsigned char addr, unsigned char* dat
if (status == I2C_MASTER_ERR_ARB_LOST)
{
- if (Arb_Loss_Count++ > 100)
+ if (Arb_Loss_Count++ > 10)
{
Arb_Loss_Count= 0;
Init_All_I2C();
@@ -118,7 +118,11 @@ uint32_t I2C_WriteBuff(uint32_t I2C_BASE, unsigned char addr, unsigned char* dat
}
}
else
- Arb_Loss_Count = 0;
+ {
+ if (Arb_Loss_Count)
+ Report("Resetting count ", __FILE__,Arb_Loss_Count,status, RpMessage,Task_self(), 0);
+ // Arb_Loss_Count = 0;
+ }
return status;
}
@@ -186,7 +190,7 @@ uint32_t I2C_ReadBuff(uint32_t I2C_BASE, unsigned char addr, unsigned char* data
}
if (status == I2C_MASTER_ERR_ARB_LOST)
{
- if (Arb_Loss_Count++ > 100)
+ if (Arb_Loss_Count++ > 10)
{
Arb_Loss_Count= 0;
Init_All_I2C();
@@ -194,7 +198,11 @@ uint32_t I2C_ReadBuff(uint32_t I2C_BASE, unsigned char addr, unsigned char* data
}
}
else
- Arb_Loss_Count = 0;
+ {
+ if (Arb_Loss_Count)
+ Report("Resetting count ", __FILE__,Arb_Loss_Count,status, RpMessage,Task_self(), 0);
+ //Arb_Loss_Count = 0;
+ }
return status;
}
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c
index 36910cee6..8af9a8576 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c
@@ -73,11 +73,15 @@ void Trigger_Heater_Current_Read(void)
{
I2C_ReadingMessageStruc I2C_ReadingMessage;
uint8_t Heater_i=0;
-#ifdef Use_Head_Card
- // for (Heater_i = 0;Heater_i < HEAD_NUM_OF_ADC;Heater_i++)//No need - reads all inputs at the same time
-#else
- for (Heater_i = 0;Heater_i < NUM_OF_CURRENT_HEATERS;Heater_i++)
-#endif
+ uint8_t Heater_Lim=0;
+ if(Head_Type == HEAD_TYPE_SYLKO_WITHOUT_CARD)
+ Heater_Lim = NUM_OF_CURRENT_HEATERS;
+ if(Head_Type == HEAD_TYPE_SYLKO)
+ Heater_Lim = HEAD_NUM_OF_ADC;
+ if(Head_Type == HEAD_TYPE_STAPLE_SPUN)
+ Heater_Lim = HEAD_NUM_OF_ADC;
+
+ // for (Heater_i = 0;Heater_i < Heater_Lim;Heater_i++)//No need - reads all inputs at the same time
{
I2C_ReadingMessage.messageId = Heater_Current_Reading;
I2C_ReadingMessage.parameter = Heater_i;
@@ -361,15 +365,11 @@ void I2C_ReadingTask(UArg arg0, UArg arg1)
break;
case Heater_Current_Reading:
//Report("Read_Heaters_Current",__FILE__,__LINE__,255,RpWarning,0,0);
-#ifdef Use_Head_Card
- Read_Head_ADC(I2C_ReadingMessage.parameter);
-#else
- Read_Heaters_Current(I2C_ReadingMessage.parameter);
-#endif
+ if(Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD)
+ Read_Head_ADC(I2C_ReadingMessage.parameter);
+ else
+ Read_Heaters_Current(I2C_ReadingMessage.parameter);
break;
-
-#ifdef Use_Head_Card
-
case PT100_Reading:
Set_HeadCard_PT100();
break;
@@ -380,12 +380,7 @@ void I2C_ReadingTask(UArg arg0, UArg arg1)
Head_Read_IO_Reg(0x46, HIGH);//READ HEAD CARD LS
break;
case Outputs_Writing:
-
break;
-#endif
-
-#ifdef Use_WHS_Card
-
case WHS_PT100_Reading:
for (Sensor_i = WHS_PT100_1_0X80_0; Sensor_i <= WHS_PT100_4_0X82_1; Sensor_i++)
{
@@ -465,10 +460,6 @@ void I2C_ReadingTask(UArg arg0, UArg arg1)
case WHS_I2C_EEPROM_READ: //
WHS_I2C_EEprom_Read(I2C_ReadingMessage.parameter, I2C_ReadingMessage.parameter2, I2C_ReadingMessage.parameter3);
break;
-
-
-#endif
-
default:
break;
}
diff --git a/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c b/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c
index a8a8cd2b9..59405be76 100644
--- a/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c
+++ b/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c
@@ -177,11 +177,10 @@ void Valve_Command(Valves_t Valve_Id) //1 - OPEN, 0 - CLOSE
F1_GPO_Reg.bits.F1_VALVE_WASTE_TANK = ValveRequest[Valve_Id].Direction;
break;
case VALVE_MIXCHIP_WASTECH:
-#ifdef Use_Head_Card
- HeadCard_Valve_Control(ValveRequest[Valve_Id].Direction);
-#else
+ if(Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD)
+ HeadCard_Valve_Control(ValveRequest[Valve_Id].Direction);
+ else
F1_GPO_Reg.bits.F1_VALVE_MIXCHIP_WASTECH = ValveRequest[Valve_Id].Direction;
-#endif
break;
case VALVE_DISPENSER_1: