2025-02-05 06:40 AM
Hi All,
I'm working on implementing the fast transfer mailbox into a project and I've hitt a wall. The work-flow that I want is for my host chip to wake-up and initialize system registers and write some static data I know will never change to area1, then enable the authorization of the mailbox by writing MB_MODE to 0x01 and wait for an RF FIELD ON event (via GPO pulse), after receiving the pulse the host should free the mailbox by writing 0x01 to the MB_CTRL dynamic register and then write some new data to the mailbox.
The host successfully writes to the system register and first disables the MB_MODE (system register) so that It can write some static NDEF data to area1 and then re-enables the mailbox at the end of initialization (writing MB_MODE to 0x01). I can confirm by reading with a mobile device and using the ST Tap app that the MB_MODE register is set to 0x01, which as far as I can tell means that I should be able to write from either i2c or an RF command to the MB_CTRL dynamic register a value of 0x01 to free the mailbox and write data to the mailbox register without an DATA_NACK. However when I write to the MB_CTRL register from i2c the command is ACK'd but i don't see the value change when I read the device with the mobile device. If i try writing the register with an RF command from the mobile device i see the value change and it appears that the mailbox is free but I can't get the same thing to happen via I2c command. Am I missing something ?
Any and all help appreciated,
Patrick
2025-02-05 10:10 AM
worth noting that I realized shortly after writing this that I was working from the ST25DVXXK data sheet and not the ST25DVKC datasheet which is the part that I actually have. I have corrected that aspect of the code but I'm still failing to enabled the mailbox via the dynamic register