2019-12-03 02:01 PM
1) How to configure ST25R3916 in Transparent Mode for Passive Target/Active Target for ISO14443A/B and ISO15693 TX coding & RX decoding (Datasheet §2.2.12 & §2.2.13) ?
1-1) How to configure Transparent Mode in Passive Target for ISO14443A/B, ISO15693 and so directly configure the modulation of transmitter (for TX coding on MOSI pin) and digitized subcarrier configuration (for RX MISO pin) ?
1-2) How to configure Transparent Mode in Active Target for ISO14443A/B, ISO15693 and so directly configure the modulation of transmitter (for TX coding on MOSI pin) and RX decoding "digitized subcarrier configuration" (on RX MISO pin) ?
2) Can we switch from Passive Target to Active Target without exiting Transparent Mode ? (or does it is required to exit Transparent Mode set some registers to switch Passive/Active, Configure TX coding/RX decoding... then re-enter Transparent Mode ?
Update 09 Dec 2019:
New datasheet DS12484 Rev 2 has been released today with lot of improvements but those questions related to Transparent Mode with Passive/Active Target are not answered in it, so all the questions are always open and it will be nice to have answer and why not a specific Application Note to have clear description for those advanced mode with lot of details.
Best Regards,
Benjamin
Solved! Go to Solution.
2019-12-19 04:19 AM
Hi Benjamin,
using MCU_CLK in this way should work. We had a demo in the past with some predecessor chip which used the same/similar approach using a different MCU.
As I said: Perform analog configs as defined in rfal_analogConfigTbl.h and used by the rfalSetMode(). Then set the wanted operation mode (Operation Control and Mode registers) (Active Target/Initiatior, Passive Target/Initiator) and enter Transparent mode. It would probably be a good idea to let rfalSetMode() do its job and after that instead of calling rfalStartTransceive() you call your own functions which make use of the transparent mode.
Please note that that if you have set dis_corr=0 you will not have the envelope as in ST25R3911B but actually the digitized correlator signal. Which if you want to decode various protocols with different subcarrier signals will not be of use for you.
Also you need to choose one filter setting which may actually not give you the best performance for all protocols at the same time.
Regards, Ulysses
2019-12-17 02:07 AM
Hi Benjamin,
Let me first ask you what you are actually pursuing. To our knowledge all protocols can be implemented by using normal / stream modes. Do you really need transparent mode?
Using transparent mode is a rather seldom use case, this mode is typically only used for prototyping inside our labs. We only have internal documentation on it which is not in a state that we can actually share it.
Transparent mode (similar as in ST25R3911B) allows to have all necessary modulation and demodulated signals available on ins MOSI (modulation), MISO, IRQ (both demodulated), SCLK (receiver enable), MCU_CLK (extracted clock), EXT_LM (field detector) as digital signals. The configuration of the current modulation/demodulation/field detector parameters is done by configuring the registers. Of course accessing registers to change any of these parameters will cause leaving the transparent mode. You should set all the analog / operating parameters as you would also do for non-transparent mode.
Regards, Ulysses
2019-12-17 11:48 PM
Hi Ulysses,
Yes I really need transparent mode (or stream mode in best case), the use cases are numerous:
1) Use ST25R3916 as passive sniffer (to capture TAG & Reader) for debug, R&D and to check Reader/TAG compliance with different standards.
2) Use ST25R3916 in Emulation mode for ISO15693 (which is not possible in normal mode as it is not supported).
3) Use ST25R3916 in Emulation mode for non standard tags ISO144443A... (Example Mifare or other Custom Tags).
The idea is exactly to configure the ST25R3916 for low level modulation and demodulation with MOSI/MISO pins... (for that I'm using a fast STM32 > 100MHz with fast GPIO > 80MHz and I even plan to switch to latest STM32H7 Dual Core to have a big margin to do everything in software only).
It is why I need details on registers usage for those use cases, for the configuration of registers for Active Target/Passive Target and the configuration of the modulation/demodulation/field detector/filters/AGC/Squelsh... parameters.
Best Regards,
Benjamin
2019-12-18 12:32 AM
Hi Benjamin,
such applications typically require some dedicated hw like an FPGA or at least a feedback from the MCU_CLK to the MCU to be able to drive signals in a synchronous way. I am not sure simple bit-banging on an MCU will suffice.
For all the analog parameters: They are the same as for normal mode. Just extract them from our software deliveries (rfal_analogConfigTbl.h). AFAIK Squelch is not available but could be triggered from normal mode. AGC should work as configured.
Regards, Ulysses
2019-12-18 10:37 AM
Hi Ulysses,
I'm working on NFC since few years doing all from scratch on MCU (STM32) + NFC chipset (Reader Passive/Active).
I'm not doing bit-banging in fact as I'm using MCU SPI slave (DMA with FIFO...) for the streaming RX or TX with ST25R3916 Transparent Mode (in case ST25R3916 stream mode is too limited for example to capture both Reader & Tag as a Passive Target...).
I have produced few prototypes boards with ST25R3916 on Aug 2019, and I'm designing a new revision to add other features like CSI / CSO to validate analog and digital output thanks to latest ST25R3916 Datasheet DS12484 Rev 2 update.
So it will be very welcome if you could provide more details on the register(s) related to low level stuff especially Active Target and Passive Target in Transparent Mode:
Best Regards,
Benjamin
2019-12-19 04:19 AM
Hi Benjamin,
using MCU_CLK in this way should work. We had a demo in the past with some predecessor chip which used the same/similar approach using a different MCU.
As I said: Perform analog configs as defined in rfal_analogConfigTbl.h and used by the rfalSetMode(). Then set the wanted operation mode (Operation Control and Mode registers) (Active Target/Initiatior, Passive Target/Initiator) and enter Transparent mode. It would probably be a good idea to let rfalSetMode() do its job and after that instead of calling rfalStartTransceive() you call your own functions which make use of the transparent mode.
Please note that that if you have set dis_corr=0 you will not have the envelope as in ST25R3911B but actually the digitized correlator signal. Which if you want to decode various protocols with different subcarrier signals will not be of use for you.
Also you need to choose one filter setting which may actually not give you the best performance for all protocols at the same time.
Regards, Ulysses
2020-01-12 04:27 AM
Hi Benjamin,
Have you succeeded in operating the the ST25R3016 as card emulation in transparent mode? I have been trying for several days following Ulysses recomendations with no luck, seems I am missing something here. I can receive pretty well at the MISO pin but I cannot trasmit through the MOSI anything. Appreciate your help very much.
Best regards,
Ihab
2020-01-12 09:06 AM
Hi Ihab,
So far I have not implemented/tested ST25R3916 "Transparent Mode" as I'm finishing the latest PCB revision (including latest features of latest datasheet DS12484 Rev 2) and working on the firmware too (with standard features like Reader ...)
I have already validated my different PCB revision with ST tools
It will be interesting your provide some details picture/capture to check you are in the right mode "Transparent Mode" with Logic Analyzer traces in parallel to Oscilloscope Traces (500MSPS@8bits) to check the effect on MISO/MOSI.
I'm using a PicoScope 3406DMSO for such advanced traces with the help of my own Calibration Coil (0.5x72x42 ISO/IEC 10373-6:2016) ...
I'm also using cheap Logic Analyzer with PulseView for the SPI analyze (with my own sigrok/plugin to be released as open source)
Thanks to provide PulseView traces/Picture+Oscilloscope to check what happen (as anyway I plan to work on that in February)
Note: I will publish later (when my ST25R3916 boards are finished/produced/available) my firmware as open source firmware on github when something will be ready so you are welcome to contribute.
Regards,
Benjamin
2020-01-14 03:14 AM
Hi Benjamin,
Thanks for your offer to help. I managed to find the problem, for some reason, I forgot to enable the automatic field detection (least two bits in the Operation control register) before initiating the communication as target. I will add some captures when I sort out all issues, yet having some minor issues.
Regards,
Ihab
2020-01-21 11:21 PM
It will be interesting to share it with some captures (Sigrok/PulseView+Scope capture..) as it is clearly what is missing on this chipset a good Application Note with some capture of such modes with Oscilloscope + sigrok/pulseview files (we can even have oscilloscope and SPI data in PulseView now) as the registers configurations are quite complex to debug.