Index: firmware/App/Drivers/ConductivitySensors.c =================================================================== diff -u -red39129abdca4ec343369d83494530b23621e052 -ra9983d3e6b07e7c927fab3d16e80b715594fe221 --- firmware/App/Drivers/ConductivitySensors.c (.../ConductivitySensors.c) (revision ed39129abdca4ec343369d83494530b23621e052) +++ firmware/App/Drivers/ConductivitySensors.c (.../ConductivitySensors.c) (revision a9983d3e6b07e7c927fab3d16e80b715594fe221) @@ -143,6 +143,7 @@ initFPGAPersistentAlarm( FPGA_PERS_ERROR_D27_COND_SENSOR, ALARM_ID_DD_D27_COND_SENSOR_FPGA_FAULT, COND_SENSORS_FPGA_ERROR_TIMEOUT_MS, COND_SENSORS_FPGA_ERROR_TIMEOUT_MS ); initFPGAPersistentAlarm( FPGA_PERS_ERROR_D29_COND_SENSOR, ALARM_ID_DD_D29_COND_SENSOR_FPGA_FAULT, COND_SENSORS_FPGA_ERROR_TIMEOUT_MS, COND_SENSORS_FPGA_ERROR_TIMEOUT_MS ); initFPGAPersistentAlarm( FPGA_PERS_ERROR_D43_COND_SENSOR, ALARM_ID_DD_D43_COND_SENSOR_FPGA_FAULT, COND_SENSORS_FPGA_ERROR_TIMEOUT_MS, COND_SENSORS_FPGA_ERROR_TIMEOUT_MS ); + initFPGAPersistentAlarm( FPGA_PERS_ERROR_D74_COND_SENSOR, ALARM_ID_DD_D74_COND_SENSOR_FPGA_FAULT, COND_SENSORS_FPGA_ERROR_TIMEOUT_MS, COND_SENSORS_FPGA_ERROR_TIMEOUT_MS ); } /*********************************************************************//** @@ -165,23 +166,27 @@ currentConductivityReadings[ D27_COND ].data = (F32)getFPGAD27Cond(); currentConductivityReadings[ D29_COND ].data = (F32)getFPGAD29Cond(); currentConductivityReadings[ D43_COND ].data = (F32)getFPGAD43Cond(); + currentConductivityReadings[ D74_COND ].data = (F32)getFPGAD74Cond(); // Read temperature associated to conductivity sensor currentTemperatureReadings[ D17_COND ].data = (F32)getFPGAD17CondTemp(); currentTemperatureReadings[ D27_COND ].data = (F32)getFPGAD27CondTemp(); currentTemperatureReadings[ D29_COND ].data = (F32)getFPGAD29CondTemp(); currentTemperatureReadings[ D43_COND ].data = (F32)getFPGAD43CondTemp(); + currentTemperatureReadings[ D74_COND ].data = (F32)getFPGAD74CondTemp(); // Update read and error counters for each conductivity sensor lastConductivityReadCounter[ D17_COND ].data = (U32)getFPGAD17CondReadCount(); lastConductivityReadCounter[ D27_COND ].data = (U32)getFPGAD27CondReadCount(); lastConductivityReadCounter[ D29_COND ].data = (U32)getFPGAD29CondReadCount(); lastConductivityReadCounter[ D43_COND ].data = (U32)getFPGAD43CondReadCount(); + lastConductivityReadCounter[ D74_COND ].data = (U32)getFPGAD74CondReadCount(); lastConductivityErrorCounter[ D17_COND ].data = (U32)getFPGAD17CondErrorCount(); lastConductivityErrorCounter[ D27_COND ].data = (U32)getFPGAD27CondErrorCount(); lastConductivityErrorCounter[ D29_COND ].data = (U32)getFPGAD29CondErrorCount(); lastConductivityErrorCounter[ D43_COND ].data = (U32)getFPGAD43CondErrorCount(); + lastConductivityErrorCounter[ D74_COND ].data = (U32)getFPGAD74CondErrorCount(); // Monitor conductivity sensor health checkConductivitySensors(); @@ -199,6 +204,8 @@ * D29 conductivity sensor is not able to be read. * @details \b Alarm: ALARM_ID_DD_D43_COND_SENSOR_FPGA_FAULT if the * D43 conductivity sensor is not able to be read. + * @details \b Alarm: ALARM_ID_DD_D74_COND_SENSOR_FPGA_FAULT if the + * D74 conductivity sensor is not able to be read. * @details \b Inputs: lastConductivityReadCounter, lastConductivityErrorCounter * @details \b Outputs: none * @return none @@ -209,11 +216,13 @@ checkFPGAPersistentAlarms( FPGA_PERS_ERROR_D27_COND_SENSOR, getConductivitySensorReadCount(D27_COND) ); checkFPGAPersistentAlarms( FPGA_PERS_ERROR_D29_COND_SENSOR, getConductivitySensorReadCount(D29_COND) ); checkFPGAPersistentAlarms( FPGA_PERS_ERROR_D43_COND_SENSOR, getConductivitySensorReadCount(D43_COND) ); + checkFPGAPersistentAlarms( FPGA_PERS_ERROR_D74_COND_SENSOR, getConductivitySensorReadCount(D74_COND) ); checkFPGAPersistentErrorCountAlarm( FPGA_PERS_ERROR_D17_COND_SENSOR, getConductivitySensorErrorCount( D17_COND ) ); checkFPGAPersistentErrorCountAlarm( FPGA_PERS_ERROR_D27_COND_SENSOR, getConductivitySensorErrorCount( D27_COND ) ); checkFPGAPersistentErrorCountAlarm( FPGA_PERS_ERROR_D27_COND_SENSOR, getConductivitySensorErrorCount( D29_COND ) ); checkFPGAPersistentErrorCountAlarm( FPGA_PERS_ERROR_D43_COND_SENSOR, getConductivitySensorErrorCount( D43_COND ) ); + checkFPGAPersistentErrorCountAlarm( FPGA_PERS_ERROR_D74_COND_SENSOR, getConductivitySensorErrorCount( D74_COND ) ); } /*********************************************************************//** @@ -515,6 +524,18 @@ // clear D43 reset clearFPGAD43CondReset(); } + + if ( TRUE == conductivitySensorControl[ D74_COND ].resetRequested ) + { + // D74 reset + setFPGAD74CondReset(); + conductivitySensorControl[ D74_COND ].resetRequested = FALSE; + } + else + { + // clear D74 reset + clearFPGAD74CondReset(); + } } /*********************************************************************//** @@ -577,6 +598,18 @@ // clear D43 Init command clearFPGAD43CondInitEnable(); } + + if ( TRUE == conductivitySensorControl[ D74_COND ].initEnable ) + { + // D74 initialization + setFPGAD74CondInitEnable(); + conductivitySensorControl[ D74_COND ].initEnable = FALSE; + } + else + { + // clear D74 Init command + clearFPGAD74CondInitEnable(); + } } /*********************************************************************//** @@ -674,6 +707,18 @@ state = CONDUCTIVITY_WRITE_COMPLETE; } + if ( TRUE == conductivitySensorControl[ D74_COND ].writeEnable && + FALSE == conductivitySensorControl[ D74_COND ].writeInProgress ) + { + // D74 write request + conductivitySensorControl[ D74_COND ].writeComplete = FALSE; + conductivitySensorControl[ D74_COND ].writeInProgress = TRUE; + setFPGACD5Address( conductivitySensorControl[ D74_COND ].writeAddress ); + setFPGACD5Data( conductivitySensorControl[ D74_COND ].writeData ); + setFPGAD74CondWriteEnable(); + state = CONDUCTIVITY_WRITE_COMPLETE; + } + return state; } @@ -721,6 +766,13 @@ state = CONDUCTIVITY_WRITE_INITIATE; } + if ( TRUE == conductivitySensorControl[ D74_COND ].writeInProgress ) + { + conductivitySensorControl[ D74_COND ].writeComplete = TRUE; + conductivitySensorControl[ D74_COND ].writeEnable = FALSE; + clearFPGAD74CondWriteEnable(); + state = CONDUCTIVITY_WRITE_INITIATE; + } return state; } @@ -815,6 +867,17 @@ state = CONDUCTIVITY_READ_COMPLETE; } + if ( TRUE == conductivitySensorControl[ D74_COND ].readEnable && + FALSE == conductivitySensorControl[ D74_COND ].readInProgress ) + { + // D74 read request + conductivitySensorControl[ D74_COND ].readComplete = FALSE; + conductivitySensorControl[ D74_COND ].readInProgress = TRUE; + setFPGACD5Address( conductivitySensorControl[ D74_COND ].readAddress ); + setFPGAD74CondReadEnable(); + state = CONDUCTIVITY_READ_COMPLETE; + } + return state; } @@ -866,6 +929,15 @@ state = CONDUCTIVITY_READ_INITIATE; } + if ( TRUE == conductivitySensorControl[ D74_COND ].readInProgress ) + { + conductivitySensorControl[ D74_COND ].readData = getFPGAD74CondData(); + conductivitySensorControl[ D74_COND ].readComplete = TRUE; + conductivitySensorControl[ D74_COND ].readEnable = FALSE; + clearFPGAD74CondReadEnable(); + state = CONDUCTIVITY_READ_INITIATE; + } + return state; }