cancel
Showing results for 
Search instead for 
Did you mean: 

Stream mode definition register: typo?

OSilv.1
Associate II

According to the ST25DVi2c datasheet, a high bitrate encoding has four subcarrier pulses (followed or preceded by 9.44us of unmodulated time) to designate a 0 or 1. A low bitrate uses 16 pulses and 37.76us of unmodulated time.

By changing bits 3 and 4 of the Stream mode definition register, I've been able to configure the st25r3916 for either bit rate. The datasheet, however, offers "# of pulse" values of 1, 2, 4, or 8. I believe that it should read 1, 2, 4, or 16. Am I correct?

Best,

Oliver

1 ACCEPTED SOLUTION

Accepted Solutions

Hi Oliver,

you are mistaking the Appendix A: It merely describes how the coding of the responses to the fast commands is performed, it does not describe the normal responses:

  • normal high data rate (high data rate according to ISO 15693), selected by using ISO command codes and data rate flag b2=1 in request flags: 8 periods of pulses + 8 periods of no pulses: Use the 8 setting, get 2 bits per payload bit and perform Manchester decoding in software.
  • fast high data rate (Fast Data Rate X2 according to ISO 15693), selected by using a fast command code + data rate flag b2=1 in request flags: 4 periods of pulses + 4 periods of no pulses: Use the 4 setting, get 2 bits per payload bit and perform Manchester decoding in software.
  • normal low data rate (low data rate according to ISO), selected by using ISO command codes and data rate flag b2=0 in request flags: 32 periods of pulses + 32 periods of no pulses: not supported by ST25R3916 (nor on 3911 or 3916B derivates).
  • fast low data rate: (IMO not defined in ISO 15693), selected by using a fast command code + low data rate flag b2=0 in request flags: 16 periods of pulses + 16 periods of no pulses: should be supported but never tried.

To my knowledge all command codes which start with 0xC. are fast commands which are answered with a doubled response data rate.

How do you evaluate "able to communicate"? Which commands did you execute with which request flags. Just because you get some bytes into the FIFO does not necessarily mean that you are getting a full frame which also can be decoded correctly.

BR, Ulysses

View solution in original post

3 REPLIES 3
Ulysses HERNIOSUS
ST Employee

Hi Oliver,

IMO the 8 is correct. Beware of the naming of the data rates. What you are referring is both "high":

  • normal high data rate (high data rate according to ISO 15693): 8 periods of pulses + 8 periods of no pulses: Use the 8 setting, get 2 bits per payload bit and perform Manchester decoding in software.
  • fast high data rate (Fast Data Rate X2 according to ISO 15693): 4 periods of pulses + 4 periods of no pulses: Use the 4 setting, get 2 bits per payload bit and perform Manchester decoding in software.
  • low data rate (same in ISO): 32 periods of pulses + 32 periods of no pulses: not supported by ST25R3916 (nor on 3911 or 3916B derivates).

BR, Ulysses

Thank you for your reply, Ulysses. Page 159 of the st25dvi2c datasheet outlines the two "data rates", one is "low" and the other is "high". This is the terminology the datasheet uses. They are used for regular and fast commands respectively. I understand that they both use the same frequency of subcarrier, and that their distinction is in the number of pulses within a pulse period. Low uses 16, and high uses 4.

I have been able to communicate with both fast and regular commands by changing the # of pulses register in the ST25R3916 between "4" and "8". So I feel there is some discrepancy between the ST25r3916 and st25dvi2c datasheets, given that I have been able to communicate using either command type.

Hi Oliver,

you are mistaking the Appendix A: It merely describes how the coding of the responses to the fast commands is performed, it does not describe the normal responses:

  • normal high data rate (high data rate according to ISO 15693), selected by using ISO command codes and data rate flag b2=1 in request flags: 8 periods of pulses + 8 periods of no pulses: Use the 8 setting, get 2 bits per payload bit and perform Manchester decoding in software.
  • fast high data rate (Fast Data Rate X2 according to ISO 15693), selected by using a fast command code + data rate flag b2=1 in request flags: 4 periods of pulses + 4 periods of no pulses: Use the 4 setting, get 2 bits per payload bit and perform Manchester decoding in software.
  • normal low data rate (low data rate according to ISO), selected by using ISO command codes and data rate flag b2=0 in request flags: 32 periods of pulses + 32 periods of no pulses: not supported by ST25R3916 (nor on 3911 or 3916B derivates).
  • fast low data rate: (IMO not defined in ISO 15693), selected by using a fast command code + low data rate flag b2=0 in request flags: 16 periods of pulses + 16 periods of no pulses: should be supported but never tried.

To my knowledge all command codes which start with 0xC. are fast commands which are answered with a doubled response data rate.

How do you evaluate "able to communicate"? Which commands did you execute with which request flags. Just because you get some bytes into the FIFO does not necessarily mean that you are getting a full frame which also can be decoded correctly.

BR, Ulysses