2020-06-13 07:00 AM
The LIS331DLH language is slightly different regarding the SA0 function, compared to the LIS331DL. The LIS331DL datasheet explicitly states that the SDO pin can be left floating and SA0 will be treated as a '1': "The slave address (SAD) associated with the LIS331DL may be selected from the two predefined values 0011100b or 0011101b depending on the logic level present on the SDO pin. Specifically, if the SDO pin is either connected to Vdd_IO or left unconnected, the slave address is 0011101b. Otherwise, when it is connected to GND, the slave address is 0011100b. When placing two sensors on the same bus is not required, it is recommended to use slave address 0011101b by either connecting the SDO pin to Vdd_IO, or leaving it floating."
The LIS331DLH datasheet removes the explicit language, but still notes "When no communication is on-going, data on CS, SPC, SDI and SDO are driven by internal pull-up resistors". As I would like to use LIS331DLH on boards designed around the LIS331DL, I need to know explicitly whether leaving SDO floating will prevent the device from operating correctly.
What is the SA0 behaviour of LIS331DLH with floating SDO pin?
2020-06-17 09:38 AM
Hi @Pauline , to answer your last question:
>> What is the SA0 behaviour of LIS331DLH with floating SDO pin?
As stated in the datasheet p. 11:
>> 3. When no communication is on-going, data on CS, SPC, SDI and SDO are driven by internal pull-up resistors.
This means that the SA0 value will be 1 (high). However, since the internal pull-up are weak, it is always better to drive the pin with the uC / application processor, for example to avoid any ESD effect.
Regards