2021-01-06 02:20 AM
I'm using a X-NUCLEO-NFC03A1 board with a NRF52 as host controller. I'm able to read/write commands and set the chip to WFE mode with Tag Detection and IRQ pulse as WU sources.
Now I'm setting it to hibernate and, as far as I understood from the datasheet, it should go from hibernate to active state only by setting the IRQ_OUT pin to low state, and then I'd be able to read the chip response that should return the WU source as IRQ pulse (0x000108).
However, I seem to be unable to use the chip once it's back from hibernate state, and it only works again after I send a RESET command. I found this strange as the startup sequence shows it differently. Is this correct or am I doing something wrong?
ps. I also get 0x0000 as a first response from the chip, which is also strange as it is not mapped as a valid response in the datasheet for an IDLE command.
Solved! Go to Solution.
2021-01-07 05:22 AM
Hi,
here are some clarifications of the Idle command behavior.
The Idle command does not return a reply in case of low pulse IRQ_IN wake up.
In the X-CUBE-NFC3 firmware code:
Rgds
BT
2021-01-06 05:03 AM
Hi,
I have some questions to better understand your issue:
Rgds
BT
2021-01-06 06:12 AM
Hi Brian,
Thanks for the quick response!
First lemme answer your questions:
I found out that it's not the RESET command that is waking it up, but the IRQ_IN inside of it as expected (yay)
BUT (there's always a but) I also noticed that right after sending a IDLE-hibernate command, the chip sets the IRQ_OUT to low and replies with that 0x00 00 hex. I assumed this was a confirmation that it went to hibernation, but this is not stated in the datasheet...
My mistake was that I was expecting this response (thus my semaphore was waiting for a low IRQ_OUT) only after waking up, and it was also expecting a 0x00 01 08, and not 0x00 00<anything else>.
Thanks again!
2021-01-06 07:04 AM
Hi,
in §5.9.4 of the Datasheet it is stated that "The wake-up flag value is NOT significant when returning to Ready state from hibernate state or after a POR" , therefore I guess the device does return 0x00 00 when returning from hibernate state. I'll do some experiments to confirm this behavior and will ask a datasheet update to clarify this behavior.
The reply to the Idle command occurs:
I suspect that the IRQ_IN may be somehow floating and causing premature exit from WFE. Do you have a 3.3kOhm pull up resistor on the IRQ_IN signal? See R12 resistor in schematics in UM2479. Can you probe IRQ_IN, IRQ_OUT and SPI signals with a logic analyzer and send me the trace?
Thanks
Rgds
BT
2021-01-07 05:22 AM
Hi,
here are some clarifications of the Idle command behavior.
The Idle command does not return a reply in case of low pulse IRQ_IN wake up.
In the X-CUBE-NFC3 firmware code:
Rgds
BT
2021-02-22 03:37 AM
Hi,
Sorry for the delay. I had managed to solve this issue by setting the power up sequence delays exactly as in the datasheet (I had set with a bit of margin before).
Apart from this, it works as Brian described in the previous answers.