cancel
Showing results for 
Search instead for 
Did you mean: 

VL53L7CX sensor - GO2 error status

FB__1
Associate III

Hello,

We have an issue with the VL53L7CX. We are using 2.8V for both IOVDD and AVDD. We have 4x TOF sensor on the same I2C line. We set the LPn for 3x of them to low to disable the i2c comm. We are only using 1x TOF for now with it's LPn set to High for testing purpose.

We are able to finish the initialization OK using the ULD API https://www.st.com/en/embedded-software/stsw-img036.html. However, when we reach the while loop (using the polling mode) to check for the :

 

uint8_t vl53l7cx_check_data_ready(

VL53L7CX_Configuration *p_dev,

uint8_t *p_isReady)

 

p_isReady is always false and We hit this particular return line:

status |= p_dev->temp_buffer[2];	/* Return GO2 error status */

 

What is the G02 error values ? i cannot find any definition for it.

Any help is welcome to investigate this issue.

 

 

--

From file VL53L7CX_api.c:

uint8_t vl53l7cx_check_data_ready(
		VL53L7CX_Configuration		*p_dev,
		uint8_t				*p_isReady)
{
	uint8_t status = VL53L7CX_STATUS_OK;

	status |= VL53L7CX_RdMulti(&(p_dev->platform), 0x0, p_dev->temp_buffer, 4);

	if((p_dev->temp_buffer[0] != p_dev->streamcount)
			&& (p_dev->temp_buffer[0] != (uint8_t)255)
			&& (p_dev->temp_buffer[1] == (uint8_t)0x5)
			&& ((p_dev->temp_buffer[2] & (uint8_t)0x5) == (uint8_t)0x5)
			&& ((p_dev->temp_buffer[3] & (uint8_t)0x10) ==(uint8_t)0x10)
			)
	{
		*p_isReady = (uint8_t)1;
		 p_dev->streamcount = p_dev->temp_buffer[0];
	}
	else
	{
        if ((p_dev->temp_buffer[3] & (uint8_t)0x80) != (uint8_t)0)
        {
        	status |= p_dev->temp_buffer[2];	/* Return GO2 error status */
        }

		*p_isReady = 0;
	}

	return status;
}
1 REPLY 1
FB__1
Associate III

We have 

p_dev->temp_buffer[0] streamcount is also 255