cancel
Showing results for 
Search instead for 
Did you mean: 

FTM with st25r3916 without RFAL?

OSilv.1
Associate II

I would like to write my own program which can send messages and read from the mailbox on an st25dv-i2c. On one end I have a st32-L0 nucleo board which can access a x-nucleo-nfc04A1 mailbox via i2c. On the other end I have a st32-L433 connected to a x-nucleo-nfc06A1 (SPI). I have been unable to read or write to the mailbox via RF.

My current progress on writing to the mailbox is:

1) I have configured registers A and B using the iso15693 register map provided by the disco GUI

2) I have encoded my message, which is a single byte with a value of 1, added CRC and SOF/EOF.

SOF, 0x02, 0xAA, 0x02, 0x00, 0x01, 0x5D, 0x03, EOF ->

21 20 02 02 02 20 20 20 20 20 02 02 02 02 02 02 02 08 02 02 02 08 80 08 08 80 02 02 02 04

3) I have done the following commands: Stop, Reset RX Gain, Clear FIFO

4) I have updated the num tx bytes register 2 with: tx_len << 3 where tx_len = 30 for this case

5) I have written the encoded message to the FIFO, read FIFO to check, and sent without CRC

I have no response from my st25dv. However, sending the non-encoded message above via the GUI and a discovery board (w/out SOF and EOF) does work.

Am I missing something? Any help is appreciated.

Register map below:

struct reg_config config_A[64] = {

//REG VAL

{0x00, 0x07},

{0x01, 0x3c},

{0x02, 0xcb},

{0x03, 0x70},

{0x04, 0x00},

{0x05, 0x00},

{0x06, 0x00},

{0x07, 0x00},

{0x08, 0x50},

{0x09, 0x38},

{0x0a, 0x00},

{0x0b, 0x13},

{0x0c, 0x2d},

{0x0d, 0x00},

{0x0e, 0x00},

{0x0f, 0x04},

{0x10, 0x52},

{0x11, 0xc4},

{0x12, 0x20},

{0x13, 0x01},

{0x14, 0x84},

{0x15, 0x80},

{0x16, 0x87},

{0x17, 0xbf},

{0x18, 0x0f},

{0x19, 0xfb},

{0x1a, 0x00},

{0x1b, 0x00},

{0x1c, 0x00},

{0x1d, 0x00},

{0x1e, 0x00},

{0x1f, 0x00},

{0x20, 0x00},

{0x21, 0x00},

{0x22, 0x00},

{0x23, 0xf0},

{0x24, 0x00},

{0x25, 0x8b},

{0x26, 0xc5},

{0x27, 0xe3},

{0x28, 0x70},

{0x29, 0x2f},

{0x2a, 0x11},

{0x2b, 0x00},

{0x2c, 0x00},

{0x2d, 0xb8},

{0x2e, 0x62},

{0x2f, 0x00},

{0x30, 0x00},

{0x31, 0x10},

{0x32, 0x00},

{0x33, 0x00},

{0x34, 0x00},

{0x35, 0x00},

{0x36, 0x00},

{0x37, 0x00},

{0x38, 0x00},

{0x39, 0x00},

{0x3a, 0x00},

{0x3b, 0x00},

{0x3c, 0x00},

{0x3d, 0x00},

{0x3e, 0x00},

{0x3f, 0x2a},

};

struct reg_config config_B[17] = {

{0x05, 0x40},

{0x06, 0x00},

{0x0b, 0x0c},

{0x0c, 0x13},

{0x0d, 0x01},

{0x0f, 0x00},

{0x15, 0x00},

{0x28, 0x10},

{0x29, 0x7c},

{0x2a, 0x80},

{0x2b, 0x04},

{0x2c, 0x90},

{0x30, 0x00},

{0x31, 0x00},

{0x32, 0x00},

{0x33, 0x00},

//{0x81, 0x40},

};

1 ACCEPTED SOLUTION

Accepted Solutions
Ulysses HERNIOSUS
ST Employee

Hi,

maybe you want to have a look at this thread here: st25r39-problems-with-reading-iso15693. It could help a bit and maybe you first try the payload mentioned there.

From a quick glance:

  1. Verifying previously written data by reading from FIFO will again remove it!
  2. Which interrupts are you observing in interrupt status register?

Best Regards, Ulysses

View solution in original post

2 REPLIES 2
Ulysses HERNIOSUS
ST Employee

Hi,

maybe you want to have a look at this thread here: st25r39-problems-with-reading-iso15693. It could help a bit and maybe you first try the payload mentioned there.

From a quick glance:

  1. Verifying previously written data by reading from FIFO will again remove it!
  2. Which interrupts are you observing in interrupt status register?

Best Regards, Ulysses

Hi Ulysses,

Indeed, reading the FIFO was the issue. I am able to write to the mailbox via RF now. Thank you for your quick reply!

Best,

Oliver