2021-06-09 03:35 AM
The PC software for the ST25R3911B-DISCO kit comes with ST25 Tag Editor utility featuring a very useful script tool, however there are very little documentation (not source code given) abou the supported commands.
I am specially looking on how to negociate PPS for 212~848 bitrate for TypeA & B as well as for VHBR.
All I could find was example but no explanation of the parameters:
Best regards,
Solved! Go to Solution.
2021-06-11 06:19 AM
Hello Thierry,
regarding type 4A, here is an example of script for 212 bps:
REM, SET FIELD OFF
ST25R3911B_PROTOCOL_SELECT, 0000
WAIT, 5
REM, SET FIELD ON AND RUN ANTICOLLISION
ST25R3911B_PROTOCOL_SELECT, 02000280
ST25R3911B_ISO14443-A_AnticolSelect123
REM, SEND RATS
ST25R3911B_SENDRECEIVE, E08028
REM, SEND PPS (PPS1=05h 212/212 bps)
ST25R3911B_SENDRECEIVE, D0110528
REM, UPDATE READER BIT RATE
ST25R3911B_PROTOCOL_SELECT, 02500280
REM, SEND ISO7816 SELECT APDU
ST25R3911B_SENDRECEIVE, 0200A4040007D2760000850101A60908
here is the result;
06-11-2021 15:09:14 REM, SET FIELD OFF
06-11-2021 15:09:14 >>> ST25R3911B_PROTOCOL_SELECT, 0000
<<< 0000
06-11-2021 15:09:14 WAIT, 5
06-11-2021 15:09:14 REM, SET FIELD ON AND RUN ANTICOLLISION
06-11-2021 15:09:14 >>> ST25R3911B_PROTOCOL_SELECT, 02000280
<<< 0000
06-11-2021 15:09:14 >>> ST25R3911B_ANTICOLSELECT123
------ ISO14443-A STARTING ANTICOLISION ALGORITHM ------
06-11-2021 15:09:14 ISO14443-A REQA
>>> ST25R3911B_SENDRECEIVE, 2607
<<< 80054403280000
06-11-2021 15:09:14 ISO14443-A ANTICOL 1
>>> ST25R3911B_SENDRECEIVE, 932008
<<< 80088804AD6243280000
06-11-2021 15:09:14 ISO14443-A SELECT 1
>>> ST25R3911B_SENDRECEIVE, 93708804AD624328
<<< 800604DA17080000
06-11-2021 15:09:14 ISO14443-A ANTICOL 2
>>> ST25R3911B_SENDRECEIVE, 952008
<<< 800812AA618059280000
06-11-2021 15:09:14 ISO14443-A SELECT 2
>>> ST25R3911B_SENDRECEIVE, 957012AA61805928
<<< 800620FC70080000
--> UID = 04AD6212AA6180
--> TAG selected
------ ISO14443-A END OF ANTICOLISION ALGORITHM ------
06-11-2021 15:09:14 REM, SEND RATS
06-11-2021 15:09:14 >>> ST25R3911B_SENDRECEIVE, E08028
<<< 800B067777710280BE6A080000
06-11-2021 15:09:14 REM, SEND PPS (PPS1=05h 212/212 bps)
06-11-2021 15:09:14 >>> ST25R3911B_SENDRECEIVE, D0110528
<<< 8006D07387080000
06-11-2021 15:09:14 REM, UPDATE READER BIT RATE
06-11-2021 15:09:14 >>> ST25R3911B_PROTOCOL_SELECT, 02500280
<<< 0000
06-11-2021 15:09:14 REM, SEND ISO7816 SELECT APDU
06-11-2021 15:09:14 >>> ST25R3911B_SENDRECEIVE, 0200A4040007D2760000850101A60908
<<< 8008029000F109080000
Regarding VHBR, as the script tool is based on ST25R95-like commands, I believe the script tool cannot support VHBR (as not supported in ST25R95).
Regarding Tx VHBR configuration with the Debug tab of the GUI, make sure to use NFCB/ISO14443 B mode. Using Tx VHBR with other modes is not supported.
Feel free to give more details about your application and about your use of VHBR. Is it related to interop testing and validation of a 14443A/B Analog Front End supporting VHBR?
Rgds
BT
2021-06-10 08:15 AM
Hi Thierry,
the command set (ST25R3911B_PROTOCOL_SELECT) used in the Tag Editor is inherited from the ST25R95. This is then translated to internal ST25R3916 commands. Thus the documentation is inside the ST25R95 Datasheet §5.4 for protocolSelect parameters.
The PPS message can be send through the ISO14443-A Card Command tab of the Tag editor. Click on "One Tag Anticollision & Selection process" button, then RATS, then PPS button.
The PPS button basically sends the D0 11 00 PPS command:
06-10-2021 17:01:54 ISO14443-A RATS
>>> ST25R3911B_SENDRECEIVE, E08028
<<< 800A0575806002BB58080000
06-10-2021 17:01:55 ISO14443-A PPS
>>> ST25R3911B_SENDRECEIVE, D0110028
The bit rate selection in PPS is done through the PPS1 byte (see ISO/IEC 14443-4 §5.3.3). After the PPS transceive, the bit rate should be updated with protocolSelect.
Note PPS is a T4AT command. For T4BT tags, the bit rate selection is done through param2 of the ATTRIB. See ISO/IEC 14443-3 § 7.10).
Rgds
BT
2021-06-11 05:24 AM
Thanks Brian,
That is very helpful.
By any chance do you know the command to select VHBR, of course after sending the corresponding S(PARAMETER) frame ?
The st25r95 datasheet only display 106~848Kbps
Otherwise, when I am using the Debug tab at 1.7Mbps I always get a ‘Communication Error’ pop-up with an associated ‘[NoMemory]’ error.
It keeps me wondering if VHBR is well supported on this GUI.
I just figured out that VHBR is only supported on typeB.
Regards,
--
Thierry
2021-06-11 06:19 AM
Hello Thierry,
regarding type 4A, here is an example of script for 212 bps:
REM, SET FIELD OFF
ST25R3911B_PROTOCOL_SELECT, 0000
WAIT, 5
REM, SET FIELD ON AND RUN ANTICOLLISION
ST25R3911B_PROTOCOL_SELECT, 02000280
ST25R3911B_ISO14443-A_AnticolSelect123
REM, SEND RATS
ST25R3911B_SENDRECEIVE, E08028
REM, SEND PPS (PPS1=05h 212/212 bps)
ST25R3911B_SENDRECEIVE, D0110528
REM, UPDATE READER BIT RATE
ST25R3911B_PROTOCOL_SELECT, 02500280
REM, SEND ISO7816 SELECT APDU
ST25R3911B_SENDRECEIVE, 0200A4040007D2760000850101A60908
here is the result;
06-11-2021 15:09:14 REM, SET FIELD OFF
06-11-2021 15:09:14 >>> ST25R3911B_PROTOCOL_SELECT, 0000
<<< 0000
06-11-2021 15:09:14 WAIT, 5
06-11-2021 15:09:14 REM, SET FIELD ON AND RUN ANTICOLLISION
06-11-2021 15:09:14 >>> ST25R3911B_PROTOCOL_SELECT, 02000280
<<< 0000
06-11-2021 15:09:14 >>> ST25R3911B_ANTICOLSELECT123
------ ISO14443-A STARTING ANTICOLISION ALGORITHM ------
06-11-2021 15:09:14 ISO14443-A REQA
>>> ST25R3911B_SENDRECEIVE, 2607
<<< 80054403280000
06-11-2021 15:09:14 ISO14443-A ANTICOL 1
>>> ST25R3911B_SENDRECEIVE, 932008
<<< 80088804AD6243280000
06-11-2021 15:09:14 ISO14443-A SELECT 1
>>> ST25R3911B_SENDRECEIVE, 93708804AD624328
<<< 800604DA17080000
06-11-2021 15:09:14 ISO14443-A ANTICOL 2
>>> ST25R3911B_SENDRECEIVE, 952008
<<< 800812AA618059280000
06-11-2021 15:09:14 ISO14443-A SELECT 2
>>> ST25R3911B_SENDRECEIVE, 957012AA61805928
<<< 800620FC70080000
--> UID = 04AD6212AA6180
--> TAG selected
------ ISO14443-A END OF ANTICOLISION ALGORITHM ------
06-11-2021 15:09:14 REM, SEND RATS
06-11-2021 15:09:14 >>> ST25R3911B_SENDRECEIVE, E08028
<<< 800B067777710280BE6A080000
06-11-2021 15:09:14 REM, SEND PPS (PPS1=05h 212/212 bps)
06-11-2021 15:09:14 >>> ST25R3911B_SENDRECEIVE, D0110528
<<< 8006D07387080000
06-11-2021 15:09:14 REM, UPDATE READER BIT RATE
06-11-2021 15:09:14 >>> ST25R3911B_PROTOCOL_SELECT, 02500280
<<< 0000
06-11-2021 15:09:14 REM, SEND ISO7816 SELECT APDU
06-11-2021 15:09:14 >>> ST25R3911B_SENDRECEIVE, 0200A4040007D2760000850101A60908
<<< 8008029000F109080000
Regarding VHBR, as the script tool is based on ST25R95-like commands, I believe the script tool cannot support VHBR (as not supported in ST25R95).
Regarding Tx VHBR configuration with the Debug tab of the GUI, make sure to use NFCB/ISO14443 B mode. Using Tx VHBR with other modes is not supported.
Feel free to give more details about your application and about your use of VHBR. Is it related to interop testing and validation of a 14443A/B Analog Front End supporting VHBR?
Rgds
BT