How to differentiate inertial sensors with the same WHO_AM_I register value?
Hello,
I need to use the WHO_AM_I register value to differentiate between some inertial sensors, but I've realized that this value is the same across some products.
Example:
ISM330DLC and LSM6DSM shares the same 01101010 WHO_AM_I value.
LSM6DSO and LSM6DSO32 shares the same 01101100 WHO_AM_I value.
In the first case, ISM330DLC and LSM6DSM, it seems to not be a major issue, other than the impossibility of knowing exactly what part is mounted on a board. As far as I've seen, all the registers and configurations are the same across the two options.
However, for LSM6DSO and LSM6DSO32, this is a problem. It is not possible to know what exact part is mounted on a board using this info, and each part need some specific register values (setting the accelerometer full-scale is the most obvious difference).
Just to provide some context: we're developing a board with some inertial sensors footprints, and we'd like to have some flexibility in our BOM to deal with components shortages and price increases. It should be up to the firmware to detect what sensor is mounted on the PCB, and configure it accordingly.
Is there any other way to differentiate between these sensors other than the WHO_AM_I register?
