Skip to main content
Visitor II
June 9, 2021
Solved

ST25 Tag Editor Script Tool: How to perform PPS for higher bitrate & VHBR

  • June 9, 2021
  • 3 replies
  • 938 views

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:

  • Example: Select ISO8092 RF protocol Tx=212k / Rx=212k >>> ST25R3911B_PROTOCOL_SELECT, 0451100500
  • Example: Select ISO14443-B RF protocol Tx=106k / Rx=106k >>> ST25R3911B_PROTOCOL_SELECT, 03010180
  • Example: Select ISO14443-A RF protocol Tx=106k / Rx=106k >>> ST25R3911B_PROTOCOL_SELECT, 02000280
  • Example: Select ISO15693 RF protocol High Data rate 100% >>> ST25R3911B_PROTOCOL_SELECT, 0109

Best regards,

    This topic has been closed for replies.
    Best answer by Brian TIDAL

    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

    3 replies

    Technical Moderator
    June 10, 2021

    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

    TFisc.3Author
    Visitor II
    June 11, 2021

    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

    0693W00000Bak9FQAR.png 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

    Technical Moderator
    June 11, 2021

    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