Having difficulties loading/reading FIFO of ST253911B
Edit: I solved the problem, it was my own fault! The Operation Control Register's bit 7 was set to 0 when it should have been set to 0. Thanks!
--------------------------------------------------------------
Hello all,
I am working with the ST25R3911B discovery board (ST25R3911B-DISCO) and am attempting to directly interface the ST25R3911B IC with an Atmel microcontroller (in this case, and Arduino Uno).
Over SPI, I can read and write the registers of the ST25R3911B with no issues, I can even send direct commands. The ST25R3911B reacts/responds to my actions as I would expect it to.
The issue I have ran into is that I am simply unable to read or write to the FIFO. This is confusing because, in principle, it is a very similar operation to reading/writing the register. The only difference to the microcontroller is that the Mode Bits and 'trailer' it transmits are different. Refer to page 33 of the ST25R3911B to take a look at that detail.
After trying to write to the FIFO, the 'FIFO Status Register 1' (refer to page 97) does not change; it always reads zero. This indicates that I did not actually write anything to the FIFO.
Further, after trying to read the FIFO, bit 6 of the 'FIFO Status Register 2' does not change (nor does bit 5, not that it should though). This indicates that no data was actually read from the FIFO.
So I can't read or write to the FIFO, but registers and direct commands are fine. Due to this, I don't think my problem involves my SPI settings or my microcontroller.
I think it could be two things:
- There is a detail in the spec sheet I missed, such as a config register that needs to be written before interacting with FIFO
- Something else on the discovery board is interfering, I say this because I had to solder (permanently close) the reset button to the STM32 included on my discovery board. I believe the STM32 on the discovery board handles the serial communication when you connect the board to a PC over micro-usb. I don't need that so I keep it sleeping; otherwise the STM32 seems to automatically communicate over SPI to the ST25R3911B and my microncontroller can't talk to the ST25R3911B. But why wpuld a supposed interference only affect FIFO? I don't think it is the case.
Any ideas what might be behind this?
Thanks much,
Simon R.
