Index: firmware/App/Services/FpgaTD.c =================================================================== diff -u -r2de8bd54fe7ce6557115820251069611b49aa0ab -r9e43275cfdf3f60042d69d9cbbfc6d74142fa5e5 --- firmware/App/Services/FpgaTD.c (.../FpgaTD.c) (revision 2de8bd54fe7ce6557115820251069611b49aa0ab) +++ firmware/App/Services/FpgaTD.c (.../FpgaTD.c) (revision 9e43275cfdf3f60042d69d9cbbfc6d74142fa5e5) @@ -102,10 +102,10 @@ U16 fpgaGenWrRd; ///< Reg 256. FPGA general read-back register (mirrored from a general write register in write page at addr 4). U08 errorCountProcessor; ///< Reg 258. Error count for processor communications. U08 errorCountPC; ///< Reg 259. Error count for TBD. - U08 sPumpDACRdStatus; ///< Reg 260. Syringe pump DAC read status. + U08 h10DACRdStatus; ///< Reg 260. H10 Syringe pump DAC read status. U08 h6HallStatus; ///< Reg 261. H6 hall sensor status. - U16 sPumpDACSet; ///< Reg 262. Syringe pump DAC setting. - U16 sPumpDACEEProm; ///< Reg 264. Syringe pump DAC EEProm data. + U16 h10DACSet; ///< Reg 262. H10 Syringe pump DAC setting. + U16 h10DACEEProm; ///< Reg 264. H10 Syringe pump DAC EEProm data. U16 h14Pressure; ///< Reg 266. H14 raw pressure data. S16 h14Temperature; ///< Reg 268. H14 raw temperature data. U08 h14ReadCount; ///< Reg 270. H14 read count. @@ -126,15 +126,15 @@ S16 h19EncPosition; ///< Reg 298. H19 encoder position (1000 steps/rev). S16 h19MaxEncPosition; ///< Reg 300. H19 max encoder position. U16 GPIOReg; ///< Reg 302. GPIO register. - U08 HEPStatus; ///< Reg 304. HEP status register. - U08 HEPAdcReadCount; ///< Reg 305. HEP ADC read counter. - U08 HEPAdcDacStatus; ///< Reg 306. HEP ADC/DAC status register. - U08 HEPEncStatus; ///< Reg 307. HEP encoder status register. - S32 HEPEncPosition; ///< Reg 308. HEP encoder position. - U16 HEPAdcCh0; ///< Reg 312. HEP ADC channel 0 reading. - U16 HEPAdcCh1; ///< Reg 314. HEP ADC channel 1 reading. - U16 HEPAdcCh2; ///< Reg 316. HEP ADC channel 2 reading. - U16 HEPAdcCh3; ///< Reg 318. HEP ADC channel 3 reading. + U08 h10Status; ///< Reg 304. H10 Syringe pump status register. + U08 h10AdcReadCount; ///< Reg 305. H10 Syringe pump ADC read counter. + U08 h10AdcDacStatus; ///< Reg 306. H10 Syringe pump ADC/DAC status register. + U08 h10EncStatus; ///< Reg 307. H10 Syringe pump encoder status register. + S32 h10EncPosition; ///< Reg 308. H10 Syringe pump encoder position. + U16 h10AdcCh0; ///< Reg 312. H10 Syringe pump ADC channel 0 reading. + U16 h10AdcCh1; ///< Reg 314. H10 Syringe pump ADC channel 1 reading. + U16 h10AdcCh2; ///< Reg 316. H10 Syringe pump ADC channel 2 reading. + U16 h10AdcCh3; ///< Reg 318. H10 Syringe pump ADC channel 3 reading. U16 fpgaAdcTemperature; ///< Reg 320. FPGA ADC temperature. U16 fpga1msTimerCounter; ///< Reg 322. FPGA 1 millisecond timer counter. U16 alarmBuzzerCurrentAdc; ///< Reg 324. Alarm buzzer current ADC reading. @@ -165,14 +165,6 @@ U32 baroTemperature; ///< Reg 372. Baro temperature value in counts. U08 baroReadCount; ///< Reg 376. Baro read count. U08 baroErrorCount; ///< Reg 377. Baro error count. - U08 syrPumpStatus; ///< Reg 380. Syringe pump status register. - U08 syrPumpADCReadCounter; ///< Reg 381. Syringe pump ADC read counter. - U08 syrPumpADCandDACStatus; ///< Reg 382. Syringe pump ADC and DAC status register. - U08 syrPumpEncoderStatus; ///< Reg 383. Syringe pump encoder status register. - U32 syrPumpEncPosition; ///< Reg 384. Syringe pump encoder position - U16 syrPumpAdcDataReadCh0; ///< Reg 388. Syringe pump ADC channel 0 register (10 bit). - U16 syrPumpAdcDataReadCh1; ///< Reg 390. Syringe pump ADC channel 1 register (10 bit). - U16 syrPumpAdcDataReadCh2; ///< Reg 392. Syringe pump ADC channel 2 register (10 bit). } FPGA_SENSORS_T; /// Record structure for FPGA continuous priority writes. @@ -197,10 +189,10 @@ U08 h1Control; ///< Reg 30. H1 control register. U08 h1h19ValveEncoderControl; ///< Reg 31. H1/H19 valve encoder control register. U08 alarmControl; ///< Reg 32. Alarm audio control register. - U08 syrPumpControl; ///< Reg 33. Syringe pump control register. - U32 syrPumpSpeed; ///< Reg 34. Syringe pump time between step toggle (1/2 step period). - U16 syrPumpDACData; ///< Reg 38. Syringe pump DAC data (12 bits). - U16 syrPumpDACControl; ///< Reg 40. Syringe pump ADC and DAC control register. + U08 h10Control; ///< Reg 33. H10 Syringe pump control register. + U32 h10Speed; ///< Reg 34. H10 Syringe pump time between step toggle (1/2 step period). + U16 h10DACData; ///< Reg 38. H10 Syringe pump DAC data (12 bits). + U16 h10DACControl; ///< Reg 40. H10 Syringe pump ADC and DAC control register. U16 h12Period; ///< Reg 42. H12 Air pump time period for each count in PWM register. U32 h5SetSpeed; ///< Reg 44. H5 ejector motor set speed. } FPGA_ACTUATORS_T; @@ -1328,82 +1320,82 @@ * @brief * The setFPGASyringePumpControlFlags function sets the syringe pump control * register per given bit flags. - * @details Inputs: none - * @details Outputs: fpgaActuatorSetPoints + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints * @param bitFlags control bit settings for syringe pump * @return none *************************************************************************/ void setFPGASyringePumpControlFlags( U08 bitFlags ) { - fpgaActuatorSetPoints.syrPumpControl = bitFlags; + fpgaActuatorSetPoints.h10Control = bitFlags; } /*********************************************************************//** * @brief * The setFPGASyringePumpADCandDACControlFlags function sets the syringe pump * ADC/DAC control register per given bit flags. - * @details Inputs: none - * @details Outputs: fpgaActuatorSetPoints + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints * @param bitFlags ADC/DAC control bit settings for syringe pump * @return none *************************************************************************/ void setFPGASyringePumpADCandDACControlFlags( U08 bitFlags ) { - fpgaActuatorSetPoints.syrPumpDACControl = bitFlags; + fpgaActuatorSetPoints.h10DACControl = bitFlags; } /*********************************************************************//** * @brief * The setFPGASyringePumpDACOutputLevel function sets the syringe pump force * sensor DAC output level register to a given value. - * @details Inputs: none - * @details Outputs: fpgaActuatorSetPoints + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints * @param counts level to set syringe pump force sensor DAC to * @return none *************************************************************************/ void setFPGASyringePumpDACOutputLevel( U16 counts ) { - fpgaActuatorSetPoints.syrPumpDACData = counts; + fpgaActuatorSetPoints.h10DACData = counts; } /*********************************************************************//** * @brief * The setFPGASyringePumpStepToggleTime function sets the syringe pump stepper * toggle time register to a given period (in uSec). - * @details Inputs: none - * @details Outputs: fpgaActuatorSetPoints + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints * @param microSeconds toggle the stepper motor at this time interval to set pump speed * @return none *************************************************************************/ void setFPGASyringePumpStepToggleTime( U32 microSeconds ) { - fpgaActuatorSetPoints.syrPumpSpeed = microSeconds; + fpgaActuatorSetPoints.h10Speed = microSeconds; } /*********************************************************************//** * @brief * The getFPGASyringePumpStatus function gets the latest syringe pump status * register reading. Bit 0 indicates a fault. - * @details Inputs: fpgaSensorReadings - * @details Outputs: none + * @details \b Inputs: fpgaSensorReadings + * @details \b Outputs: none * @return last syringe pump status reading *************************************************************************/ U08 getFPGASyringePumpStatus( void ) { - return fpgaSensorReadings.syrPumpStatus; + return fpgaSensorReadings.h10Status; } /*********************************************************************//** * @brief * The getFPGASyringePumpADCReadCounter function gets the latest syringe pump * ADC read counter. Counter is 8-bit and rolls over when exceeding 255. - * @details Inputs: fpgaSensorReadings - * @details Outputs: none + * @details \b Inputs: fpgaSensorReadings + * @details \b Outputs: none * @return last syringe pump ADC read counter *************************************************************************/ U08 getFPGASyringePumpADCReadCounter( void ) { - return fpgaSensorReadings.syrPumpADCReadCounter; + return fpgaSensorReadings.h10AdcReadCount; } /*********************************************************************//** @@ -1413,13 +1405,13 @@ * Bit 7 = DAC write and read-back done * Bit 6 = I2C error on DAC data transfer * Bit 0..5 = count of I2C errors, rolls over after 63 - * @details Inputs: fpgaSensorReadings - * @details Outputs: none + * @details \b Inputs: fpgaSensorReadings + * @details \b Outputs: none * @return last syringe pump ADC/DAC status reading *************************************************************************/ U08 getFPGASyringePumpADCandDACStatus( void ) { - return fpgaSensorReadings.syrPumpADCandDACStatus; + return fpgaSensorReadings.h10AdcDacStatus; } /*********************************************************************//** @@ -1428,65 +1420,123 @@ * encoder status register reading. * Bit 7 = direction (0=fwd, 1=rev) * Bit 0..5 = direction error count (# of errors after power up, rolls over after 63) - * @details Inputs: fpgaSensorReadings - * @details Outputs: none + * @details \b Inputs: fpgaSensorReadings + * @details \b Outputs: none * @return last syringe pump encoder status reading *************************************************************************/ U08 getFPGASyringePumpEncoderStatus( void ) { - return fpgaSensorReadings.syrPumpEncoderStatus; + return fpgaSensorReadings.h10EncStatus; } /*********************************************************************//** * @brief * The getFPGASyringePumpEncoderPosition function gets the latest syringe pump * encoder position reading. - * @details Inputs: fpgaSensorReadings - * @details Outputs: none + * @details \b Inputs: fpgaSensorReadings + * @details \b Outputs: none * @return last syringe pump encoder position reading *************************************************************************/ U32 getFPGASyringePumpEncoderPosition( void ) { - return fpgaSensorReadings.syrPumpEncPosition; + return fpgaSensorReadings.h10EncPosition; } /*********************************************************************//** * @brief * The getFPGASyringePumpADCChannel0 function gets the latest syringe pump ADC * channel 0 register reading (syringe pump force sensor). - * @details Inputs: fpgaSensorReadings - * @details Outputs: none + * @details \b Inputs: fpgaSensorReadings + * @details \b Outputs: none * @return last syringe pump ADC channel 0 reading *************************************************************************/ U16 getFPGASyringePumpADCChannel0( void ) { - return fpgaSensorReadings.syrPumpAdcDataReadCh0; + return fpgaSensorReadings.h10AdcCh0; } /*********************************************************************//** * @brief * The getFPGASyringePumpADCChannel1 function gets the latest syringe pump ADC * channel 1 register reading (syringe detection switch). - * @details Inputs: fpgaSensorReadings - * @details Outputs: none + * @details \b Inputs: fpgaSensorReadings + * @details \b Outputs: none * @return last syringe pump ADC channel 1 reading *************************************************************************/ U16 getFPGASyringePumpADCChannel1( void ) { - return fpgaSensorReadings.syrPumpAdcDataReadCh1; + return fpgaSensorReadings.h10AdcCh1; } /*********************************************************************//** * @brief * The getFPGASyringePumpADCChannel2 function gets the latest syringe pump ADC * channel 2 register reading (syringe pump home position sensor). - * @details Inputs: fpgaSensorReadings - * @details Outputs: none + * @details \b Inputs: fpgaSensorReadings + * @details \b Outputs: none * @return last syringe pump ADC channel 2 reading *************************************************************************/ U16 getFPGASyringePumpADCChannel2( void ) { - return fpgaSensorReadings.syrPumpAdcDataReadCh2; + return fpgaSensorReadings.h10AdcCh2; } +/*********************************************************************//** + * @brief + * The getFPGASyringePumpADCChannel3 function gets the latest syringe pump ADC + * channel 3 register reading. + * @details \b Inputs: fpgaSensorReadings + * @details \b Outputs: none + * @return last syringe pump ADC channel 3 reading + *************************************************************************/ +U16 getFPGASyringePumpADCChannel3( void ) +{ + return fpgaSensorReadings.h10AdcCh3; +} + +/*********************************************************************//** + * @brief + * The getFPGASyringePumpDACStatus function gets the latest syringe pump + * DAC status. + * Bit 0: PD0 + * Bit 1: PD1 + * Bit 2: POR + * Bit 3: Ready (not busy) + * Bits 4..7: N/A + * @details \b Inputs: fpgaSensorReadings + * @details \b Outputs: none + * @return last syringe pump DAC status reading + *************************************************************************/ +U08 getFPGASyringePumpDACStatus( void ) +{ + return fpgaSensorReadings.h10DACRdStatus; +} + +/*********************************************************************//** + * @brief + * The getFPGASyringePumpDACSetting function gets the latest syringe pump + * DAC setting. + * @details \b Inputs: fpgaSensorReadings + * @details \b Outputs: none + * @return last syringe pump DAC setting + *************************************************************************/ +U16 getFPGASyringePumpDACSetting( void ) +{ + return fpgaSensorReadings.h10DACSet; +} + +/*********************************************************************//** + * @brief + * The getFPGASyringePumpDACStoredSetting function gets the latest syringe + * pump DAC setting stored in sensor's EEPROM. + * @details \b Inputs: fpgaSensorReadings + * @details \b Outputs: none + * @return last syringe pump DAC setting stored in EEPROM + *************************************************************************/ +U16 getFPGASyringePumpDACStoredSetting( void ) +{ + return fpgaSensorReadings.h10DACEEProm; +} + + /**@}*/