LPS22HH I3C Address Assignment Collision
I'm working on a new design requiring four pressure sensors. The LPS22HH only allows two I2C address's through pin 5. Rather then increase complexity by putting all four on SPI I wanted to see if I could use the I3C bus capability. The datasheet refers to the dynamic addressing and SETNEWDA(0x88) command from the I3C spec but never directly refers to the ability to dynamically address the device.
I'd like to know if this capability does indeed exist? or if I3C is only implemented in that the sensor will work on the bus but only with its static I2C address? or if I3C dynamic addressing is implemented but there is no distinct instance ID to positively ID each sensor connected to the I3C bus?
If the capability does not exist is there any plan for future revisions of this product to allow for programming I2C addresses or full implementation of I3C dynamic addressing?
For background,
When I3C attempts dynamic address assignment it checks the manufacturer ID and part number, then the instance ID. Looking through the datasheet the I3C specified read only bus control register and device characteristic register are not defined. It seems only the read only Who_am_I register would be acting as the device characteristic register. Nor is there is a register for any assigned dynamic ID.
The 7bit I3C address should be assignable regardless of the original static I2C address. However in order to differentiate between duplicate sensors the device should have a 48 bit non-volatile provisional ID. The 4 bits 15:12 would have the instance ID (which would theoretically be sequential down the reel), allowing for up to 16 devices on one I3C bus to be positively identified by the master before dynamic addressing can't positively ID individual sensors. Bits 11:0 are also allowed in the spec to be used to positively ID each instance when assigning
Thank you
Alex
