Skip to main content
Visitor II
January 5, 2022
Solved

FTM with st25r3916 without RFAL?

  • January 5, 2022
  • 1 reply
  • 819 views

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},

};

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

    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

    1 reply

    Technical Moderator
    January 5, 2022

    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

    OSilv.1Author
    Visitor II
    January 5, 2022

    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