Hi,
we have similar problem related to this topic. We have developed our own boards which are using PN532 RFID controller and now we have the need to connect multiple boards of ours together for some project, so we need to change I2C address for some PN532 controllers to be able to use them all of them in the same time. Now, like @shaharc1994 we are having problems changing slave I2C address. We also have this Adafruit module we used to test PN532 controller during our own board development. We tried changing I2C address on both, Adafruit module and our board and the results are the same.
The problem we have is that we are able to successfully change content of I2CADDR (0xDB) register but unlike for @shaharc1994, PN532 on our boards and Adafruit module does not save content of I2CADDR register across reboot. When we write new I2C address to this register, we can read it until we reboot the controller. And, like for @shaharc1994, PN532 controller responds only on default I2C address (0x48) in any situation, after I2CADDR register content change and after reboot.
We have developed Java software, as per controller datasheet, to communicate to PN532 controllers from Raspberry Pi during our testing and I can confirm that RAW communication data looks to be totally correct, as per datasheet. I can provide this data if needed. Firmware version of PN532 controllers is 1.6 on both, Adafruit module and our own boards.
Is there any way or some special procedure or settings (software or hardware) we need to do to successfully store new slave I2C address into register and use it afterwards? And is I2CADDR register of any real use at all for this usecase?
Thank you in advance!