Index: firmware/App/Drivers/ConductivitySensors.c =================================================================== diff -u -r83bae6ae5f7f26a3511d1d6965310fd8ac9ad496 -rc49f9ed931d60e5bd1d0a406fde6c9fe1437f73b --- firmware/App/Drivers/ConductivitySensors.c (.../ConductivitySensors.c) (revision 83bae6ae5f7f26a3511d1d6965310fd8ac9ad496) +++ firmware/App/Drivers/ConductivitySensors.c (.../ConductivitySensors.c) (revision c49f9ed931d60e5bd1d0a406fde6c9fe1437f73b) @@ -73,6 +73,11 @@ #define SIEMENS_TO_MICROSIEMENS_CONVERSION 1000000.0F ///< Siemens to microSiemens conversion factor. #define KOHMS_TO_OHMS 1000.0F ///< Kilo ohms to ohms conversion factor. +#define COND_SENS_CMD_SETCAL 0x1 ///< Bit 0 set to 1 to send command set calibration data to FPGA +#define COND_SENS_CMD_SET_SN_HW 0x2 ///< Bit 1 set to 1 to send command set hardware version and serial number to FPGA +#define COND_SENS_CMD_RESET 0x4 ///< Bit 2 set to 1 to send command reset sensor to FPGA + + /// Defined states for the conductivity write transaction. typedef enum Conductvity_States { @@ -343,48 +348,34 @@ conductivitySensorStatus[ P18_COND ].calMemCount = getFPGAP18CalMemCounter(); } + +/*********************************************************************//** + * @brief + * The writeConductivitySensorCalData function sets the calibration data of + * given conductivity sensor in the flash memory of the sensor. + * @details \b Inputs: conductivityCalRecord + * @details \b Outputs: none + * @param sensorId Sensor ID conductivity sensor + * @return none + *************************************************************************/ static void writeConductivitySensorCalData( CONDUCTIVITY_SENSORS_T sensorId ) { - // Update cal data and counter for each conductivity sensor - U32 calData = conductivitySensorStatus[ sensorId ].calData; - U08 command; - - switch ( sensorId ) - { - case D17_COND: - setFPGAD17CondCalData( calData ); - break; - - case D27_COND: - setFPGAD27CondCalData( calData ); - break; - - case D29_COND: - setFPGAD29CondCalData( calData ); - break; - - case D43_COND: - setFPGAD43CondCalData( calData ); - break; - - case D74_COND: - setFPGAD74CondCalData( calData ); - break; - - case P9_COND: - setFPGAP9CondCalData( calData ); - break; - - case P18_COND: - setFPGAP18CondCalData( calData ); - break; - - default: - break; - } - - setFPGAConductivitySensorId( (U08)sensorId ); - setFPGAConductivitySensorCommand( (U08) command ); + setFPGACondSensCalData1( conductivityCalRecord[ sensorId ].K_high ); + setFPGACondSensCalData2( conductivityCalRecord[ sensorId ].alpha_high ); + setFPGACondSensCalData3( conductivityCalRecord[ sensorId ].eta_high ); + setFPGACondSensCalData4( conductivityCalRecord[ sensorId ].zeta_high ); + setFPGACondSensCalData5( conductivityCalRecord[ sensorId ].K_low ); + setFPGACondSensCalData6( conductivityCalRecord[ sensorId ].alpha_low ); + setFPGACondSensCalData7( conductivityCalRecord[ sensorId ].eta_low ); + setFPGACondSensCalData8( conductivityCalRecord[ sensorId ].zeta_low ); + setFPGACondSensCalData9( conductivityCalRecord[ sensorId ].beta ); + setFPGACondSensCalData10( conductivityCalRecord[ sensorId ].delta ); + setFPGACondSensCalData11( conductivityCalRecord[ sensorId ].reserved1 ); + setFPGACondSensCalData12( conductivityCalRecord[ sensorId ].reserved2 ); + setFPGACondSensCalibrationTime( conductivityCalRecord[ sensorId ].calibrationTime ); + setFPGACondSensCalibrationCRC( conductivityCalRecord[ sensorId ].crc ); + setFPGACondSensorId( sensorId ); + setFPGACondSensorCommand( (U08)COND_SENS_CMD_SETCAL ); } /*********************************************************************//**