2021-05-12 01:50 PM
Hi. We are using the RFAL implementation for ST25R3916, with I2C communication. We have a custom board and antenna. We are using the Polling tag detect demo app to do passive NFC-A detection. I have disabled automatic antenna tuning and set the I2C parameters in the IO configuration registers, through the custom analog config file.
The problem is we cannot detect any tags. I2C communication and interrupts seem to work, initialization goes well and there are no obvious error events when debugging. I suspect it is some register configuration I have missed. But there are a lot of configuration registers and I am not sure which ones are relevant for me to look at. Can you give me some guidance?
We always get ERR_TIMEOUT in the call to rfalTransceiveBlockingRx() with the following call stack
rfalTransceiveBlockingRx()
rfalISO14443ATransceiveShortFrame()
rfalNfcaPollerCheckPresence()
rfalNfcaPollerTechnologyDetection()
rfalNfcPollTechDetetection()
rfalNfcWorker()
demoCycle()
My questions are:
1. What configuration registers are relevant for me to look at?
2. Do you recognize this and have some advice?
Thank you.
Solved! Go to Solution.
2021-05-13 04:10 AM
Hi KElfs.1,
the complete list of registers, required e.g. for NFC-A are inside the analog config. My expectation is that those should work out of the box also on your board. Please make sure to call rfalAnalogConfigInitialize() before rfalInitialize() and make sure the existing default configs are intact and not overwritten.
I would maybe first go and do cross-connects: Verify your software by cross-connecting to e.g. X-NUCLEO-NFC06/MB1414-B and verify your board by cross-connecting to ST25R3916-DISCO or NUCLEO-L476 (with X-CUBE-NFC6).
Typically also a logic analyzer trace (SPI + IRQ) will tell a lot.
Best Regards, Ulysses
2021-05-13 04:10 AM
Hi KElfs.1,
the complete list of registers, required e.g. for NFC-A are inside the analog config. My expectation is that those should work out of the box also on your board. Please make sure to call rfalAnalogConfigInitialize() before rfalInitialize() and make sure the existing default configs are intact and not overwritten.
I would maybe first go and do cross-connects: Verify your software by cross-connecting to e.g. X-NUCLEO-NFC06/MB1414-B and verify your board by cross-connecting to ST25R3916-DISCO or NUCLEO-L476 (with X-CUBE-NFC6).
Typically also a logic analyzer trace (SPI + IRQ) will tell a lot.
Best Regards, Ulysses