2.7.3.3 CRC Handling
A CRC checksum can be calculated and appended to the data originating from the DFIFO. Data from the SFIFO cannot be used as a source for the CRC calculation. The checksum is calculated on the raw bit stream from the DFIFO and is appended directly to the last data bit. All subsequent manipulations, such as Manchester coding or polarity inversion, are also applied to the CRC checksum.
The CRC module includes many configuration options:
- The CRC length can be set to 4-bit, 8-bit or 16-bit
- An arbitrary polynomial can be chosen
- Up to 255 bits at the beginning of the DFIFO data stream can be skipped (excluded from the CRC calculation)
- The initialization value of the CRC register can be set to an arbitrary value
The checksum calculation can be enabled independently for path A and path B of each service in the eepServices.TMCR2x.TMCRCE variables.
The CRC length can be configured independently for path A and path B of each service in the eepServices.TMCR2x.TMCRCL[1:0] variables.
Address Service0 | Name | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|---|---|
0x0126 | TMCR2A | — | TMMSB | TMSSE | TMPOL | TMNRZE | TMCRCL[1:0] | TMCRCE | |
0x0127 | TMCR2B | — | TMMSB | TMSSE | TMPOL | TMNRZE | TMCRCL[1:0] | TMCRCE |
The CRC polynomial can be configured independently for path A and path B of each service in the eepServices.TMCPx[1:0] variables.
Address Service0 | Name | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|---|---|
0x012E | TMCPA[0] | TMCPL[7:0] | |||||||
0x012F | TMCPA[1] | TMCPH[7:0] | |||||||
0x0130 | TMCPB[0] | TMCPL[7:0] | |||||||
0x0131 | TMCPB[1] | TMCPH[7:0] |
The number of bits to skip for CRC calculation can be set independently for path A and path B of each service in the eepServices.TMCSBx variables.
Address Service0 | Name | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|---|---|
0x0136 | TMCSBA | TMCSB[7:0] | |||||||
0x0137 | TMCSBB | TMCSB[7:0] |
The initialization value of the CRC register can be configured independently for path A and path B of each service in the eepServices.TMCIx[1:0] variables.
Address Service0 | Name | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|---|---|
0x0132 | TMCIA[0] | TMCIL[7:0] | |||||||
0x0133 | TMCIA[1] | TMCIH[7:0] | |||||||
0x0134 | TMCIB[0] | TMCIL[7:0] | |||||||
0x0135 | TMCIB[1] | TMCIH[7:0] |