cancel
Showing results for 
Search instead for 
Did you mean: 

Register settings for st25r3911b for ISO 15693

nicolai geske
Associate II

Posted on June 14, 2018 at 12:50

Hello ST25 community.

Some weeks ago I wrote this thread:

https://community.st.com/0D50X00009XkWIeSAN

I got the coding as in the example and it works. (The bytes are coded as it is mentioned in ISO 15693 datasheet)

I want to use 1 out of 4 coding for transmit from VCD to VICC:

Following register settings are used:

Defined: MSB to LSB ( 7 to 0 )

*-----------------------------------------------------------------------------------------------------------*

*register settings for iso15693*

Mode Definition Register                         (0x03)     : 0 1 1 1 0 0 0 0 - sub carrier stream mode

Bit Rate Definition Register                     (0x04)     : 0 0 1 0 0 0 1 0 - bit rate fc/32

Stream Mode Definition Register            (0x08)     : 0 0 1 1 0 0 0 0 - sub carrier frequency fc/32 , sub carrier pulses 4, time period fc/128

Auxiliary Definition Register                    (0x09)     : 0 0 1 0 0 1 0 0 - set modulation AM

AM Modulation Depth Control Register   (0x24)     : 0 1 1 0 1 1 0 0 - set modulation depth to 29.7

After these settings I use following direct commands:

send_direct_command(RFID_CALIBRATE_MODULATION_DEPTH);

send_direct_command(RFID_CALIBRATE_ANTENNA);

For the st25r3911b power up I use following settings:

IO Configuration Register 2            (0x01)     : 1 0 0 0 0 0 0 0 - set power supply of ST25 to 3.3 volt

Operation Control Register             (0x02)     : 1 1 0 0 1 0 0 0 - enable (set to 1): en, rx_en,tx_en

send_direct_command(RFID_ADJUST_REGULATORS);

*-----------------------------------------------------------------------------------------------------------*

I'm not sure if these settings are right. Hopefully someone could check.

As an attachment I send the communication VCD to VICC on an

oscilloscope. I got this using a different antenna.

Best regards

Nicolai.

14 REPLIES 14
nicolai geske
Associate II
Posted on July 11, 2018 at 10:40

Hi Ulysses,

I think I have found the problem why I get no response from the VICC. But first thinks first.

I have updated my code.

#define ISO15693_SOF_1_4 0x21

#define ISO15693_EOF_1_4 0x04

#define ISO15693_00_1_4 0x02

#define ISO15693_01_1_4 0x08

#define ISO15693_10_1_4 0x20

#define ISO15693_11_1_4 0x80

My dataword looks like that:

PART VALUE CODED

SOF 0x21 0x21 uncoded

FLAGS 0x26 0x20 0x08 0x20 0x02

CMD 0x01 0x08 0x02 0x02 0x02

MASK VALUE 0x00 0x02 0x02 0x02 0x02

CRC_LOW 0x09 0x08 0x20 0x02 0x02

CRC_HIGH 0xF5 0x08 0x08 0x80 0x80

EOF 0x0404 uncoded

So in total I have: 21 20 08 20 02 08 02 02 02 02 02 02 02 08 20 02 02 08 08 80 80 04

This is what I write to FIFO and send out using 'transmit without crc'.

Still I get ABSOLUTLY no respone. I checked your CRC function with mine and I got the same values.

So I gave another shot to the

oscilloscope (I used an antenne of Proxmark to get the value).

In order to see what happends I made an endless loop: just fill the FIFO and transmit the values via magnetic field.

In the case nothing is transmitting ( the picture) I have only my carrier (56 MHz).

In the case the FIFO is only filled with 0xFF (31 bytes in total) a modulation takes places.

BUT in the case the FIFO is filled with constant 0x00 (31bytes in total) there is a modulation too.

Here is my endless loop:

while(1){

//needed befor sending Transmit CRC / no CRC

send_direct_command(RFID_CLEAR);

// this function takes a number of bytes to be written (fullbytes) and a number of bits and an array of uint8_t values

set_full_bytes_and_single_bits_for_transmitting_and_write_data_to_fifo(31, 0, fifo_write_data_iso15693)

send_direct_command(RFID_TRANSMIT_WITHOUT_CRC);

}

Best regards, Nicolai.

________________

Attachments :

no_transmit.jpg : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006HxR1&d=%2Fa%2F0X0000000ay0%2F4NYg6kULkvkpe_A1oQJrmgYm1flTkbGA5.ehdPGz844&asPdf=false

transmit_constant_00.mp4 : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006HxQw&d=%2Fa%2F0X0000000axz%2FWQOzCyXf1nzaDCArCLyBPsnx2d.SNAmxF5UhgKfpj8E&asPdf=false

transmit_constant_FF.mp4 : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006HxQr&d=%2Fa%2F0X0000000axy%2FWotFZkVZohTi0xxTPaqpfA0S3peVHGnzegFDfc6FHsw&asPdf=false
nicolai geske
Associate II
Posted on July 12, 2018 at 10:42

Hello

Ulysses,

there should be one picture and two videos as attachment. Both videos about three seconds showing the measured wave by the

oscilloscope

.

I started developing and implementing the code using the official iso 15693 datasheet. For example the 1out of 4 coding:

0690X0000060M8iQAE.jpg

As you can see, the values for coding are LSBIT first but also inverted.

This total confused me. So i came to this forum. To sum it up: I implemented the same functions but with inverted values and LSBIT first. This was your ''confusion'' about my code .

I'm going to implement the invertion of crc and will give feedback.

Best regards, Nicolai

Posted on July 12, 2018 at 08:44

Hi Nicolai,

if you read our source code you will find that for iso15693 the crc needs to be inverted at the end - before coding:

26 01 00 F6 0A -> 21 20 08 20 02 08 02 02 02 02 02 02 02 02 20 08 80 80 20 20 02 02 04

You are going through a lot of hassle for re-implementing what we have already implemented.

Not sure why you would observe modulation on sending 0x00. No picture was attached.

Regards, Ulysses

nicolai geske
Associate II
Posted on July 13, 2018 at 15:44

The original post was too long to process during our migration. Please click on the provided URL to read the original post. https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006I6th&d=%2Fa%2F0X0000000bxb%2F9AfLJqNvPSmbIXozj8z0tVPu9iFyI6_wtnTsWFgj4MM&asPdf=false
nicolai geske
Associate II

Hello,

i got it work 🙂

The trick (mistake) was to set the transmission to OOK not to AM.

Thank you again for your patience.

Best regards, Nico