cancel
Showing results for 
Search instead for 
Did you mean: 

st25R3911.dll complete SendReceive function

asant.1
Associate II

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

1 ACCEPTED SOLUTION

Accepted Solutions

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

View solution in original post

5 REPLIES 5
Ulysses HERNIOSUS
ST Employee

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
Associate II

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

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
Associate II

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

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