|
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 Veriï¬cation
The conï¬guration 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 veriï¬ca-
tion. If no EEPROM is connected, or if the check sum
read in is incorrect, renewed conï¬guration data with
check sum must be written and the CRC veriï¬cation
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 conï¬guration 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 conï¬guration 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 conï¬guration
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 conï¬guration
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
|
▷ |