This chapter describes the difference between the Ultrasonic Sensing Library. The latest (most-current) builds are shown first.
What's New
02_40_00_00
- Library
- Enhancements
- Added support for MSP430FR600x devices.
- Example project
02_30_00_03
- Library
- Enhancements
- Updated absTOF_lobeWide to use the same search and tracking method as absTOF_lobe
- maximum lobe peak variation (gUssSWConfig.algorithmsConfig-maxRatioPeak2PeakVariation) is now used as part of absTOF_lobeWide configuration.
- Updated absTOF_lobeWide to allow same interpolation correction used in absTOF_lobe via look-up-tables
- gUssSWConfig.algorithmsConfig-pInterpCorrectionTablePtr and gUssSWConfig.algorithmsConfig-interpCorrectionTableLenght are now used as part of absTOF_lobeWide configuration
- Updated matlab code in User's Guide to generate Interpolation LUT to print the constants in a more legible format to a filename that is provided as an input to the function
- Added support for new API USS_getAbsTOFStatus. New API allows users to obtain the internal AbsTOF status.
- Added support for new API USS_setAbsTOFStatus. New API allows users to set the internal AbsTOF status.
- New USS_Algorithms_User_Configuration parameters:
- windowingMode: Parameter replacing gUssSWConfig.algorithmsConfig-enableWindowing parameter. Used to configure the windowing mode for Delta ToF estimate.
- Valid Inputs are: 0 (disable), 1 (estimate), 2 (dynamic), and 3 (static)
- For backwards compatibility,
- if previously enableWindowing = false, set windowingMode = 0 (disable)
- if previously enableWindowing = true, set windowingMode = 1 (estimate)
- winPeakIndex2EdgeNumCyles: The number of cycles from peak of signal to edge (or start) of window down ramp (used for dynamic windowing)
- Added new support for new API USS_getAlgorithmObjPtr. New API allow user to get access to the pointer of the internal library algorithm object.
- Added new support for new API USS_getAlgorithmObjLength. New API allow user to get access to the length in bytes of the internal library algorithm object.
- Abstracted Flow VFR calibration into USS_calibrateVFRFlow API
- Renamed algorithmsConfig->calibObject.linCalibObject->pMeterConfiguration.alphaMin to config->algorithmsConfig->calibObject.linCalibObject->pMeterConfiguration.iq16minimumVFR
- Updated Flow VFR calibration to fixed point implementation to reduce cycle count
- Added flow + temperature compensated volume flow rate calibration feature using USS_calibrateVFRFlowTemperature API
- Added temperature estimation API
- USS_computeTemperature used to estimate temperature using UPS and DNS
- USS_setTemperature used to input temperature based on external temperature sensor
- New USS_Algorithms_User_Configuration parameters:
- volumeCalibrationOption: parameter used to define volume flow calibration mode: USS_Alg_volume_flow_Calibration_Option_disabled USS_Alg_volume_flow_Calibration_Option_flow USS_Alg_volume_flow_Calibration_Option_flow_temperature
- calibObject: parameter used to initialize the calibration object based on volumeCalibrationOption configuration
- temperatureCalcOption: parameter used to define temperature estimation mode: USS_Alg_temperature_Calculation_Option_disabled USS_Alg_temperature_Calculation_Option_enabled
- tempCalcObject: parameter used to initialize the temperature estimation based on UPS and DNS object
- Improved memory optimzation compilation for Water & Gas application
- Removed USS_swapCaptureChannels API
- Optimized code based on config->measurementConfig->sequenceSelection
- Optimized code based on config->measurementConfig->pulseConfig->pulseGenMode
- Added additional scale factor (config->meterConfig->volumeAddlScaleFactor) for larger pipes to be used by the USS_scaleVolumeFlowRate API only required if volumeFlowRate is greater than 32768
- Added 2 new APIs to enable accurate measurement rate using background timer
- USS_configAppTimerPeriod - used to define period in ACLK cycles
- USS_waitForAppTimerElapse - used to wait for timer to elapse
- Bug fix
- Fixed initialization of gUssSWConfig.algorithmsConfig-posSearchRange and gUssSWConfig.algorithmsConfig-negSearchRange to be initialized based on number of samples per cycle (SignalSamplingFreqtransducer Freq)
- Removed error code USS_message_code_algorithm_error_meter_constant_calib, this message was returned if the minimum volume flow rate falls outside the lowest alphaMin calibration point. The Flow VFR will now calibrate volumeFlowRate if it is below the lowest minimumVFR without reporting an error.
- Fixed ADC capture USS Design Center packet bug
- Fixed USS_userConfig.c dependency on intrtplCorrLUT.h compilation bug
- Fixed tolerance used for USS_verifyHSPLLFrequency to estimate frequency error correctly
- Removed workaround to scale back hilbert cross threshold
- Fixed Delta TOF offset correction on DTOF value. Previously it would only impact volume flow rate calculation.
- Example project
- Enhancements:
- Updated while(1) loop to use new background timer synchronous measurement rate APIs
- Added UART debug to template project
- Updated memory allocation of gUSSLEARAMReservedBlock1 to be based on USS_ALG_DTOF_WINDOWING_MODE configruation.
- Bug Fix:
02_20_00_19
- Library
- Enhancements:
- Bug Fix:
- Increased supportable Number of Pulses for Hilbert Wide at 2 MSPS.
02_20_00_18
- Library
- Enhancements:
- Bug Fix:
- Fixed DToF bug where the signal switches between bad signal to good signal
02_20_00_17
- Library
- Enhancements:
- Bug Fix:
- Added 4 new error codes (135, 136, 137 and 138) for DToF calculation
02_20_00_16
- Library
- Enhancements:
- Library User's Guide documentation update for Memory footprint comparison between optimized libraries.
- Bug Fix:
02_20_00_15
- Library
- Enhancements:
- Added support for capture and algorithm channel swapping
- Removed ADC Capture DC offset inside USS_calibrateSignalGain API
- Added new calibration API USS_calculateOffsets. Please refer to FR6043_USSSWLib_template_example or FR6047_USSSWLib_template_example for recommended use of API.
- Added meter calibration feature for volume flor rate computation
- Increased monitoring loop accuracy and power optimized USS_verifyHSPLLFrequency API. For more information refer to "HSPLL Frequency Verification Test Configuration" section in the Library User's Guide
- Enhanced absTOF_lobe to use look-up table (LUT) for more accurate parabolic interpolation
- Look-up table must be precomputed and have length that is a power of two.
- It is recommended to generate Look-up table using USS Design Center tool as an alternative the Matlab code to generate the values is provided in the Library User's Guide.
- New algorithm configuration parameters:
- pInterpCorrectionTablePtr: pointer to LUT. Setting to NULL will disable using the table.
- interpCorrectionTableLenght: length of LUT, must be a power of two. If offsetCorrectionTablePtr is set to NULL this parameter does not matter.
- Renamed USS_Alg_dToF_Calculation_Option.USS_Alg_dToF_Calculation_Option_gas to USS_Alg_dToF_Calculation_Option.USS_Alg_dToF_Calculation_Option_estimate.
- A shadow definition for USS_Alg_dToF_Calculation_Option_gas was included for backwards compatibility. This shadow defintion might be removed in future releases.
- USS_Alg_dToF_Calculation_Option_estimate (previously named USS_Alg_dToF_Calculation_Option_gas) method, this method is now recommended for water and gas flow applications.
- Added support for windowing when using USS_Alg_dToF_Calculation_Option_estimate.
- New algorithm configuration parameter:
- maxSampleShift: Parameter specifying maximum shift in samples for deltaTOF calculation, e.g. setting of 8 with 4 samples per cycle supports high flow +/- 2 cycles.
- shiftRangeError: Error flag when absTOF difference is outside maxSampleShift, error flag set true and absTOF result unchanged.
- USS_Alg_dToF_Calculation_Option_water method is still available but is deprecated and should not be used for high flow water.
- Bug fix
- Fix clock correction propagation to water delta time of flight calculation.
- Fix generation of stop pulses
- Deprecated:
- USS_highFlow_option.USS_highFlow_option_version1 and USS_highFlow_option.USS_highFlow_option_version2 please refer to User's Guide for more information regarding recommended DToF computation option for high water volume flow rate applications.
- Example project
- Bug Fix
- Fixed incorrect memory allocation of gUSSLEARAMReservedBlock2 which could corrupt memory when USS_SW_LIB_APP_MAX_FILTER_LENGTH was set 0 and USS_Alg_AbsToF_Calculation_Option_hilbert or USS_Alg_AbsToF_Calculation_Option_hilbertwide were selected.
- Enhancement
- Updated example project to support wide absolute time of flight computation options with MSP430FR6047 device variants
- Added support for AbstoF LUT enhancements
- Added example project for MSP430FR6043 device
02_10_00_07
- Fix device hang-up when running algorithms
- Split library into:
- Algorithm code (provided in .lib format)
- Firing/Capture. Calibration, Application Debug code (provided in source code)
- Merged Water and Gas libraries
- Added capability to control external circuitry
- Added API’s to generate reference binary patterns
- Added Abs TOF computation option:
- Water computation options
- Gas computation options
- [Enhancement] Add placeholder for AFE using 5V and future options
- [Enhancement] Added memory optimized library for water applications
- [Library Update] Removed RTC timer trigger and external trigger options from library
- [Fix] Default configuration of template example has been updated to 16 MHz
- [Fix] Library is masking specific error code with generic error code in USS_commonTriggerSingleCapture API
- [Fix] Multi-tone configuration.- Incorrect multitone configuration for f1 200 and f2 280 and 30 pulses
- [Fix] Multi-tone configuration.- DMA interrupt using GPIO unnecessarily
- [Fix] External amplifier gain line is high all the time
- [Fix] Library example configuration files are using incorrect macro LEA memory allocation macros
**IMPORTANT Library updates:**
Please refer to the library User's Guide for more details regarding Library architecture updates.
API updates
API removed:
- USS_setUPSPtr
- USS_setDNSPtr
Library configuration updates
- Updated USS_Measurement_Configuration configuration structure.
- The following structure member have been modified or replaced
- USS_measurement_pause_state
- Now defined as part of USS_Pulse_Configuration struct
- USS_measurement_pulse_polarity
- Now defined as part of USS_Pulse_Configuration struct
- pulseLowPhasePeriod
- pulseHighPhasePeriod
- numOfExcitationPulses
- Updated USS_HSPLL_Configuration configuration structure:
- USS HSPLL input clock freq is now defined via USS_HSPLL_input_clock_freq ussXtalFreq parameter.
- Updated USS_Algorithms_User_Configuration configuration structure:
- New calculation options configured via the following structure members:
- USS_Alg_AbsToF_Calculation_Option
- USS_Alg_dToF_Calculation_Option
- USS_Alg_volume_flow_Calculation_Option
- pWinCoef renamed to pLEAMemBuffer1
- pNvMemBuffer datatype changed from int16_t to int32_t
- Interrupt function callbacks now declared in
ussSWLib/USS_HAL/USS_Lib_HAL.h
- Renamed USS_SAPH_TM4_TM_OUT_INTERRUPT macro to USS_SAPH_TMF_TM_OUT_INTERRUPT
- Removed USS_measurement_prescaler structure
01_40_00_06
- USS SW Library:
- Bug Fix:
- Removed PPG frequency prescaler feature.
- Enhancements:
01_40_00_05
- USS SW Library
- Bug Fix:
- Fixed bug when loading bandpass coefficients. Coefficient[0] wasn't getting load to LEA RAM memory correctly.
- Enhancements:
- USS GUI demo project has been removed from the library examples project directory
01_40_00_04
- USS SW Library
- Bug Fix:
- Fix DC Offset estimation routine
- Enhancements:
- Added check to confirm user does not select TM_C other than zero if ULPBiasDelay is used.
- Removed USS_calibrateIDAC API fron the library.
- Added extra configuration parameter to USS_estimateDCoffset to allow user to specify if a new capture is required as part of calibration.
- Added library version definition as part as library build.
- USS GUI demo project
- Bug Fix:
- Fix USS Design Center communication bug when sending ADC capture sizes multiples of 27
- Fix build error when disabling LCD
- Enhancements:
- Updated project to use new version of USS_estimateDCoffset API and use recommended capture mode based on project configuration.
- Move timer used by USS from TA4 to TA2
- Stop timer used by Design Center Comm when not used
- Disable ADC when not used
- Change range of transducer frequency to >2Mhz
- Change high/Low PPG periods to get closer to desired frequency.
- Enable/disable SVSH (enabled by default)
- Add periodic DC Offset estimation
01_40_00_03
- USS SW Library
- Bug Fix:
- Fix incorrect reconfiguration of USS submodule module after calling USS_calibrateIDAC
- Enhancements:
- Used recommended USS module configuration during ULP bias mode
- USS GUI demo project
- Bug Fix:
- Add initalization of restartLowPowerCaptureCount congifuration parameter
- Enhancements:
- Updated USS_DIAGNOSTIC_MODE Library configuration from USS_diagnostics_mode_2 to USS_diagnostics_mode_0
01_40_00_02
- USS SW Library
- Bug Fix:
- Fix USS_verifyHSPLLFrequency were API could get stuck if a HSPLL unlick event occurred during the test.
- Enhancements:
- USS GUI demo project
- Bug Fix:
- Removed unnecessary USS_DTC_START_ADDRESS macro from library configuration in all example projects.
- Enhancements:
- ULP bias configuration can be controlled using Param2 from USS Design Center
- Updated application to reset USS module when a PLL unlock event is detected
01_40_00_01
- USS SW Library
- Bug Fix:
- Enhancements:
- Added support for MSP430FR604x Rev B silicon
- Added three parameter to USS_Measurement_Configuration structure * USS_measurement_ULP_bias_delay * USS_measurement_bias_impedance * USS_measurement_mux_charge_pump
- Added new support for new API "USS\_resetUSSModule". New API allow user to enable/disable reconfiguration of USS module as part of API functionality.
- If Rev B silicon functionality is attempted to be excercised in Rev A silicon the library will return the following error code "USS\_meesage\_code\_silicon\_version\_does\_not\_support\_this\_functionality"
- This version of the library is backwards compatible with Rev A. When running on Rev A silicon the new library parameter are ignored.