English
Language : 

IC-MR Datasheet, PDF (40/44 Pages) IC-Haus GmbH – 13-BIT S&H SIN/COS INTERPOLATOR WITH CONTROLLER INTERFACES
iC-MR 13-BIT S&H SIN/COS
preliminary
INTERPOLATOR WITH CONTROLLER INTERFACES
SAFETY FEATURES
Rev A1, Page 40/44
CRC Verification
The configuration check sum CRCCFG is stored in
registers 0x2E-0x2F. The CRC polynomial used is
x16 + x12 + x5 + 1 (CRC-16), the start value is 0x0000.
If an EEPROM is available, the check sum read out is
stored to the CRCCFG register and is used for verifica-
tion. If no EEPROM is connected, or if the check sum
read in is incorrect, renewed configuration data with
check sum must be written and the CRC verification
executed on command (to register 0x60).
Safety register
If safety register SEC_HI does not equal 0x00, NR-
DOK can be used to select whether write or read/write
protection is valid for memory area CONF - in the lat-
ter case the configuration registers can then be neither
read out nor overwritten. On read access 0x00 is out-
put.
In both cases bit EWKH of status byte 0x60 is disabled.
Safety register SEC_HI can be reset and protection
deleted only if the current register key data is again
written.
If the configuration is written to the EEPROM by com- NRDOK
Addr. 0x25; bit 7
R/W
mand, the current check sum in addresses 0x2E-0x2F Code
Function
is not used but the CRCCFG register is calculated 0
Only write protection active
again.
1
Read and write protection active
CRCCFG(15:8) Addr. 0x2E; bit 7...0
R/W
CRCCFG(7:0)
Addr. 0x2F; bit 7...0
Code
Function
0x0000
Test value generated with CRC polynomial 0x1021,
...
Start value is 0x0000
0xFFFF
Table 76: CRC test value for configuration
Example of CRC calculation routine:
unsigned char ucDataStream = 0;
int iCRCPoly = 0x1021 ;
unsigned char ucCRC=0;
int i = 0;
ucCRC = 0 ; / / s t a r t v a l u e ! ! !
for ( iReg = 0; iReg <46; iReg ++)
{
ucDataStream = ucGetValue ( iReg ) ;
for ( i =0; i <=7; i ++) {
i f ( ( ucCRC & 0x80 ) ! = ( ucDataStream & 0x80 ) )
ucCRC = (ucCRC << 1 ) ^ iCRCPoly ;
else
ucCRC = (ucCRC << 1 ) ;
ucDataStream = ucDataStream << 1 ;
}
}
Table 77: Selecting read/write protection
SEC_HI
Code
0x00
Otherwise
Addr. 0x25; bit 6...0
R/W
Function
No read/write protection active
Read/write protection active depending on NRDOK
value
Table 78: Safety register for configuration
If safety register SEC_LO does not equal 0x00, write
protection is active for memory area EDS (indicated by
the disabled EWKL bit in status byte 0x60). All regis-
ters in this area can be read out but not overwritten.
Safety register SEC_LO can be reset and protection
deleted only if the current register key data is again
written.
SEC_LO
Addr. 0x26; bit 5...0
R/W
Code
Function
0x00
No write protection active
Otherwise Only write protection active
Table 79: Safety register for EDS memory area