TLDR version: My question is this:
Is there a way of telling from reading the registers whether the device is an ADXL355 or an ADXL357?
Hi, I have an application where I may fit either an ADXL355 or an ADXL357, due to different range requirements. I would like to identify the part type in software if possible, so that i can set up the appropriate scaling.
Looking through the ADXL355 data sheet, the PARTID register (Device ID, address 0x02) contains "355" in octal (0xED). This filled me with hope that the ADXL357 would have "357" (0xEF) in the PARTID register, but alas it also contains "355"! A quick read of the parts I have shows that this is accurate (I was hoping for a typo in the datasheet), so I presume the two parts just use the same ASIC.
My question is this:
My fall back is to use the total acceleration field on power-up (when the device is stationary) to work out the scale factor and select the code appropriately. If there is a simple register I can read, this would be far more preferable.
I am asking myself the same question but I would like to find a workaround that does not depend on external conditions.
According to the datasheet, output change is 1.5g on Z axis for both ADXL357 and ADXL355. And in self-test mode, externally applied accelerations are rejected.
I am already using self-test features for ADXL355 and I am thinking of having hardware fit options (355 or 357) without changing the software.
Did you try to use the self-test feature on ADXL357?