Index: firmware/App/Services/FpgaTD.h =================================================================== diff -u -r3a8cf075eb6f0d255f516ac26bac7fbaacfde14a -rb824ef4b479578c5aa702abd9147aef505a6fb04 --- firmware/App/Services/FpgaTD.h (.../FpgaTD.h) (revision 3a8cf075eb6f0d255f516ac26bac7fbaacfde14a) +++ firmware/App/Services/FpgaTD.h (.../FpgaTD.h) (revision b824ef4b479578c5aa702abd9147aef505a6fb04) @@ -1,17 +1,17 @@ /************************************************************************** * -* Copyright (c) 2019-2024 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * -* @file FPGA.h +* @file FpgaTD.h * -* @author (last) Sean Nash -* @date (last) 30-Jul-2024 +* @author (last) Dara Navaei +* @date (last) 30-Oct-2025 * * @author (original) Sean Nash -* @date (original) 30-Jul-2024 +* @date (original) 01-Aug-2024 * ***************************************************************************/ @@ -31,9 +31,43 @@ // ********** public definitions ********** +// Bit definitions for pinch valve control register +#define FPGA_PINCH_VALVES_1_8_STEP 0x07 ///< Bit mask for configuring pinch valve for 1/8 step microstepping. +#define FPGA_PINCH_VALVES_ENABLE_ENCODER 0x00 ///< Bit mask for configuring pinch valve enable encoder. +#define FPGA_PINCH_VALVES_RESET_ENCODER 0x08 ///< Bit mask for configuring pinch valve to reset the encoder. +#define FPAG_PINCH_VALVES_ENABLE 0x00 ///< Bit mask for configuring pinch valve to enable. +#define FPGA_PINCH_VALVES_DISABLE 0x10 ///< Bit mask for configuring pinch valve to be disabled. +#define FPGA_PINCH_VALVES_RESET 0x00 ///< Bit mask for configuring pinch valve to be in reset. +#define FPGA_PINCH_VALVES_NOT_RESET 0x20 ///< Bit mask for configuring pinch valve to not be in reset. +#define FPGA_PINCH_VALVES_NOT_SLEEP 0x40 ///< Bit mask for configuring pinch valve to not be in sleep mode. +#define FPGA_PINCH_VALVES_NEW_POS_CMD 0x80 ///< Bit mask for configuring pinch valve to accept a new position command. + +// Bit definitions for syringe pump control register +#define SYRINGE_PUMP_CONTROL_SLEEP_OFF 0x40 ///< Syringe pump control register bit for sleep mode (active low). +#define SYRINGE_PUMP_CONTROL_NOT_RESET 0x20 ///< Syringe pump control register bit for resetting stepper motor (active low). +#define SYRINGE_PUMP_CONTROL_ENABLE 0x00 ///< Syringe pump control register bit mask for enable. +#define SYRINGE_PUMP_CONTROL_DISABLE 0x10 ///< Syringe pump control register bit for enable (active low). +#define SYRINGE_PUMP_CONTROL_REVERSE_DIR 0x08 ///< Syringe pump control register bit for direction (0=fwd, 1=rev). +#define SYRINGE_PUMP_CONTROL_FORWARD_DIR 0x00 ///< Syringe pump control register bit mask for forward direction. +#define SYRINGE_PUMP_CONTROL_32TH_STEP 0x03 ///< Syringe pump control register bits for 1/32 micro-stepping mode. + +/// Baro sensor manufacturing coefficients +typedef struct +{ + U16 baroManufactInfo; ///< Reg 352. Baro sensor manufacturing information. + U16 baroPresSensitivity; ///< Reg 354. Baro sensor prom coefficient 1. + U16 baroPresOffset; ///< Reg 356. Baro sensor prom coefficient 2. + U16 baroTempCoeffOfPresSense; ///< Reg 358. Baro sensor prom coefficient 3. + U16 baroTempCoeffPresOffset; ///< Reg 360. Baro sensor prom coefficient 4. + U16 baroRefTemp; ///< Reg 362. Baro sensor prom coefficient 5. + U16 baroTempCoeffOfTemp; ///< Reg 364. Baro sensor prom coefficient 6. + U16 baroPromCRC; ///< Reg 366. Baro prom CRC. +} BARO_PRES_SENSOR_MFG_T; + // ********** public function prototypes ********** void initFpgaTD( void ); +void fpgaResetTransitoryCmds( void ); SELF_TEST_STATUS_T execFPGATest( void ); void execFPGAClockSpeedTest( void ); void checkFPGACommFailure( void ); @@ -48,45 +82,69 @@ void setAlarmAudioState( U32 state, U32 volumeLevel, U32 volumeDivider ); -U16 getFPGABloodPumpHallSensorCount( void ); -U08 getFPGABloodPumpHallSensorStatus( void ); +void setH4Enabled( BOOL enable ); +void setH4Direction( MOTOR_DIR_T dir ); +void setH4SetSpeed( U16 rpm ); +U16 getH4Period( void ); +void setH4BrakeAndHoldTorque( void ); -S32 getPBAPressure( void ); -S32 getPBATemperature( void ); -U08 getPBAReadCounter( void ); -U08 getPBAErrorCounter( void ); +S16 getH4RotorCount( void ); +S16 getH4TorqueCount( void ); +U08 getH6Status( void ); +U08 getH6RotorStatus( void ); -S32 getPBOPressure( void ); -S32 getPBOTemperature( void ); -U08 getPBOReadCounter( void ); -U08 getPBOErrorCounter( void ); +void setH5ControlFlags( U08 ctrl ); +U08 getH5ControlFlags( void ); +void setH5StepToggleTime( U32 microSeconds ); +U16 getH2Pressure( void ); +S16 getH2Temperature( void ); +U08 getH2ReadCounter( void ); +U08 getH2ErrorCounter( void ); + +U16 getH14Pressure( void ); +S16 getH14Temperature( void ); +U08 getH14ReadCounter( void ); +U08 getH14ErrorCounter( void ); + +void getH23MfgCoeffs( BARO_PRES_SENSOR_MFG_T* baroMfgCoeffs ); +U32 getH23Pressure( void ); +U32 getH23Temperature( void ); +U08 getH23ReadCounter( void ); +U08 getH23ErrorCounter( void ); + F32 getFPGABackupAlarmAudioCurrent( void ); void getFPGAAirTrapLevels( BOOL *airAtLower, BOOL *airAtUpper ); -void setFPGAValvesControlMode( U16 bits ); - -BOOL ADVBubbleDetected( void ); +BOOL H18BubbleDetected( void ); void setFPGAVenousBubbleSelfTest( void ); void clearFPGAVenousBubbleSelfTest( void ); -void setVBVPosition( S16 setPoint ); -S16 getVBVPosition( void ); -U16 getVBVStatus( void ); -U16 getFPGAValveBloodVenousCurrentCounts( void ); +void setH13ValveState( VALVE_3WAY_STATE_T state ); +void setH20ValveState( VALVE_3WAY_STATE_T state ); -void setVBAPosition( S16 setPoint ); -S16 getVBAPosition( void ); -U16 getVBAStatus( void ); -U16 getFPGAValveBloodArterialCurrentCounts( void ); +void setH12AirPumpMotorPowerLevel( U08 power ); +void setH12AirPumpMotorPWMCntTime( U16 tenNS ); +void setH19Control( U08 controlBits ); +U08 getH19Control( void ); +void setH19Position( S16 setPoint ); +S16 getH19EncoderPosition( void ); +U16 getH19Status( void ); + +void setH1Control( U08 controlBits ); +U08 getH1Control( void ); +void setH1Position( S16 setPoint ); +S16 getH1EncoderPosition( void ); +U16 getH1Status( void ); + U16 getFPGABoardTemperature( void ); U32 getFPGAPBAADCTemperature( void ); U16 getFPGAInletFan1TogglePeriod( void ); -BOOL getFPGAFrontDoorClosedStatus( void ); +BOOL getH9FrontDoorClosedStatus( void ); -/**@}*/ - -#endif +/**@}*/ + +#endif