From b81ad8841e90ecd2ddf70bc0409d2d880d389f91 Mon Sep 17 00:00:00 2001 From: alexklimaj Date: Wed, 6 Mar 2024 13:15:44 -0700 Subject: [PATCH] drivers: broadcom AFBR update to API 1.5.6 --- .../broadcom/afbrs50/Inc/api/argus_api.h | 109 +++++- .../broadcom/afbrs50/Inc/api/argus_dca.h | 65 ++- .../broadcom/afbrs50/Inc/api/argus_map.h | 101 ++++- .../broadcom/afbrs50/Inc/api/argus_msk.h | 170 -------- .../broadcom/afbrs50/Inc/api/argus_offset.h | 23 +- .../broadcom/afbrs50/Inc/api/argus_pba.h | 370 +++++++++++++++--- .../broadcom/afbrs50/Inc/api/argus_px.h | 3 + .../broadcom/afbrs50/Inc/api/argus_status.h | 9 +- .../broadcom/afbrs50/Inc/api/argus_version.h | 6 +- .../broadcom/afbrs50/Inc/api/argus_xtalk.h | 63 ++- .../broadcom/afbrs50/Inc/utility/fp_div.h | 16 +- .../broadcom/afbrs50/Inc/utility/fp_mul.h | 12 +- .../broadcom/afbrs50/Inc/utility/fp_rnd.h | 4 +- .../broadcom/afbrs50/Inc/utility/int_math.h | 2 +- .../broadcom/afbrs50/Lib/libafbrs50_m4_fpu.a | Bin 231568 -> 238570 bytes .../afbrs50/Lib/libafbrs50_m4_fpu_os.a | Bin 183564 -> 189626 bytes 16 files changed, 660 insertions(+), 293 deletions(-) delete mode 100644 src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_msk.h diff --git a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_api.h b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_api.h index 44cdc92168..3e30649ae1 100644 --- a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_api.h +++ b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_api.h @@ -160,6 +160,11 @@ status_t Argus_InitMode(argus_hnd_t *hnd, s2pi_slave_t spi_slave, argus_mode_t m * Also refer to #Argus_ReinitMode, which uses a specified measurement * mode instead of the currently active measurement mode. * + * @note If a full re-initialization is not desired, refer to the + * #Argus_RestoreDeviceState function that will only re-write the + * register map to the device to restore its state after an power + * cycle. + * * @param hnd The API handle; contains all internal states and data. * * @return Returns the \link #status_t status\endlink (#STATUS_OK on success). @@ -182,6 +187,11 @@ status_t Argus_Reinit(argus_hnd_t *hnd); * Also refer to #Argus_Reinit, which re-uses the currently active * measurement mode instead of an user specified measurement mode. * + * @note If a full re-initialization is not desired, refer to the + * #Argus_RestoreDeviceState function that will only re-write the + * register map to the device to restore its state after an power + * cycle. + * * @param hnd The API handle; contains all internal states and data. * * @param mode The specified measurement mode to be initialized. @@ -274,6 +284,69 @@ argus_hnd_t *Argus_CreateHandle(void); *****************************************************************************/ status_t Argus_DestroyHandle(argus_hnd_t *hnd); +/*!*************************************************************************** + * @brief Restores the device state with a re-write of all register values. + * + * @details The function invalidates and restores the device state by executing + * a re-write of the full register map. + * + * The purpose of this function is to recover from known external + * events like power cycles, for example due to sleep / wake-up + * functionality. This can be implemented by cutting off the external + * power supply of the device (e.g. via a MOSFET switch controlled by + * a GPIB pin). By calling this function, the expected state of the + * API is written to the device without the need to fully re-initialize + * the device. Thus, the API can resume where it has stopped as if + * there has never been a power cycle. + * + * The internal state machines like the dynamic configuration adaption + * (DCA) algorithm will not be reseted. The API/sensor will immediately + * resume at the last state that was optimized for the given + * environmental conditions. + * + * The use case of sleep / wake-up can be implemented as follows: + * + * 1. In case of ongoing measurements, stop the measurements via + * the #Argus_StopMeasurementTimer function (if started by the + * #Argus_StartMeasurementTimer function). + * + * 2. Shut down the device by removing the 5V power supply, e.g. + * via a GPIO pin that switches a MOSFET circuit. + * + * 3. After the desired sleep period, power the device by switching + * the 5V power supply on again. Wait until the power-on-reset + * (POR) is finished (approx. 1 ms) or just repeat step 4 until + * it succeeds. + * + * 4. Call the #Argus_RestoreDeviceState function to trigger the + * restoration of the device state in the API. Note that the + * function will return an error code if it fails. One can repeat + * the execution of that function a few times until it succeeds. + * + * 6. Continue with measurements via #Argus_StartMeasurementTimer + * of #Argus_TriggerMeasurement functions as desired. + * + * @note If a complete re-initialization (= soft-reset) is desired, see + * the #Argus_Reinit functionality. + * + * @note Changing a configuration or calibration parameter will always + * invalidate the device state as well as the state machine of the + * dynamic configuration adaption (DCA) algorithm. In that case, the + * device/API needs a few measurements to adopt to the present + * environmental conditions before the first valid measurement result + * can be obtained. This is almost similar to re-initializing the + * device (see #Argus_Reinit) which would also re-read the EEPROM. + * On the other hand, the #Argus_RestoreDeviceState does not reset + * or re-initialize anything. It just makes sure that the device + * register map (which has changed to its reset values after the + * power cycle) is what the API expects upon the next measurement. + * + * @param hnd The device handle object to be invalidated. + * + * @return Returns the \link #status_t status\endlink (#STATUS_OK on success). + *****************************************************************************/ +status_t Argus_RestoreDeviceState(argus_hnd_t *hnd); + /*!************************************************************************** * Generic API ****************************************************************************/ @@ -726,7 +799,7 @@ status_t Argus_ExecuteXtalkCalibrationSequence(argus_hnd_t *hnd); * After calibration has finished successfully, the obtained data is * applied immediately and can be read from the API using the * #Argus_GetCalibrationPixelRangeOffsets or - * #Argus_GetCalibrationGlobalRangeOffset function. + * #Argus_GetCalibrationGlobalRangeOffsets function. * * @param hnd The API handle; contains all internal states and data. * @return Returns the \link #status_t status\endlink (#STATUS_OK on success). @@ -775,7 +848,7 @@ status_t Argus_ExecuteRelativeRangeOffsetCalibrationSequence(argus_hnd_t *hnd); * After calibration has finished successfully, the obtained data is * applied immediately and can be read from the API using the * #Argus_GetCalibrationPixelRangeOffsets or - * #Argus_GetCalibrationGlobalRangeOffset function. + * #Argus_GetCalibrationGlobalRangeOffsets function. * * @param hnd The API handle; contains all internal states and data. * @param targetRange The absolute range between the reference plane and the @@ -1043,28 +1116,40 @@ status_t Argus_GetConfigurationUnambiguousRange(argus_hnd_t *hnd, ****************************************************************************/ /*!*************************************************************************** - * @brief Sets the global range offset value to a specified device. + * @brief Sets the global range offset values to a specified device. * - * @details The global range offset is subtracted from the raw range values. + * @details The global range offsets are subtracted from the raw range values. + * There are two distinct values that are applied in low or high + * power stage setting respectively. * * @param hnd The API handle; contains all internal states and data. - * @param value The new global range offset in meter and Q0.15 format. + * @param offset_low The new global range offset for the low power stage in + * meter and Q0.15 format. + * @param offset_high The new global range offset for the high power stage in + * meter and Q0.15 format. * @return Returns the \link #status_t status\endlink (#STATUS_OK on success). *****************************************************************************/ -status_t Argus_SetCalibrationGlobalRangeOffset(argus_hnd_t *hnd, - q0_15_t value); +status_t Argus_SetCalibrationGlobalRangeOffsets(argus_hnd_t *hnd, + q0_15_t offset_low, + q0_15_t offset_high); /*!*************************************************************************** - * @brief Gets the global range offset value from a specified device. + * @brief Gets the global range offset values from a specified device. * - * @details The global range offset is subtracted from the raw range values. + * @details The global range offsets are subtracted from the raw range values. + * There are two distinct values that are applied in low or high + * power stage setting respectively. * * @param hnd The API handle; contains all internal states and data. - * @param value The current global range offset in meter and Q0.15 format. + * @param offset_low The current range offset for the low power stage in + * meter and Q0.15 format. + * @param offset_high The current global range offset for the high power stage + * in meter and Q0.15 format. * @return Returns the \link #status_t status\endlink (#STATUS_OK on success). *****************************************************************************/ -status_t Argus_GetCalibrationGlobalRangeOffset(argus_hnd_t *hnd, - q0_15_t *value); +status_t Argus_GetCalibrationGlobalRangeOffsets(argus_hnd_t *hnd, + q0_15_t *offset_low, + q0_15_t *offset_high); /*!*************************************************************************** * @brief Sets the relative pixel offset table to a specified device. diff --git a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_dca.h b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_dca.h index 8f6b40bdc5..8d9a854b2c 100644 --- a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_dca.h +++ b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_dca.h @@ -210,9 +210,13 @@ typedef enum argus_dca_gain_t { * - [9]: #ARGUS_STATE_LASER_ERROR * - [10]: #ARGUS_STATE_HAS_DATA * - [11]: #ARGUS_STATE_HAS_AUX_DATA - * - [12]: #ARGUS_STATE_DCA_MAX + * - [12]: #ARGUS_STATE_SATURATED_PIXELS * - [13]: DCA Power Stage * - [14-15]: DCA Gain Stages + * - [16]: #ARGUS_STATE_DCA_MIN + * - [17]: #ARGUS_STATE_DCA_MAX + * - [18]: #ARGUS_STATE_DCA_RESET + * - [18-31]: not used * . *****************************************************************************/ typedef enum argus_state_t { @@ -229,36 +233,35 @@ typedef enum argus_state_t { * - 1: Enabled: measurement with detuned frequency. */ ARGUS_STATE_DUAL_FREQ_MODE = 1U << 1U, - /*! 0x0004: Measurement Frequency for Dual Frequency Mode + /*! 0x0004: Measurement Frequency for Dual Frequency Mode \n * (only if #ARGUS_STATE_DUAL_FREQ_MODE flag is set). * - 0: A-Frame w/ detuned frequency, * - 1: B-Frame w/ detuned frequency */ ARGUS_STATE_MEASUREMENT_FREQ = 1U << 2U, - /*! 0x0008: Debug Mode. If set, the range value of erroneous pixels + /*! 0x0008: Debug Mode. \n + * If set, the range value of erroneous pixels * are not cleared or reset. * - 0: Disabled (default). * - 1: Enabled. */ ARGUS_STATE_DEBUG_MODE = 1U << 3U, - /*! 0x0010: Weak Signal Flag. + /*! 0x0010: Weak Signal Flag. \n * Set whenever the Pixel Binning Algorithm is detecting a * weak signal, i.e. if the amplitude dies not reach its - * (absolute) threshold. If the Golden Pixel is enabled, - * this also indicates that the Pixel Binning Algorithm - * falls back to the Golden Pixel. + * (absolute) threshold. * - 0: Normal Signal. - * - 1: Weak Signal or Golden Pixel Mode. */ + * - 1: Weak Signal. */ ARGUS_STATE_WEAK_SIGNAL = 1U << 4U, - /*! 0x0020: Background Light Warning Flag. + /*! 0x0020: Background Light Warning Flag. \n * Set whenever the background light is very high and the * measurement data might be unreliable. * - 0: No Warning: Background Light is within valid range. * - 1: Warning: Background Light is very high. */ ARGUS_STATE_BGL_WARNING = 1U << 5U, - /*! 0x0040: Background Light Error Flag. + /*! 0x0040: Background Light Error Flag. \n * Set whenever the background light is too high and the * measurement data is unreliable or invalid. * - 0: No Error: Background Light is within valid range. @@ -270,7 +273,7 @@ typedef enum argus_state_t { * - 1: PLL locked at start of integration. */ ARGUS_STATE_PLL_LOCKED = 1U << 7U, - /*! 0x0100: Laser Failure Warning Flag. + /*! 0x0100: Laser Failure Warning Flag. \n * Set whenever the an invalid system condition is detected. * (i.e. DCA at max state but no amplitude on any (incl. reference) * pixel, not amplitude but any saturated pixel). @@ -279,7 +282,7 @@ typedef enum argus_state_t { * condition stays, a laser malfunction error is raised. */ ARGUS_STATE_LASER_WARNING = 1U << 8U, - /*! 0x0200: Laser Failure Error Flag. + /*! 0x0200: Laser Failure Error Flag. \n * Set whenever a laser malfunction error is raised and the * system is put into a safe state. * - 0: No Error: Laser is operating properly. @@ -297,13 +300,12 @@ typedef enum argus_state_t { * - 1: Auxiliary data is available and correctly evaluated. */ ARGUS_STATE_HAS_AUX_DATA = 1U << 11U, - /*! 0x1000: DCA Maximum State Flag. - * Set whenever the DCA has extended all its parameters to their - * maximum values and can not increase the integration energy any - * further. - * - 0: DCA has not yet reached its maximum state. - * - 1: DCA has reached its maximum state and can not increase any further. */ - ARGUS_STATE_DCA_MAX = 1U << 12U, + /*! 0x0100: Pixel Saturation Flag. \n + * Set whenever any pixel is saturated, i.e. its pixel state is + * #PIXEL_SAT + * - 0: No saturated pixels. + * - 1: Any saturated pixels. */ + ARGUS_STATE_SATURATED_PIXELS = 1U << 12U, /*! 0x2000: DCA is in high Optical Output Power stage. */ ARGUS_STATE_DCA_POWER_HIGH = DCA_POWER_HIGH << ARGUS_STATE_DCA_POWER_SHIFT, @@ -320,6 +322,31 @@ typedef enum argus_state_t { /*! 0xC000: DCA is in high Pixel Input Gain stage. */ ARGUS_STATE_DCA_GAIN_HIGH = DCA_GAIN_HIGH << ARGUS_STATE_DCA_GAIN_SHIFT, + /*! 0x10000: DCA Minimum State Flag. \n + * Set whenever the DCA has reduced all its parameters to their + * minimum values and it can not decrease the integration energy + * any further. + * - 0: DCA has not yet reached its minimum state. + * - 1: DCA has reached its minimum state and can not decrease + * its parameters any further. */ + ARGUS_STATE_DCA_MIN = 1U << 16U, + + /*! 0x20000: DCA Maximum State Flag. \n + * Set whenever the DCA has extended all its parameters to their + * maximum values and it can not increase the integration energy + * any further. + * - 0: DCA has not yet reached its maximum state. + * - 1: DCA has reached its maximum state and can not increase + * its parameters any further. */ + ARGUS_STATE_DCA_MAX = 1U << 17U, + + /*! 0x20000: DCA Reset State Flag. \n + * Set whenever the DCA is resetting all its parameters to their + * minimum values because it has detected too many saturated pixels. + * - 0: DCA is operating in normal mode. + * - 1: DCA is performing a reset. */ + ARGUS_STATE_DCA_RESET = 1U << 18U, + } argus_state_t; /*!*************************************************************************** diff --git a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_map.h b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_map.h index 4ffa55656b..22a85b9d3e 100644 --- a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_map.h +++ b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_map.h @@ -58,6 +58,7 @@ extern "C" { *****************************************************************************/ #include "utility/int_math.h" +#include #include @@ -138,6 +139,13 @@ extern "C" { #define PIXEL_CH2N(c) (((((c) << 1U) ^ 0x1CU) & 0x1CU) | (((c) >> 3U) & 0x02U) | ((c) & 0x01U)) +/*!***************************************************************************** + * @brief Macro to create a pixel mask given by the pixels n-index. + * @param n n-index of the pixel. + * @return The pixel mask with only n-index pixel set. + ******************************************************************************/ +#define PIXELN_MASK(n) (0x01U << (n)) + /*!***************************************************************************** * @brief Macro to determine if a pixel given by the n-index is enabled in a pixel mask. * @param msk 32-bit pixel mask @@ -151,16 +159,23 @@ extern "C" { * @param msk 32-bit pixel mask * @param n n-index of the pixel to enable. ******************************************************************************/ -#define PIXELN_ENABLE(msk, n) ((msk) |= (0x01U << (n))) +#define PIXELN_ENABLE(msk, n) ((msk) |= (PIXELN_MASK(n))) /*!***************************************************************************** * @brief Macro disable a pixel given by the n-index in a pixel mask. * @param msk 32-bit pixel mask * @param n n-index of the pixel to disable. ******************************************************************************/ -#define PIXELN_DISABLE(msk, n) ((msk) &= (~(0x01U << (n)))) +#define PIXELN_DISABLE(msk, n) ((msk) &= (~PIXELN_MASK(n))) +/*!***************************************************************************** + * @brief Macro to create a pixel mask given by the pixels ADC channel number. + * @param c The ADC channel number of the pixel. + * @return The 32-bit pixel mask with only pixel ADC channel set. + ******************************************************************************/ +#define PIXELCH_MASK(c) (0x01U << (PIXEL_CH2N(c))) + /*!***************************************************************************** * @brief Macro to determine if an ADC pixel channel is enabled from a pixel mask. * @param msk The 32-bit pixel mask @@ -184,6 +199,14 @@ extern "C" { #define PIXELCH_DISABLE(msk, c) (PIXELN_DISABLE(msk, PIXEL_CH2N(c))) +/*!***************************************************************************** + * @brief Macro to create a pixel mask given by the pixel x-y-indices. + * @param x x-index of the pixel. + * @param y y-index of the pixel. + * @return The 32-bit pixel mask with only pixel ADC channel set. + ******************************************************************************/ +#define PIXELXY_MASK(x, y) (0x01U << (PIXEL_XY2N(x, y))) + /*!***************************************************************************** * @brief Macro to determine if a pixel given by the x-y-indices is enabled in a pixel mask. * @param msk 32-bit pixel mask @@ -337,10 +360,10 @@ static inline uint32_t ShiftSelectedPixels(const uint32_t pixel_mask, uint32_t shifted_mask = 0; - for (uint8_t x = 0; x < ARGUS_PIXELS_X; ++x) { - for (uint8_t y = 0; y < ARGUS_PIXELS_Y; ++y) { - int8_t x_src = x - dx; - int8_t y_src = y - dy; + for (int8_t x = 0; x < ARGUS_PIXELS_X; ++x) { + for (int8_t y = 0; y < ARGUS_PIXELS_Y; ++y) { + int8_t x_src = (int8_t)(x - dx); + int8_t y_src = (int8_t)(y - dy); if (dy & 0x1) { /* Compensate for hexagonal pixel shape. */ @@ -409,8 +432,8 @@ static inline uint32_t FillPixelMask(uint32_t pixel_mask, int8_t min_y = -1; /* Find nearest not selected pixel. */ - for (uint8_t x = 0; x < ARGUS_PIXELS_X; ++x) { - for (uint8_t y = 0; y < ARGUS_PIXELS_Y; ++y) { + for (int8_t x = 0; x < ARGUS_PIXELS_X; ++x) { + for (int8_t y = 0; y < ARGUS_PIXELS_Y; ++y) { if (!PIXELXY_ISENABLED(pixel_mask, x, y)) { int32_t distx = (x - center_x) << 1; @@ -423,8 +446,8 @@ static inline uint32_t FillPixelMask(uint32_t pixel_mask, if (dist < min_dist) { min_dist = dist; - min_x = x; - min_y = y; + min_x = (int8_t)x; + min_y = (int8_t)y; } } } @@ -438,6 +461,64 @@ static inline uint32_t FillPixelMask(uint32_t pixel_mask, return pixel_mask; } + +/*!***************************************************************************** + * @brief Fills a pixel mask with the direct neighboring pixels around a pixel. + * + * @details The pixel mask is iteratively filled with the direct neighbors of the + * specified center pixel. + * + * Note that the function is able to handle corner and edge pixels and + * also to handle odd/even lines (which have different layouts) + * + * @param x The selected pixel x-index. + * @param y The selected pixel y-index. + * @return The filled pixel mask with all direct neighbors of the selected pixel. + ******************************************************************************/ +static inline uint32_t GetAdjacentPixelsMask(const uint_fast8_t x, + const uint_fast8_t y) +{ + assert(x < ARGUS_PIXELS_X); + assert(y < ARGUS_PIXELS_Y); + + uint32_t mask = 0u; + + bool isXEdgeLow = (x == 0); + bool isXEdgeHigh = (x == (ARGUS_PIXELS_X - 1)); + bool isYEdgeLow = (y == 0); + bool isYEdgeHigh = (y == (ARGUS_PIXELS_Y - 1)); + + if (y % 2 == 0) { + if (!isYEdgeLow) { PIXELXY_ENABLE(mask, x, y - 1); } + + if ((!isXEdgeHigh) && (!isYEdgeLow)) { PIXELXY_ENABLE(mask, x + 1, y - 1); } + + if (!isXEdgeHigh) { PIXELXY_ENABLE(mask, x + 1, y); } + + if ((!isXEdgeHigh) && (!isYEdgeHigh)) { PIXELXY_ENABLE(mask, x + 1, y + 1); } + + if (!isYEdgeHigh) { PIXELXY_ENABLE(mask, x, y + 1); } + + if (!isXEdgeLow) { PIXELXY_ENABLE(mask, x - 1, y); } + + } else { + if ((!isXEdgeLow) && (!isYEdgeLow)) { PIXELXY_ENABLE(mask, x - 1, y - 1); } + + if (!isYEdgeLow) { PIXELXY_ENABLE(mask, x, y - 1); } + + if (!isXEdgeHigh) { PIXELXY_ENABLE(mask, x + 1, y); } + + if (!isYEdgeHigh) { PIXELXY_ENABLE(mask, x, y + 1); } + + if ((!isXEdgeLow) && (!isYEdgeHigh)) { PIXELXY_ENABLE(mask, x - 1, y + 1); } + + if (!isXEdgeLow) { PIXELXY_ENABLE(mask, x - 1, y); } + } + + return mask; +} + + /*! @} */ #ifdef __cplusplus } // extern "C" diff --git a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_msk.h b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_msk.h deleted file mode 100644 index 258fb38260..0000000000 --- a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_msk.h +++ /dev/null @@ -1,170 +0,0 @@ -/*************************************************************************//** - * @file - * @brief This file is part of the AFBR-S50 API. - * @details Defines macros to work with pixel and ADC channel masks. - * - * @copyright - * - * Copyright (c) 2021, Broadcom Inc - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. Neither the name of the copyright holder nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - *****************************************************************************/ - -#ifndef ARGUS_MSK_H -#define ARGUS_MSK_H - -/*!*************************************************************************** - * @defgroup argusmap ADC Channel Mapping - * @ingroup argusres - * - * @brief Pixel ADC Channel (n) to x-y-Index Mapping - * - * @details The ADC Channels of each pixel or auxiliary channel on the device - * is numbered in a way that is convenient on the chip. The macros - * in this module are defined in order to obtain the x-y-indices of - * each channel and vice versa. - * - * @addtogroup argusmap - * @{ - *****************************************************************************/ - -#include "api/argus_def.h" -#include "utility/int_math.h" - -/*!***************************************************************************** - * @brief Macro to determine the channel number of an specified Pixel. - * @param x The x index of the pixel. - * @param y The y index of the pixel. - * @return The channel number n of the pixel. - ******************************************************************************/ -#define PIXEL_XY2N(x, y) ((((x) ^ 7) << 1) | ((y) & 2) << 3 | ((y) & 1)) - -/*!***************************************************************************** - * @brief Macro to determine the x index of an specified Pixel channel. - * @param n The channel number of the pixel. - * @return The x index number of the pixel. - ******************************************************************************/ -#define PIXEL_N2X(n) ((((n) >> 1U) & 7) ^ 7) - -/*!***************************************************************************** - * @brief Macro to determine the y index of an specified Pixel channel. - * @param n The channel number of the pixel. - * @return The y index number of the pixel. - ******************************************************************************/ -#define PIXEL_N2Y(n) (((n) & 1U) | (((n) >> 3) & 2U)) - -/*!***************************************************************************** - * @brief Macro to determine if a ADC Pixel channel was enabled from a pixel mask. - * @param msk The 32-bit pixel mask - * @param ch The channel number of the pixel. - * @return True if the pixel channel n was enabled, false elsewise. - ******************************************************************************/ -#define PIXELN_ISENABLED(msk, ch) (((msk) >> (ch)) & 0x01U) - -/*!***************************************************************************** - * @brief Macro enables an ADC Pixel channel in a pixel mask. - * @param msk The 32-bit pixel mask - * @param ch The channel number of the pixel. - ******************************************************************************/ -#define PIXELN_ENABLE(msk, ch) ((msk) |= (0x01U << (ch))) - -/*!***************************************************************************** - * @brief Macro disables an ADC Pixel channel in a pixel mask. - * @param msk The 32-bit pixel mask - * @param ch The channel number of the pixel. - ******************************************************************************/ -#define PIXELN_DISABLE(msk, ch) ((msk) &= (~(0x01U << (ch)))) - -/*!***************************************************************************** - * @brief Macro to determine if an ADC Pixel channel was enabled from a pixel mask. - * @param msk 32-bit pixel mask - * @param x x index of the pixel. - * @param y y index of the pixel. - * @return True if the pixel (x,y) was enabled, false elsewise. - ******************************************************************************/ -#define PIXELXY_ISENABLED(msk, x, y) (PIXELN_ISENABLED(msk, PIXEL_XY2N(x, y))) - -/*!***************************************************************************** - * @brief Macro enables an ADC Pixel channel in a pixel mask. - * @param msk 32-bit pixel mask - * @param x x index of the pixel. - * @param y y index of the pixel. - ******************************************************************************/ -#define PIXELXY_ENABLE(msk, x, y) (PIXELN_ENABLE(msk, PIXEL_XY2N(x, y))) - -/*!***************************************************************************** - * @brief Macro disables an ADC Pixel channel in a pixel mask. - * @param msk 32-bit pixel mask - * @param x x index of the pixel. - * @param y y index of the pixel. - ******************************************************************************/ -#define PIXELXY_DISABLE(msk, x, y) (PIXELN_DISABLE(msk, PIXEL_XY2N(x, y))) - -/*!***************************************************************************** - * @brief Macro to determine if a ADC channel was enabled from a channel mask. - * @param msk 32-bit channel mask - * @param ch channel number of the ADC channel. - * @return True if the ADC channel n was enabled, false elsewise. - ******************************************************************************/ -#define CHANNELN_ISENABLED(msk, ch) (((msk) >> ((ch) - 32U)) & 0x01U) - -/*!***************************************************************************** - * @brief Macro to determine if a ADC channel was enabled from a channel mask. - * @param msk 32-bit channel mask - * @param ch channel number of the ADC channel. - * @return True if the ADC channel n was enabled, false elsewise. - ******************************************************************************/ -#define CHANNELN_ENABLE(msk, ch) ((msk) |= (0x01U << ((ch) - 32U))) - -/*!***************************************************************************** - * @brief Macro to determine if a ADC channel was enabled from a channel mask. - * @param msk 32-bit channel mask - * @param ch channel number of the ADC channel. - * @return True if the ADC channel n was enabled, false elsewise. - ******************************************************************************/ -#define CHANNELN_DISABLE(msk, ch) ((msk) &= (~(0x01U << ((ch) - 32U)))) - - -/*!***************************************************************************** - * @brief Macro to determine the number of enabled pixel channels via a popcount - * algorithm. - * @param pxmsk 32-bit pixel mask - * @return The count of enabled pixel channels. - ******************************************************************************/ -#define PIXEL_COUNT(pxmsk) popcount(pxmsk) - -/*!***************************************************************************** - * @brief Macro to determine the number of enabled channels via a popcount - * algorithm. - * @param pxmsk 32-bit pixel mask - * @param chmsk 32-bit channel mask - * @return The count of enabled ADC channels. - ******************************************************************************/ -#define CHANNEL_COUNT(pxmsk, chmsk) (popcount(pxmsk) + popcount(chmsk)) - -/*! @} */ -#endif /* ARGUS_MSK_H */ diff --git a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_offset.h b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_offset.h index 7a41440f39..3ef649d45b 100644 --- a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_offset.h +++ b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_offset.h @@ -36,6 +36,9 @@ #ifndef ARGUS_OFFSET_H #define ARGUS_OFFSET_H +#ifdef __cplusplus +extern "C" { +#endif /*!*************************************************************************** * @addtogroup argus_cal @@ -48,12 +51,26 @@ * @brief Pixel Range Offset Table. * @details Contains pixel range offset values for all 32 active pixels. *****************************************************************************/ -typedef struct argus_cal_offset_table_t { - /*! The offset values per pixel in meter and Q0.15 format. */ - q0_15_t Table[ARGUS_PIXELS_X][ARGUS_PIXELS_Y]; +typedef union argus_cal_offset_table_t { + struct { + /*! The offset values table for Low Power Stage of all 32 pixels. + * Unit: meter; Format: Q0.15 */ + q0_15_t LowPower[ARGUS_PIXELS_X][ARGUS_PIXELS_Y]; + + /*! The offset values table for High Power Stage of all 32 pixels. + * Unit: meter; Format: Q0.15 */ + q0_15_t HighPower[ARGUS_PIXELS_X][ARGUS_PIXELS_Y]; + }; + + /*! The offset values table for Low/High Power Stages of all 32 pixels. + * Unit: meter; Format: Q0.15 */ + q0_15_t Table[ARGUS_DCA_POWER_STAGE_COUNT][ARGUS_PIXELS_X][ARGUS_PIXELS_Y]; } argus_cal_offset_table_t; /*! @} */ +#ifdef __cplusplus +} // extern "C" +#endif #endif /* ARGUS_OFFSET_T */ diff --git a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_pba.h b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_pba.h index f28576500d..f412229396 100644 --- a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_pba.h +++ b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_pba.h @@ -55,11 +55,11 @@ extern "C" { * information from the filtered pixels by averaging them in a * specified way. * - * The Pixel Binning Algorithm is a three-stage filter with a - * fallback value: + * Basically, the Pixel Binning Algorithm is a multi-stage filter: * * -# A fixed pre-filter mask is applied to statically disable * specified pixels. + * * -# A relative and absolute amplitude filter is applied in the * second stage. The relative filter is determined by a ratio * of the maximum amplitude off all available (i.e. not filtered @@ -75,12 +75,28 @@ extern "C" { * selected and considered for the final 1D distance. The * absolute threshold is used to dismiss pixels that are below * the noise level. The latter would be considered for the 1D - * result if the maximum amplitude is already very low. + * result if the maximum amplitude is already very low.\n + * Those threshold are implemented using a hysteresis behavior. + * For its configuration, see the following parameters: + * - #argus_cfg_pba_t::RelativeAmplitudeInclusion + * - #argus_cfg_pba_t::RelativeAmplitudeExclusion + * - #argus_cfg_pba_t::AbsoluteAmplitudeInclusion + * - #argus_cfg_pba_t::AbsoluteAmplitudeExclusion + * . + * * -# An absolute minimum distance filter is applied in addition * to the amplitude filter. This removes all pixel that have * a lower distance than the specified threshold. This is used * to remove invalid pixels that can be detected by a physically - * not correct negative distance. + * not correct negative distance.\n + * For its configuration, see the following parameters: + * - #PBA_ENABLE_MIN_DIST_SCOPE + * - #argus_cfg_pba_t::AbsoluteDistanceScopeInclusion + * - #argus_cfg_pba_t::AbsoluteDistanceScopeExclusion + * - #argus_cfg_pba_t::RelativeDistanceScopeInclusion + * - #argus_cfg_pba_t::RelativeDistanceScopeExclusion + * . + * * -# A distance filter is used to distinguish pixels that target * the actual object from pixels that see the brighter background, * e.g. white walls. Thus, the pixel with the minimum distance @@ -90,11 +106,31 @@ extern "C" { * determined by an relative (to the current minimum distance) * and an absolute value. The larger scope value is the * relevant one, i.e. the relative distance scope can be used - * to heed the increasing noise at larger distances. + * to heed the increasing noise at larger distances.\n + * For its configuration, see the following parameters: + * - #argus_cfg_pba_t::AbsoluteMinimumDistanceThreshold + * . + * * -# If all of the above filters fail to determine a single valid * pixel, the Golden Pixel is used as a fallback value. The * Golden Pixel is the pixel that sits right at the focus point - * of the optics at large distances. + * of the optics at large distances. Thus, it is expected to + * have the best signal at large distances.\n + * For its configuration, see the following parameters: + * - #PBA_ENABLE_GOLDPX_FALLBACK_MODE + * . + * + * -# In order to avoid unwanted effects from "out-of-focus" pixels + * in application that require a smaller focus, the Golden Pixel + * Priority Mode prioritizes a valid signal on the central + * Golden Pixel over other pixels. That is, while the Golden + * Pixel has a reasonable signal strength, it is the only pixel + * considered for the 1D result.\n + * For its configuration, see the following parameters: + * - #PBA_ENABLE_GOLDPX_FALLBACK_MODE + * - #argus_cfg_pba_t::GoldenPixelPriorityAmplitudeInclusion + * - #argus_cfg_pba_t::GoldenPixelPriorityAmplitudeExclusion + * . * . * * After filtering is done, there may be more than a single pixel @@ -113,14 +149,17 @@ extern "C" { * @brief Enable flags for the pixel binning algorithm. * * @details Determines the pixel binning algorithm feature enable status. + * * - [0]: #PBA_ENABLE: Enables the pixel binning feature. * - [1]: reserved * - [2]: reserved * - [3]: reserved - * - [4]: reserved - * - [5]: #PBA_ENABLE_GOLDPX: Enables the Golden Pixel feature. - * - [6]: #PBA_ENABLE_MIN_DIST_SCOPE: Enables the minimum distance scope - * feature. + * - [4]: #PBA_ENABLE_GOLDPX_PRIORITY_MODE: Enables the Golden Pixel + * priority mode feature. + * - [5]: #PBA_ENABLE_GOLDPX_FALLBACK_MODE: Enables the Golden Pixel + * fallback mode feature. + * - [6]: #PBA_ENABLE_MIN_DIST_SCOPE: Enables the minimum distance + * scope feature. * - [7]: reserved * . *****************************************************************************/ @@ -128,8 +167,17 @@ typedef enum argus_pba_flags_t { /*! Enables the pixel binning feature. */ PBA_ENABLE = 1U << 0U, - /*! Enables the Golden Pixel. */ - PBA_ENABLE_GOLDPX = 1U << 5U, + /*! Enables the Golden Pixel Priority Mode. + * If enabled, the Golden Pixel is prioritized over other Pixels as long + * as it has a good signal (determined by # */ + PBA_ENABLE_GOLDPX_PRIORITY_MODE = 1U << 4U, + + /*! Enables the Golden Pixel Fallback Mode. + * If enabled, the Golden Pixel is used as a last fallback pixel to obtain + * a valid signal from. This is recommended for all non-multi pixel + * devices whose TX field-of-view is aligned to target the Golden Pixel in + * factory calibration. */ + PBA_ENABLE_GOLDPX_FALLBACK_MODE = 1U << 5U, /*! Enables the minimum distance scope filter. */ PBA_ENABLE_MIN_DIST_SCOPE = 1U << 6U, @@ -168,65 +216,297 @@ typedef struct { * about the individual evaluation modes. */ argus_pba_averaging_mode_t AveragingMode; - /*! The Relative amplitude threshold value (in %) of the max. amplitude. + /*! The relative amplitude inclusion threshold (in %) of the max. amplitude. * - * Pixels with amplitude below this threshold value are dismissed. + * Pixels, whose amplitudes raise above this inclusion threshold, are + * added to the pixel binning. The amplitude must fall below the + * exclusion (#RelativeAmplitudeExclusion) threshold to be removed from + * the pixel binning again. * * All available values from the 8-bit representation are valid. * The actual percentage value is determined by 100%/256*x. * - * Use 0 to disable the relative amplitude threshold. */ - uq0_8_t RelAmplThreshold; - - /*! The relative minimum distance scope value in %. + * Note: in addition to the relative criteria, there is also the absolute + * criteria (#AbsoluteAmplitudeInclusion, #AbsoluteAmplitudeExclusion). + * The pixels are added to the pixel binning if their respective amplitude + * is larger than the absolute AND relative inclusion values. On the other + * hand, they are removed if their amplitude falls below the absolute OR + * relative exclusion threshold. * - * Pixels that have a range value within [x0, x0 + dx] are considered - * for the pixel binning, where x0 is the minimum distance of all - * amplitude picked pixels and dx is the minimum distance scope value. - * The minimum distance scope value will be the maximum of relative - * and absolute value. + * Must be greater than or equal to the #RelativeAmplitudeExclusion. + * + * Use #RelativeAmplitudeExclusion == #RelativeAmplitudeInclusion to + * disable the hysteresis behavior and use it as a threshold only. + * + * Use 0 (for both, #RelativeAmplitudeExclusion and + * #RelativeAmplitudeInclusion) to disable the relative amplitude + * hysteresis. */ + uq0_8_t RelativeAmplitudeInclusion; + + /*! The relative amplitude exclusion threshold (in %) of the max. amplitude. + * + * Pixels, whose amplitudes fall below this exclusion threshold, are + * removed from the pixel binning. The amplitude must raise above the + * inclusion (#RelativeAmplitudeInclusion) threshold to be added back + * to be pixel binning again. * * All available values from the 8-bit representation are valid. * The actual percentage value is determined by 100%/256*x. * - * Special values: - * - 0: Use 0 for absolute value only or to choose the pixel with the - * minimum distance only (of also the absolute value is 0)! */ - uq0_8_t RelMinDistanceScope; + * Note: in addition to the relative criteria, there is also the absolute + * criteria (#AbsoluteAmplitudeInclusion, #AbsoluteAmplitudeExclusion). + * The pixels are added to the pixel binning if their respective amplitude + * is larger than the absolute AND relative inclusion values. On the other + * hand, they are removed if their amplitude falls below the absolute OR + * relative exclusion threshold. + * + * Must be less than or equal to #RelativeAmplitudeInclusion. + * + * Use #RelativeAmplitudeExclusion == #RelativeAmplitudeInclusion to + * disable the hysteresis behavior and use it as a threshold only. + * + * Use 0 (for both, #RelativeAmplitudeExclusion and + * #RelativeAmplitudeInclusion) to disable the relative amplitude + * hysteresis. */ + uq0_8_t RelativeAmplitudeExclusion; - /*! The absolute amplitude threshold value in LSB. + /*! The absolute amplitude inclusion threshold in LSB. * - * Pixels with amplitude below this threshold value are dismissed. + * Pixels, whose amplitudes raise above this inclusion threshold, are + * added to the pixel binning. The amplitude must fall below the + * exclusion (#RelativeAmplitudeExclusion) threshold to be removed from + * the pixel binning again. * - * The absolute amplitude threshold is only valid if the Golden Pixel - * mode is enabled. Otherwise, the threshold is set to 0 LSB internally. + * The absolute amplitude hysteresis is only valid if the Golden Pixel + * mode is enabled. Otherwise, the thresholds are set to 0 LSB internally + * which disables the absolute criteria. * * All available values from the 16-bit representation are valid. * The actual LSB value is determined by x/16. * - * Use 0 to disable the absolute amplitude threshold. */ - uq12_4_t AbsAmplThreshold; - - /*! The absolute minimum distance scope value in m. + * Note: in addition to the absolute criteria, there is also the relative + * criteria (#RelativeAmplitudeInclusion, #RelativeAmplitudeExclusion). + * The pixels are added to the pixel binning if their respective amplitude + * is larger than the absolute AND relative inclusion values. On the other + * hand, they are removed if their amplitude falls below the absolute OR + * relative exclusion threshold. * - * Pixels that have a range value within [x0, x0 + dx] are considered - * for the pixel binning, where x0 is the minimum distance of all - * amplitude picked pixels and dx is the minimum distance scope value. - * The minimum distance scope value will be the maximum of relative - * and absolute value. + * Must be greater than or equal to #AbsoluteAmplitudeExclusion. + * + * Use #AbsoluteAmplitudeExclusion == #AbsoluteAmplitudeInclusion to + * disable the hysteresis behavior and use it as a threshold only. + * + * Use 0 (for both, #AbsoluteAmplitudeExclusion and + * #AbsoluteAmplitudeInclusion) to disable the absolute amplitude + * hysteresis. */ + uq12_4_t AbsoluteAmplitudeInclusion; + + /*! The absolute amplitude exclusion threshold in LSB. + * + * Pixels, whose amplitudes fall below this exclusion threshold, are + * removed from the pixel binning. The amplitude must raise above the + * inclusion (#RelativeAmplitudeInclusion) threshold to be added back + * to be pixel binning again. + * + * The absolute amplitude hysteresis is only valid if the Golden Pixel + * mode is enabled. Otherwise, the thresholds are set to 0 LSB internally + * which disables the absolute criteria. + * + * All available values from the 16-bit representation are valid. + * The actual LSB value is determined by x/16. + * + * Note: in addition to the absolute criteria, there is also the relative + * criteria (#RelativeAmplitudeInclusion, #RelativeAmplitudeExclusion). + * The pixels are added to the pixel binning if their respective amplitude + * is larger than the absolute AND relative inclusion values. On the other + * hand, they are removed if their amplitude falls below the absolute OR + * relative exclusion threshold. + * + * Must be less than or equal to #AbsoluteAmplitudeInclusion. + * + * Use #AbsoluteAmplitudeExclusion == #AbsoluteAmplitudeInclusion to + * disable the hysteresis behavior and use it as a threshold only. + * + * Use 0 (for both, #AbsoluteAmplitudeExclusion and + * #AbsoluteAmplitudeInclusion) to disable the absolute amplitude + * hysteresis. */ + uq12_4_t AbsoluteAmplitudeExclusion; + + /*! The Golden Pixel Priority Mode inclusion threshold in LSB. + * + * The Golden Pixel Priority Mode prioritizes a valid signal on the + * Golden Pixel over other pixel to avoid unwanted effects from + * "out-of-focus" pixels in application that require a smaller focus. + * + * If the Golden Pixel priority mode is enabled (see + * #PBA_ENABLE_GOLDPX_PRIORITY_MODE) and the Golden Pixel has a valid signal + * with amplitude higher than this inclusion threshold, its priority state + * is enabled and the binning exits early by dismissing all other pixels + * regardless of their respective amplitude or state. The Golden Pixel + * priority state is disabled if the Golden Pixel amplitude falls below + * the exclusion threshold (#GoldenPixelPriorityAmplitudeExclusion) or its + * state becomes invalid (e.g. #PIXEL_SAT). + * + * All available values from the 16-bit representation are valid. + * The actual LSB value is determined by x/16. + * + * Use 0 to disable the Golden Pixel priority mode hysteresis. */ + uq12_4_t GoldenPixelPriorityAmplitudeInclusion; + + /*! The Golden Pixel Priority Mode exclusion threshold in LSB. + * + * The Golden Pixel Priority Mode prioritizes a valid signal on the + * Golden Pixel over other pixel to avoid unwanted effects from + * "out-of-focus" pixels in application that require a smaller focus. + * + * If the Golden Pixel priority mode is enabled (see + * #PBA_ENABLE_GOLDPX_PRIORITY_MODE) and the Golden Pixel has a valid + * signal with amplitude higher than the exclusion threshold + * (#GoldenPixelPriorityAmplitudeInclusion), its priority state is enabled + * and the binning exits early by dismissing all other pixels regardless + * of their respective amplitude or state. The Golden Pixel priority state + * is disabled if the Golden Pixel amplitude falls below this exclusion + * threshold or its state becomes invalid (e.g. #PIXEL_SAT). + * + * All available values from the 16-bit representation are valid. + * The actual LSB value is determined by x/16. + * + * Use 0 to disable the Golden Pixel priority mode hysteresis. */ + uq12_4_t GoldenPixelPriorityAmplitudeExclusion; + + /*! The relative minimum distance scope inclusion threshold (in %). + * + * Pixels, whose range is smaller than the minimum distance inclusion + * threshold (x_min + dx_incl) are added to the pixel binning. The + * range must raise above the exclusion + * (#RelativeDistanceScopeExclusion) threshold to be removed + * from the pixel binning again. The relative value is determined + * by multiplying the percentage with the minimum distance. + * + * The distance scope determines an interval within that pixels + * are considered valid, originating at the minimum distance (x_min). + * The width of the interval is specified by the relative and absolute + * minimum distance scope thresholds. The actual values it the + * maximum of both, the relative and absolute inclusion values + * (#AbsoluteDistanceScopeInclusion). + * + * All available values from the 8-bit representation are valid. + * The actual percentage value is determined by 100%/256*x. + * + * Must be smaller than or equal to the #RelativeDistanceScopeExclusion. + * + * Use #RelativeDistanceScopeExclusion == #RelativeDistanceScopeInclusion to + * disable the hysteresis behavior and use it as a threshold only. */ + uq0_8_t RelativeDistanceScopeInclusion; + + /*! The relative distance scope exclusion threshold (in %). + * + * Pixels, whose range is larger than the minimum distance exclusion + * threshold (x_min + dx_excl) are removed from the pixel binning. The + * range must fall below the inclusion + * (#RelativeDistanceScopeInclusion) threshold to be added + * to the pixel binning again. The relative value is determined + * by multiplying the percentage with the minimum distance. + * + * The distance scope determines an interval within that pixels + * are considered valid, originating at the minimum distance (x_min). + * The width of the interval is specified by the relative and absolute + * minimum distance scope thresholds. The actual values it the + * maximum of both, the relative and absolute exclusion values + * (#AbsoluteDistanceScopeExclusion). + * + * All available values from the 8-bit representation are valid. + * The actual percentage value is determined by 100%/256*x. + * + * Must be larger than or equal to the #RelativeDistanceScopeInclusion. + * + * Use #RelativeDistanceScopeExclusion == #RelativeDistanceScopeInclusion to + * disable the hysteresis behavior and use it as a threshold only. */ + uq0_8_t RelativeDistanceScopeExclusion; + + /*! The absolute minimum distance scope inclusion threshold (in m). + * + * Pixels, whose range is smaller than the minimum distance inclusion + * threshold (x_min + dx_incl) are added to the pixel binning. The + * range must raise above the exclusion + * (#AbsoluteDistanceScopeExclusion) threshold to be added + * to the pixel binning again. + * + * The distance scope determines an interval within that pixels + * are considered valid, originating at the minimum distance (x_min). + * The width of the interval is specified by the relative and absolute + * minimum distance scope thresholds. The actual values it the + * maximum of both, the relative and absolute exclusion values + * (#RelativeDistanceScopeInclusion). * * All available values from the 16-bit representation are valid. * The actual LSB value is determined by x/2^15. * - * Special values: - * - 0: Use 0 for relative value only or to choose the pixel with the - * minimum distance only (of also the relative value is 0)! */ - uq1_15_t AbsMinDistanceScope; + * Must be smaller than or equal to the #AbsoluteDistanceScopeExclusion. + * + * Use #AbsoluteDistanceScopeExclusion == #AbsoluteDistanceScopeInclusion to + * disable the hysteresis behavior and use it as a threshold only. */ + uq1_15_t AbsoluteDistanceScopeInclusion; + + /*! The absolute minimum distance scope exclusion threshold (in m). + * + * Pixels, whose range is larger than the minimum distance exclusion + * threshold (x_min + dx_excl) are removed from the pixel binning. The + * range must fall below the inclusion + * (#AbsoluteDistanceScopeInclusion) threshold to be added + * to the pixel binning again. + * + * The distance scope determines an interval within that pixels + * are considered valid, originating at the minimum distance (x_min). + * The width of the interval is specified by the relative and absolute + * minimum distance scope thresholds. The actual values it the + * maximum of both, the relative and absolute exclusion values + * (#RelativeDistanceScopeExclusion). + * + * All available values from the 16-bit representation are valid. + * The actual LSB value is determined by x/2^15. + * + * Must be larger than or equal to the #AbsoluteDistanceScopeInclusion. + * + * Use #AbsoluteDistanceScopeExclusion == #AbsoluteDistanceScopeInclusion to + * disable the hysteresis behavior and use it as a threshold only. */ + uq1_15_t AbsoluteDistanceScopeExclusion; + + /*! The Golden Pixel Saturation Filter Pixel Threshold. + * + * The Golden Pixel Saturation Filter will evaluate the status of the + * Golden Pixel to #PIXEL_INVALID if a certain number of active pixels, + * i.e. pixels that are not removed by the static pre-filter mask + * (#PrefilterMask), are saturated (#PIXEL_SAT). + * + * The purpose of this filter is to avoid erroneous situations with highly + * reflective targets (e.g. retro-reflectors) that can invalidate the + * Golden Pixel such that it would not show the correct saturation state. + * In order to avoid using the Golden Pixel in that scenario, this filter + * mechanism can be used to remove the Golden Pixel if a specified number + * of other pixels show saturation state. + * + * Use 0 to disable the Golden Pixel Saturation Filter. */ + uint8_t GoldenPixelSaturationFilterPixelThreshold; + + /*! The Golden Pixel out-of-sync age limit for the GPPM. + * + * The Golden Pixel out-of-sync age is the number of consecutive frames + * where the Golden Pixel is out-of-sync. This parameters is the threshold + * to distinguish between temporary and permanent out-of-sync states. + * + * Temporary out-of-sync states happen when the target rapidly changes. In + * this case, the Golden Pixel Priority Mode (GPPM) is not exited. Only if + * the out-of-sync age exceeds the specified threshold, the Golden Pixel is + * considered erroneous and the GPPM is exited. + * + * Use 0 to disable the Golden Pixel out-of-sync aging (= infinity). */ + uint8_t GoldenPixelOutOfSyncAgeThreshold; /*! The absolute minimum distance threshold value in m. * * Pixels with distance below this threshold value are dismissed. */ - q9_22_t AbsMinDistanceThreshold; + q9_22_t AbsoluteMinimumDistanceThreshold; /*! The pre-filter pixel mask determines the pixel channels that are * statically excluded from the pixel binning (i.e. 1D distance) result. diff --git a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_px.h b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_px.h index a739cea7f3..3d4ef3d50c 100644 --- a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_px.h +++ b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_px.h @@ -55,6 +55,9 @@ extern "C" { * Also used as a special value to determine no object detected or infinity range. */ #define ARGUS_RANGE_MAX (Q9_22_MAX) +/*! Minimum range value in Q9.22 format. */ +#define ARGUS_RANGE_MIN (Q9_22_MIN) + /*!*************************************************************************** * @brief Status flags for the evaluated pixel structure. * diff --git a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_status.h b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_status.h index 77cd856413..8f3fb09688 100644 --- a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_status.h +++ b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_status.h @@ -227,12 +227,19 @@ enum Status { /*! -114: AFBR-S50 Error: Register data integrity is lost (e.g. due to unexpected * power-on-reset cycle or invalid write cycle of SPI. System tries to - * reset the values. */ + * reset the values. + * + * @note If this error occurs after intentionally cycling the power supply + * of the device, use the #Argus_RestoreDeviceState API function to properly + * recover the current API state into the device to avoid that issue. */ ERROR_ARGUS_DATA_INTEGRITY_LOST = -114, /*! -115: AFBR-S50 Error: The range offsets calibration failed! */ ERROR_ARGUS_RANGE_OFFSET_CALIBRATION_FAILED = -115, + /*! -116: AFBR-S50 Error: The VSUB calibration failed! */ + ERROR_ARGUS_VSUB_CALIBRATION_FAILED = -116, + /*! -191: AFBR-S50 Error: The device is currently busy and cannot execute the * requested command. */ ERROR_ARGUS_BUSY = -191, diff --git a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_version.h b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_version.h index a1a2d878ac..f58ba1bba7 100644 --- a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_version.h +++ b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_version.h @@ -56,13 +56,13 @@ extern "C" { #define ARGUS_API_VERSION_MAJOR 1 /*! Minor version number of the AFBR-S50 API. */ -#define ARGUS_API_VERSION_MINOR 4 +#define ARGUS_API_VERSION_MINOR 5 /*! Bugfix version number of the AFBR-S50 API. */ -#define ARGUS_API_VERSION_BUGFIX 4 +#define ARGUS_API_VERSION_BUGFIX 6 /*! Build version number of the AFBR-S50 API. */ -#define ARGUS_API_VERSION_BUILD "20230327150535" +#define ARGUS_API_VERSION_BUILD "20240208081753" /*****************************************************************************/ diff --git a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_xtalk.h b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_xtalk.h index 6f3d40b49a..284538a52b 100644 --- a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_xtalk.h +++ b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/api/argus_xtalk.h @@ -72,30 +72,28 @@ typedef struct xtalk_t { * @details Contains crosstalk vector values for all 32 active pixels, * separated for A/B-Frames. *****************************************************************************/ -typedef struct argus_cal_xtalk_table_t { - union { - struct { - /*! The crosstalk vector table for A-Frames. */ - xtalk_t FrameA[ARGUS_PIXELS_X][ARGUS_PIXELS_Y]; +typedef union argus_cal_xtalk_table_t { + struct { + /*! The crosstalk vector table for A-Frames. */ + xtalk_t FrameA[ARGUS_PIXELS_X][ARGUS_PIXELS_Y]; - /*! The crosstalk vector table for B-Frames. */ - xtalk_t FrameB[ARGUS_PIXELS_X][ARGUS_PIXELS_Y]; - }; - - /*! The crosstalk vector table for A/B-Frames of all 32 pixels.*/ - xtalk_t Table[ARGUS_DFM_FRAME_COUNT][ARGUS_PIXELS_X][ARGUS_PIXELS_Y]; + /*! The crosstalk vector table for B-Frames. */ + xtalk_t FrameB[ARGUS_PIXELS_X][ARGUS_PIXELS_Y]; }; + /*! The crosstalk vector table for A/B-Frames of all 32 pixels.*/ + xtalk_t Table[ARGUS_DFM_FRAME_COUNT][ARGUS_PIXELS_X][ARGUS_PIXELS_Y]; + } argus_cal_xtalk_table_t; /*!*************************************************************************** - * @brief Pixel-To-Pixel Crosstalk Compensation Parameters. - * @details Contains calibration data that belongs to the pixel-to-pixel - * crosstalk compensation feature. + * @brief Electrical Pixel-To-Pixel Crosstalk Compensation Parameters. + * @details Contains calibration data that belongs to the electrical + * pixel-to-pixel crosstalk compensation feature. *****************************************************************************/ -typedef struct argus_cal_p2pxtalk_t { - /*! Pixel-To-Pixel Compensation on/off. */ +typedef struct argus_cal_electrical_p2pxtalk_t { + /*! Electrical Pixel-To-Pixel Compensation on/off. */ bool Enabled; /*! The relative threshold determines when the compensation is active for @@ -134,8 +132,39 @@ typedef struct argus_cal_p2pxtalk_t { * Higher values determine more influence on the reference pixel signal. */ q3_12_t KcFactorCRefPx; -} argus_cal_p2pxtalk_t; +} argus_cal_electrical_p2pxtalk_t; +/*!*************************************************************************** + * @brief Optical Pixel-To-Pixel Crosstalk Compensation Parameters. + * @details Contains calibration data that belongs to the optical + * pixel-to-pixel crosstalk compensation feature. + *****************************************************************************/ +typedef struct argus_cal_optical_p2pxtalk_t { + /*! Optical Pixel-To-Pixel Compensation on/off. */ + bool Enabled; + + /*! The sine component of the coupling coefficient that determines the amount + * of a neighbour pixel signal that influences the raw signal of certain pixel. + * Higher values determine more influence on the individual pixel signal. */ + q3_12_t CouplingCoeffS; + + /*! The cosine component of the coupling coefficient that determines the amount + * of a neighbour pixel signal that influences the raw signal of a certain pixel. + * Higher values determine more influence on the individual pixel signal. */ + q3_12_t CouplingCoeffC; + +} argus_cal_optical_p2pxtalk_t; + +/*!*************************************************************************** + * @brief Pixel-To-Pixel Crosstalk Compensation Parameters. + * @details Contains combined calibration data for electrical and + * optical pixel-to-pixel crosstalk compensation feature. + *****************************************************************************/ +typedef struct argus_cal_p2pxtalk_t { + argus_cal_electrical_p2pxtalk_t Electrical; + + argus_cal_optical_p2pxtalk_t Optical; +} argus_cal_p2pxtalk_t; /*! @} */ #ifdef __cplusplus diff --git a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/utility/fp_div.h b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/utility/fp_div.h index 60b75a164a..09c6fdfdc3 100644 --- a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/utility/fp_div.h +++ b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/utility/fp_div.h @@ -61,7 +61,7 @@ extern "C" { * @details Algorithm to evaluate a/b, where b is in Q15.16 format, on a 32-bit * architecture with maximum precision. * The result is correctly rounded and given as the input format. - * Division by 0 yields max. values determined by signa of numerator. + * Division by 0 yields max. values determined by signs of numerator. * Too high/low results are truncated to max/min values. * * Depending on the architecture, the division is implemented with a 64-bit @@ -89,14 +89,14 @@ inline int32_t fp_div16(int32_t a, q15_16_t b) if (c > 0x80000000U) { return INT32_MIN; } - return -c; + return (int32_t) - c; } else { c = ((c / b) + (1 << 13U)) >> 14U; if (c > (int64_t)INT32_MAX) { return INT32_MAX; } - return c; + return (int32_t)c; } #else @@ -159,10 +159,16 @@ inline int32_t fp_div16(int32_t a, q15_16_t b) /* Figure out the sign of result */ if ((uint32_t)(a ^ b) & 0x80000000U) { - result = -result; + return (int32_t) - result; + + } else { + // fix 05.10.2023; the corner case, when result == INT32_MAX + 1: + // Catch the wraparound (to INT32_MIN) and truncate instead. + if (quotient > INT32_MAX) { return INT32_MAX; } + + return (int32_t)result; } - return (int32_t)result; #endif } diff --git a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/utility/fp_mul.h b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/utility/fp_mul.h index 78db582644..e0996d6d78 100644 --- a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/utility/fp_mul.h +++ b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/utility/fp_mul.h @@ -118,7 +118,7 @@ inline uint32_t fp_mulu(uint32_t u, uint32_t v, uint_fast8_t shift) assert(shift <= 32); #if USE_64BIT_MUL const uint64_t w = (uint64_t)u * (uint64_t)v; - return (w >> shift) + ((w >> (shift - 1)) & 1U); + return (uint32_t)((w >> shift) + ((w >> (shift - 1)) & 1U)); #else uint32_t tmp[2] = { 0 }; muldwu(tmp, u, v); @@ -158,15 +158,15 @@ inline int32_t fp_muls(int32_t u, int32_t v, uint_fast8_t shift) uint32_t u2, v2; - if (u < 0) { u2 = -u; sign = -sign; } else { u2 = u; } + if (u < 0) { u2 = (uint32_t) - u; sign = -sign; } else { u2 = (uint32_t)u; } - if (v < 0) { v2 = -v; sign = -sign; } else { v2 = v; } + if (v < 0) { v2 = (uint32_t) - v; sign = -sign; } else { v2 = (uint32_t)v; } const uint32_t res = fp_mulu(u2, v2, shift); assert(sign > 0 ? res <= 0x7FFFFFFFU : res <= 0x80000000U); - return sign > 0 ? res : -res; + return sign > 0 ? (int32_t)res : -(int32_t)res; } @@ -225,7 +225,9 @@ inline uint32_t fp_mul_u32_u16(uint32_t u, uint16_t v, uint_fast8_t shift) *****************************************************************************/ inline int32_t fp_mul_s32_u16(int32_t u, uint16_t v, uint_fast8_t shift) { - return u >= 0 ? fp_mul_u32_u16(u, v, shift) : - fp_mul_u32_u16(-u, v, shift); + return u >= 0 ? + (int32_t)fp_mul_u32_u16((uint32_t)u, v, shift) : + -(int32_t)fp_mul_u32_u16((uint32_t) - u, v, shift); } /*! @} */ diff --git a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/utility/fp_rnd.h b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/utility/fp_rnd.h index ad6f71e09c..056f2e027d 100644 --- a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/utility/fp_rnd.h +++ b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/utility/fp_rnd.h @@ -80,7 +80,7 @@ inline uint32_t fp_rndu(uint32_t Q, uint_fast8_t n) *****************************************************************************/ inline int32_t fp_rnds(int32_t Q, uint_fast8_t n) { - return (Q < 0) ? -fp_rndu(-Q, n) : fp_rndu(Q, n); + return (Q < 0) ? -(int32_t)fp_rndu((uint32_t)(-Q), n) : (int32_t)fp_rndu((uint32_t)Q, n); } /*!*************************************************************************** @@ -108,7 +108,7 @@ inline uint32_t fp_truncu(uint32_t Q, uint_fast8_t n) *****************************************************************************/ inline int32_t fp_truncs(int32_t Q, uint_fast8_t n) { - return (Q < 0) ? -fp_truncu(-Q, n) : fp_truncu(Q, n); + return (Q < 0) ? -(int32_t)fp_truncu((uint32_t)(-Q), n) : (int32_t)fp_truncu((uint32_t)Q, n); } /*! @} */ diff --git a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/utility/int_math.h b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/utility/int_math.h index 27de8cc688..b9b2004146 100644 --- a/src/drivers/distance_sensor/broadcom/afbrs50/Inc/utility/int_math.h +++ b/src/drivers/distance_sensor/broadcom/afbrs50/Inc/utility/int_math.h @@ -66,7 +66,7 @@ inline uint32_t log2i(uint32_t x) { assert(x != 0); #if 1 - return 31 - __builtin_clz(x); + return (uint32_t)(31 - __builtin_clz(x)); #else #define S(k) if (x >= (1 << k)) { i += k; x >>= k; } int i = 0; S(16); S(8); S(4); S(2); S(1); return i; diff --git a/src/drivers/distance_sensor/broadcom/afbrs50/Lib/libafbrs50_m4_fpu.a b/src/drivers/distance_sensor/broadcom/afbrs50/Lib/libafbrs50_m4_fpu.a index e4e6dc0c52cd053098fa96f10f8c558d14e9c94a..1cd0fe27e0dffe061af3a6a778d9876d2f27d920 100644 GIT binary patch delta 97635 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

l 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­F%aF#M2HhIUfls7W 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�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 Kc!Lg|`~LthTT6-n delta 90651 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 diff --git a/src/drivers/distance_sensor/broadcom/afbrs50/Lib/libafbrs50_m4_fpu_os.a b/src/drivers/distance_sensor/broadcom/afbrs50/Lib/libafbrs50_m4_fpu_os.a index 23bcd6fbea11819ddc7bceb0995bb490ec415162..a6e7c581d6d4356db99b6c848df35490d6f39eac 100644 GIT binary patch delta 55848 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