cancel
Showing results for 
Search instead for 
Did you mean: 

I2C of VL53L1

vishnusf
Associate II

HI,

I am using VL53L1 sat board, can i configure I2C of the sensor to 1MHz? How should i do it? Could u please guide me on this matter?

Thank you

1 REPLY 1
John E KVAM
ST Employee

First we have two VL53L1 parts, and they are sligthly different as to which code they run. 

But either way when you download the API code, there will be examples. 

In main.c of the examples there is a bit of code:

* I2C1 init function */
static void MX_I2C1_Init(void)
{

  hi2c1.Instance = I2C1;
  hi2c1.Init.ClockSpeed = 100000;
  hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;
  hi2c1.Init.OwnAddress1 = 0;
  hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
  hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
  hi2c1.Init.OwnAddress2 = 0;
  hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
  hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
  if (HAL_I2C_Init(&hi2c1) != HAL_OK)
  {
    Error_Handler();
  }

}
Just change that:
hi2c1.Init.ClockSpeed = 100000;
to:
hi2c1.Init.ClockSpeed = 1000000;
 
It's just the one line.
 

If this or any post solves your issue, please mark them as 'Accept as Solution' It really helps. And if you notice anything wrong do not hesitate to 'Report Inappropriate Content'. Someone will review it.