English
Language : 

IC-MG_14 Datasheet, PDF (10/22 Pages) IC-Haus GmbH – 8-Bit Sin/Cos INTERPOLATION IC WITH RS422 DRIVER
iC-MG
8-Bit Sin/Cos INTERPOLATION IC WITH RS422 DRIVER
SERIAL EEPROM INTERFACE
Rev D1, Page 10/22
External EEPROM
The serial configuration interface consists of the two
pins SCL and SDA and enables read access to a se-
rial I2C EEPROM. This EEPROM must comply with the
following specifications:
Operation from 3.3 V to 5 V
Min. size 512 bit, 64x8
Max. size 8 kbit, 1024x8
device ID 0x50 = 1010 000 (without R/W bit)
device ID 0xA0 = 1010 0000 (with R/W bit of 0)
Recommended devices:
Atmel AT24C01, ST M24C01, ST M24C02 (2K),
ROHM BR24L01A-W, BR24L02-W
NOTE:
Devices ignoring A2...0 address bits are not suitable.
Devices using a Word Address with don’t care bits
are not suitable.
Power Up Configuration
Once the supply has been switched on iC-MG reads
the configuration from the external EEPROM which
has the device ID 0x50. Bit errors in the 0x00 to 0x2F
memory area are monitored by the CRC deposited in
register CHKSUM (see program example; the polyno-
mial used is "1 0001 1101"). Should an error occur
while the data is being read in the readin process is
repeated; the system aborts following a fourth faulty
attempt and tristates the output drivers.
Triggering Reboot
As an alternative to a power down reset iC-MG can
be triggered to again read in the configuration via pin
NERR. To this end pin voltage V(NERR) must initially
exceed threshold voltage VTMon (Elec. Char. item
B04). Once the pin voltage has dropped to below VT-
Moff (Elec. Char. item B05) iC-MG starts communicat-
ing with the EEPROM. The device ID stored in register
DEVID is used to address the EEPROM.
NOTE:
Connecting pin NERR to a cable can not be recom-
mended as this pin is sensitive to the function de-
scribed above.
Example of CRC Calculation Routine
unsigned char ucDataStream = 0;
i n t iCRCPoly = 0x11D ;
unsigned char ucCRC=0;
int i = 0;
ucCRC = 1 ; / / s t a r t v a l u e ! ! !
for ( iReg = 0; iReg <47; 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 ;
}
}