Index: firmware/App/Controllers/ConductivitySensors.c =================================================================== diff -u -r92ec01cb48d91fe7315baa987e1aa051dd12df75 -r2453a1f92978ed1900becfc0dda2cf5a9b8e8d0b --- firmware/App/Controllers/ConductivitySensors.c (.../ConductivitySensors.c) (revision 92ec01cb48d91fe7315baa987e1aa051dd12df75) +++ firmware/App/Controllers/ConductivitySensors.c (.../ConductivitySensors.c) (revision 2453a1f92978ed1900becfc0dda2cf5a9b8e8d0b) @@ -31,7 +31,7 @@ // ********** private definitions ********** -#define COND_SENSOR_PROBE_TYPE 100 ///< 1K cell constant conductivity probe +#define COND_CPO_SENSOR_PROBE_TYPE 10 ///< 0.1 K cell constant conductivity probe #define COND_SENSOR_DECIMAL_CONVERSION 100 ///< Conductivity value from FPGA has two decimal place #define COND_SENSOR_TEMPERATURE_COEF 0.02 ///< Linear temperature coefficient of variation at 25 Celcius for fresh water #define COND_SENSOR_REFERENCE_TEMPERATURE 25 ///< Reference temperature for conductivity sensor @@ -97,16 +97,15 @@ compensatedConductivityValues[ i ].ovData = 0.0; compensatedConductivityValues[ i ].ovInitData = 0.0; compensatedConductivityValues[ i ].override = OVERRIDE_RESET; - - // TODO: Ability to change probe type -// setFPGAConductivityProbeType( COND_SENSOR_PROBE_TYPE ); } roRejectionRatio.data = 0.0; roRejectionRatio.ovData = 0.0; roRejectionRatio.ovInitData = 0.0; roRejectionRatio.override = OVERRIDE_RESET; + setFPGACPoProbeType( COND_CPO_SENSOR_PROBE_TYPE ); + initTimeWindowedCount( TIME_WINDOWED_COUNT_FPGA_CONDUCTIVITY_SENSOR_ERROR, MAX_CONDUCTIVITY_SENSOR_FAILURES, MAX_CONDUCTIVITY_SENSOR_FAILURE_WINDOW_MS ); initPersistentAlarm( ALARM_ID_INLET_WATER_HIGH_CONDUCTIVITY, ALARM_DATA_TYPE_F32, COND_SENSOR_PERSISTENCE_COUNT, COND_SENSOR_PERSISTENCE_COUNT ); initPersistentAlarm( ALARM_ID_INLET_WATER_LOW_CONDUCTIVITY, ALARM_DATA_TYPE_F32, COND_SENSOR_PERSISTENCE_COUNT, COND_SENSOR_PERSISTENCE_COUNT ); Index: firmware/App/Services/FPGA.c =================================================================== diff -u -rdc0d9b087c609e71cacdb7f0395cccf29d749c00 -r2453a1f92978ed1900becfc0dda2cf5a9b8e8d0b --- firmware/App/Services/FPGA.c (.../FPGA.c) (revision dc0d9b087c609e71cacdb7f0395cccf29d749c00) +++ firmware/App/Services/FPGA.c (.../FPGA.c) (revision 2453a1f92978ed1900becfc0dda2cf5a9b8e8d0b) @@ -44,7 +44,7 @@ #define FPGA_HEADER_START_ADDR 0x0000 #define FPGA_BULK_READ_START_ADDR 0x0100 -#define FPGA_BULK_WRITE_START_ADDR 0x000E +#define FPGA_BULK_WRITE_START_ADDR 0x000C #define FPGA_WRITE_CMD_BUFFER_LEN (FPGA_PAGE_SIZE+8) #define FPGA_READ_CMD_BUFFER_LEN 8 @@ -153,11 +153,13 @@ } DG_FPGA_SENSORS_T; typedef struct -{ - U16 fpgaCPoProbeType; - U16 fpgaCPiProbeType; - U16 fpgaDrainPumpSetSpeed; - U16 fpgaValveStates; +{ + U08 fpgaCPoControlReg; ///< Reg 12. CPo control register + U08 fpgaCPiControlReg; ///< Reg 13. CPi control register + U16 fpgaCPoProbeType; ///< Reg 14. CPo probe type + U16 fpgaCPiProbeType; ///< Reg 16. CPi probe type + U16 fpgaDrainPumpSetSpeed; ///< Reg 18. Drain pump control register + U16 fpgaValveStates; ///< Reg 20. Valve control register } FPGA_ACTUATORS_T; #pragma pack(pop) @@ -932,8 +934,24 @@ dac = dac << DRAIN_PUMP_DAC_SHIFT_BITS; fpgaActuatorSetPoints.fpgaDrainPumpSetSpeed = dac; -} +} +/*********************************************************************//** + * @brief + * The setFPGACPoProbeType function sets the CPo sensor probe type and + * sets the control register to write probte type to the device. + * @details + * Inputs : none + * Outputs : fpgaActuatorSetPoints.fpgaCPoProbeType, fpgaActuatorSetPoints.fpgaCPoControlReg + * @param probeType The probe cell constant value to set to + * @return none + *************************************************************************/ +void setFPGACPoProbeType( U16 probeType ) +{ + fpgaActuatorSetPoints.fpgaCPoProbeType = probeType; + fpgaActuatorSetPoints.fpgaCPoControlReg = 0x1; +} + /*********************************************************************//** * @brief * The getFPGAId function gets the version read from the Id register \n Index: firmware/App/Services/FPGA.h =================================================================== diff -u -rdc0d9b087c609e71cacdb7f0395cccf29d749c00 -r2453a1f92978ed1900becfc0dda2cf5a9b8e8d0b --- firmware/App/Services/FPGA.h (.../FPGA.h) (revision dc0d9b087c609e71cacdb7f0395cccf29d749c00) +++ firmware/App/Services/FPGA.h (.../FPGA.h) (revision 2453a1f92978ed1900becfc0dda2cf5a9b8e8d0b) @@ -34,7 +34,8 @@ void signalFPGATransmitCompleted( void ); void setFPGAValveStates( U16 valveStates ); -void setFPGADrainPumpSpeed( U08 drainPumpDAC ); +void setFPGADrainPumpSpeed( U08 drainPumpDAC ); +void setFPGACPoProbeType( U16 valveStates ); void getFPGAVersions( U08 *Id, U08 *Maj, U08 *Min, U08 *Lab ); U16 getFPGAValveStates( void );