Infineon TLE5014P16 User Manual page 10

Gmr-based angle sensor
Table of Contents

Advertisement

TLE5014
GMR-Based Angle Sensor
Interfaces overview
Table 7
Examples for ID Nibble, RC_Nibble and ID_RC_Nibble calculation
ID
RC
00
B
01
B
10
B
11
B
00
B
01
B
10
B
11
B
00
00
B
B
01
01
B
B
10
10
B
B
11
11
B
B
Synchronization of the Rolling Counter
The first transmitted SPC frame has a rolling counter value of 0. The next frame transmits a rolling counter
value which is incremented by 1. In case the rolling counter is coded in the CRC, it is a 2-bit value. In this
configuration, a synchronization of the counter value (sensor value and counter value in the micro controller)
is required. The following two options are possible:
Calculate the CRC with the received sensor data and a RC_NIBBLE of RC_NIBBLE = 0000
the calculated CRC matches with the transmitted CRC. This frame has the rolling counter value of 0. The
next transmitted frame has the incremented counter value of 1 and so on. As the rolling counter has 2 bit
in case it is coded in the CRC, latest the fourth transmitted frame needs to have a matched CRC. If this is
not the case an error occurred.
For the first transmitted frame, calculate the four possible CRCs with the RC_NIBBLE values 0000
The CRC which is matching the transmitted CRC has the correct rolling counter value. Use this value as
starting value which is incremented with the next received frame.
CRC calculation for SPC protocol
The checksum nibble is a 4-bit CRC of the data nibbles including the status nibble. The CRC is calculated using
a polynomial x4+x3+x2+1 with a seed value of 0101
CRC. The CRC calculation method is based on "recommended" implementation in the SENT standard 2010.
For this "recommended" implementation, the CRC is calculated based on the input data which is then
augmented with four extra zero bits and an additional CRC calculation step.
Code example:
//Table CRC, Poly=0xD
uint8_t cr4Table[16] = {0, 13, 7, 10, 14, 3, 9, 4, 1, 12, 6, 11, 15, 2, 8, 5};
//Example:
//Status Nibble = 0x6
//Data Nibble = 0x7, 0x4, 0x8, 0x7, 0x4, 0x8
uint8_t nibble[7] = {6, 7, 4, 8, 7, 4, 8};
uint8_t nb_nibble = 0x7;
User's Manual
ID_Nibble
RC_Nibble
0000
B
0001
B
0010
B
0011
B
0000
0100
1000
1100
. The remainder after the last data nibble is transmitted as
B
10
RC_ID_Nibble
B
B
B
0000
B
0101
B
1010
B
1111
B
. Repeat this until
B
to 0011
.
B
B
Rev. 1.0
2019-03-12

Advertisement

Table of Contents
loading

This manual is also suitable for:

Tle5014s16Tle5014c16Tle5014s16dTle5014c16dTle5014p16d

Table of Contents