Index: firmware/App/Services/FPGA.c =================================================================== diff -u -r9d81efee3ea73c452bb6b84501c8accf85ab81f7 -rd9b4581350e00e87b211b0c81f8c34f02576fcf2 --- firmware/App/Services/FPGA.c (.../FPGA.c) (revision 9d81efee3ea73c452bb6b84501c8accf85ab81f7) +++ firmware/App/Services/FPGA.c (.../FPGA.c) (revision d9b4581350e00e87b211b0c81f8c34f02576fcf2) @@ -115,6 +115,7 @@ #define PUMP_TRACK_SWITCH_MASK 0x0020 ///< Pump track switch bit mask. Bit 5 of the GPIO register. #define PROCESSOR_FPGA_CLOCK_DIFF_TOLERANCE 1 ///< Tolerance for processor clock speed check against FPGA clock. +#define FPGA_VALVES_MIN_PWM_MODE_COUNT 2500 ///< FPGA valves minimum PWM in PWM mode in counts. // FPGA Sensors Record #pragma pack(push,1) @@ -374,8 +375,15 @@ memset( &fpgaHeader, 0, sizeof(FPGA_HEADER_T) ); memset( &fpgaSensorReadings, 0, sizeof(FPGA_SENSORS_T) ); memset( &fpgaActuatorSetPoints, 0, sizeof(FPGA_ACTUATORS_T) ); - fpgaActuatorSetPoints.alarmControl = (U08)MIN_ALARM_VOLUME_ATTENUATION << 2; // Start alarm audio volume at maximum + fpgaActuatorSetPoints.alarmControl = (U08)MIN_ALARM_VOLUME_ATTENUATION << 2; // Start alarm audio volume at maximum + // Set the HD valves fixed PWM mode to 2500, so if it was commanded to be in PWM mode rather than PID control + // the valves will not move to 0 position + fpgaActuatorSetPoints.VDiPWMFixed = FPGA_VALVES_MIN_PWM_MODE_COUNT; + fpgaActuatorSetPoints.VDoPWMFixed = FPGA_VALVES_MIN_PWM_MODE_COUNT; + fpgaActuatorSetPoints.VBAPWMFixed = FPGA_VALVES_MIN_PWM_MODE_COUNT; + fpgaActuatorSetPoints.VBVPWMFixed = FPGA_VALVES_MIN_PWM_MODE_COUNT; + // Initialize fpga comm buffers memset( &fpgaWriteCmdBuffer, 0, FPGA_WRITE_CMD_BUFFER_LEN ); memset( &fpgaReadCmdBuffer, 0, FPGA_READ_CMD_BUFFER_LEN );