Hello. I have a board with a PN5180 chip, ordered on Aliexpress (for example). I have the following problem.
When I sending the RATS command to PICC, the RX_STATUS register displays an incomplete number of returned bytes. It can be 0x05, 0x07, 0x0A, when the correct value is 0x13.
During the experiment, I noticed that if you leave a pause for a few milliseconds before starting the RX_STATUS register reading function and only then read the register, the correct number of bytes received will return - 0x13.
I notice this behavior only in commands to which PICC returns long responses. That is, the correct value will be returned by RX_STATUS to the ATQA command both with and without a pause, and the correct number of bytes will be returned to the RATS command only after a pause.
It turns out that the chip does not process the data immediately after receiving it and it needs time to process them? Then how can I track the state of readiness for reading the RX_STATUS register and data?
Maybe this can be found using another register, for example, IRQ_STATUS? Maybe the developers of the PN5180 have accurate data about how long the pause should last for the chip to have time to process the data?
If you need clarification on my question, please specify. I need a solution that is based on the requirements of the chip, and not on some random guesses, because I need the maximum performance of the chip.
Thanks!