Fundamental ST25DV64 Register Write problems
Am in the infancy of a proof-of-concept investigation with ST25DV64. I have been able to do some read/writes with NFC without issue - and am working on the i2c side.
We are working with a custom/proprietary system/i2c stack so I don't have much off-the-shelf code to fall back on, but I've written what seems to be a proper implementation of the basic register read/write protocols outlined in ST25DV64 datasheet - and they MOSTLY work.
I can read the NFC NDEF data via i2c from registers at i2c address 0x53, device addresses 0 - 32.I am also getting what appears to be valid Dynamic Configuration registers via device 0x53 register addresses 0x2000-2007 as such:
2000: 88 ff 08 00 00 00 00 00
Which seem to be a valid representation of the initial state of these registers. I can also write and modify one of the GPO bits and read it back
But here's where things get weird:
If I write like an 0x08 to location 2000 - it seems to turn off the high 8 bit. But If I write a 0xff I read back an 0x88. If I write a 0x00 - I always get a 0x08. In other words - I only seem to have control of the high bit in this register.
Write to 0x2002 or 0x2003 will get acked back - but 0x2006 does not.
I can verify with the i2c decoder on my scope that at least the scope believes the signals are good, and I have bumped the I2C speed up and down orders of magnitude (and although at some levesls this stops working) - this specific behavior of these registers remain unchanged.
From what I can tell - these are the first registers that I should be writing to enable other functionality in other registers.
Is there a signaling problem here, or an I doing something complete wrong?
