fido2100 3-Port Industrial Ethernet DLR Switch with IEEE1588
Data Sheet
April 10, 2013
//---------------------------------------------------------------------
const unsigned Poly = 0xedb88320; // bit reverse of 0x04c11db7
//---------------------------------------------------------------------
unsigned ComputeCrc32 (unsigned char *buf, int len)
{
unsigned crc = 0xffffffff;
while (--len >= 0)
{
unsigned char data = *buf++;
for (int i = 0; i < 8; i++)
{
if ((crc ^ data) & 1)
{
crc >>= 1;
crc ^= Poly;
}
else crc >>= 1;
data >>= 1;
}
}
return (crc ^ 0xffffffff);
}
//---------------------------------------------------------------------
unsigned GetMCHashBin (unsigned char mcadrs[6])
{
unsigned crc = ComputeCrc32 ((unsigned char *)mcadrs, 6);
return (crc & 0x7ff);
}
//---------------------------------------------------------------------
9.2.22 Free Running Timer Register
Mnemonic
type offset bits 15
0x64
Power-up Defaults
14
13
12
0
11
0
10
0
9
0
9
0
8
7
6
0
6
0
5
0
5
0
4
0
4
0
3
0
3
0
2
0
2
0
1
0
1
0
0
0
0
0
FreeTmr_Lo
R
FreeTimer[15:0]
0
0
0
0
8
0
7
Mnemonic
type offset bits 15
0x66
Power-up Defaults
14
0
13
0
12
0
11
0
10
0
FreeTmr_Hi
R
FreeTimer[31:16]
0
0
0
The Free Running Timer register consists of two 16-bit registers. It is a 32-bit free
running up counter that counts at 100MHz and is used for transparent clock timestamps,
delay measurements, and redundancy timestamps. It can be used to compare how recent a
68
support@innovasic.com
1-505-883-5263
Document #: IA211111101-04
UNCONTROLLED WHEN PRINTED OR COPIED
1-888-824-4184