Skip to main content
asant.1
Associate
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

Ulysses HERNIOSUS
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.1
asant.1Author
Associate
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

Ulysses HERNIOSUS
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.1
asant.1Author
Associate
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

Ulysses HERNIOSUS
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