MB_CTRL_Dyn=0x47 what is happening?
Hi
I have been playing with ST25DV04k SOT8 for a while. My team is trying to use the FTM to transfer sensor data from MCU to android phones. The protocol can be summarized as
- phone initiates a data transfer session by writing to the mailbox
- MCU get the interrupt, read request, return the TLV of sensor data to be transmitted
- phone write ACK response to the mailbox
- MCU get the interrupt and read the mailbox
- MCU puts the first 255 bytes of data
- phone Read the mailbox after 10ms (This time period is tested to be sufficient)
- phone write ACK response to the mailbox
- ...................................
- phone Read the last piece of sensor data
The bug comes when MCU is trying to put 255 bytes of data to the mailbox. It happens with a probability. So, I connect a logic analyzer to I2C and find out some mailbox writes are not ACKed, thus denied by ST25DV. Then I check the MB_CTRL_Dyn before sending out 255 data. The value is 0x47, which indicates that both RF_PUT_MSG and HOST_PUT_MSG are 1. Ideally, they should both be 0 right?
I then thought OK maybe the chip is broken, so I replaced one. But it behaved identically.
I am so puzzled...
Yuechuan Lin
