I use a dsPIC33 MCU, but I am very familiar with the STM32 as well, so I used the ST25R Dicovery source code as an example.
The design is a PIC MCU and the ST25R3911B, (with our antenna circuitry following ST design suggestions). I have the SPI port communication working well, and I can read/write to the ST25R registers from the MCU.
1. I currently call the initialization at power up (rfalAnalogConfigInitialize() and rfalInitialize()), with gets completed without errors.
2. I now need to know what is the sequence of commands needed to talk to a tag. We can talk to the tag (read/write) from the ST25R Dicovery PC GUI without problems, but I am not sure which commands need to be sent to achieve that in the embedded code, because I don't know the exact sequence of commands needed. Here's what I do when I want to discover a tag placed on the antenna:
a. I call iso15693Initialize() ... no error. (trying to imitate the "Configuration" button click on the PC GUI)
b. I call rfalFieldOnAndStartGT() ... no error. Do I need this????
c. And trying to imitate the "Inventory" button click on the PC GUI, I call iso15693Inventory() ... but the code gets stuck in rfalTransceiveRunBlockingTx() in this statement: while( ((ret = rfalGetTransceiveStatus() ) == ERR_BUSY) && rfalIsTransceiveInTx() ); ... it's forever waiting at RFAL_TXRX_STATE_TX_WAIT_GT state.
Also, I have rfalWorker() in my main loop in main.c
Am I missing a command in my sequence?
Or maybe, does it mean it needs the tag closer? Is the antenna not turned on? Is it potentially a hardware problem with our antenna circuitry?
After that is achieved, I realize I still have to try to imitate "Get System Information", "iso15693ReadBlock" for reading blocks, "iso15693WriteBlock", etc, etc
But am I missing anything so far just to initialize the device and then get an "Inventory"? (before calling iso15693Inventory())