2021-07-05 08:37 AM
I run the linux demo for X-NUCLEO-NFC06A1 in a raspberry. It starts "Scanning for NFC technologies...", I pass an empty nfc tag to the module and it does not recognize it. I can see the state in demoCycle() passing from state=1 to state=2 (DEMO_ST_DISCOVERY) and it stays there. No interrupt signal in the logic analyzer. I have changed SPI_MAX_FREQ to 600000 if it matters.
I expected an interrupt on tag detection. What are the configurations to do that?
Solved! Go to Solution.
2021-07-06 03:43 AM
Hi,
INT pin seems to stay at constant high. So I assume it to be not connected or something.
In case of sharing traces maybe you can use the original logic analyzer format which allows easier decoding of SPI bytes. All logic analyzer I have seen so far provide a GUI which can be used to open the files without additional license.
Please find attached also an updated readme which details how to free the CE pin on newer SPI driver/raspbian version. But I guess you have done the same by now.
Best Regards, Ulysses
2021-07-06 12:57 AM
Hi,
as the interrupt pin is connected to a different GPIO compared to one used in the firmware package, can you check that ST25R_INT_PIN is defined according to your setup?
Also, can you define ST25R_SELFTEST and check that interrupts are correctly received during st25r3916Initialize() ?
Which tag (manufacturer model) do you use? Can you check that you can read this tag with an NFC enabled smartphone so that we can check the tag is not broken?
Can you provide a logic analyzer trace (SPI CLK/MOSI/MISO/CS + ST25R3916 IRQ)?
Rgds
BT
2021-07-06 02:48 AM
Hello,
I disabled raspberry's CE1 so now I am using the demo unmodified with the exception of the SPI_MAX_FREQ 600000. IRQ is connected to physical pin 26, GPIO 7 in the code (default).
The tag is NXP ntag stickers, I don't know exact model. it is detected by a smartphone as empty tag.
With ST25R_SELFTEST I can see the commands to the registers but no change in interrupt pin. gpio command reports the pin as IN, logic level 1.
In gdb, st25r3916Initialize() returns ERR_TIMEOUT. This condition:
while( ( !platformTimerIsExpired( tmrDelay ) || (tmo == 0U)) && (status == 0U) );
enters with tmo=12, platformTimerIsExpired() returns 0, and status=0.
I attach the trace in .csv.
2021-07-06 03:43 AM
Hi,
INT pin seems to stay at constant high. So I assume it to be not connected or something.
In case of sharing traces maybe you can use the original logic analyzer format which allows easier decoding of SPI bytes. All logic analyzer I have seen so far provide a GUI which can be used to open the files without additional license.
Please find attached also an updated readme which details how to free the CE pin on newer SPI driver/raspbian version. But I guess you have done the same by now.
Best Regards, Ulysses
2021-07-06 06:07 AM
Hello, problem solved: I had not connected IRQ_MCU to CN5 on the module, so I had no interrupt at the pin.
Thank you Ulysses.