Skip to main content
Visitor II
April 23, 2021
Solved

st25R3911.dll complete SendReceive function

  • April 23, 2021
  • 3 replies
  • 1663 views

We are using your board ST25R3911B but we need to use this board by program in c/c++. 

We found your DLL demo, but is it possible to send only first command to comunicate with ISO14443 type A like RQA/ANTICOLL/SEL and not a send and receive generic, as described in your TAG25 editor, to write or read eventually a NDEF file. Please where I can download a dll that include also send and receive.

BR

Andrea

    This topic has been closed for replies.
    Best answer by Ulysses HERNIOSUS

    Hi Andrea,

    short frames cannot be sent using this function. For this you can use either the legacy functions iso144443aSelect() for performing full anticollision or the newer functions of RFAL (more low level, you need to send every AC frame by hand): rfalStartTransceive/GetTransceiveStatus.

    Regards, Ulysses

    3 replies

    Technical Moderator
    April 23, 2021

    Hi Andrea,

    in ST25R3911DISCOComm.h you find all the functions. I think txrxBytes() is what's used by ST25 TagEditor. There are also functions rfalIsoDep* which offer an APDU interface relying on a full ISODEP implementation in firmware.

    When you install ST25R39111B_DISCO GUI it will also install VisualStudio projects showing usage of the isodep interface.

    Regards, Ulysses

    asant.1Author
    Visitor II
    April 23, 2021

    Hi Ulysse,

    you mean in the file ST25R3911DISCOComm.h this "APIENTRY txrxBytes "? I will try to use that .

    But rfalIsoDep I don't understand what you mean.

    Regards,

    Andrea

    Technical Moderator
    April 23, 2021

    Hi Andrea,

    yes, the same function.

    ISODEP will become relevant to you if you want to read/write NDEF from NFCForum T4T which are based on a smart card interface. The data link layer has various names: ISO14443-4, T=CL, ISODEP, etc.

    You should have a C:\Program Files (x86)\STMicroelectronics\ST25R3911B_Discovery_GUI\Dll3911_Demos.sln. In that project you should find an Demo_IsoDep.cpp which shows the usage.

    Regards, Ulysses

    asant.1Author
    Visitor II
    April 27, 2021

    Dear Ulysse,

    I've tried to use the API as below

    example:

    char rx[128]; 

    size_t rxsize[128]; 

    unsigned int us[128];

    char toTx[12];

    toTx[0] = 0x26;

    txrxBytes(Handle, toTx, 1, rx, rxsize, us);

    but doesn't working,

    how can I do a REQA =0x26( at 7 bit) and a select =0x93 0x20 ?

    Thanks in advance

    Andrea

    Technical Moderator
    April 27, 2021

    Hi Andrea,

    short frames cannot be sent using this function. For this you can use either the legacy functions iso144443aSelect() for performing full anticollision or the newer functions of RFAL (more low level, you need to send every AC frame by hand): rfalStartTransceive/GetTransceiveStatus.

    Regards, Ulysses