English
Language : 

MLX90363 Datasheet, PDF (16/57 Pages) Melexis Microelectronic Systems – Triaxis® Magnetometer IC With High Speed Serial Interface
MLX90363
Triaxis® Magnetometer IC
With High Speed Serial Interface
14.2. Serial Protocol
The serial protocol of MLX90363 allows the SPI master device to request the following information:
Position (magnetic angle Alpha)
Raw field components (X,Y and Z)
Self-Diagnostic data
It allows customizing the calibration of the sensor, when needed, at the end-of-line, through EEPROM
programming.
The serial protocol offers a transfer rate of 1000 messages/sec. A regular message holds position and
diagnostic information. The data acquisition start and processing is fully under the control of the SPI
master. The user configuration bits, stored in EEPROM, are programmable with this protocol.
Data integrity is guaranteed in both directions by an 8 bit CRC covering the content of the incoming and
outgoing messages. In a dual sensors application, a Sync pulse allows a synchronous start of the raw
signals acquisition.
14.3. Message General Structure
A message has a unique Opcode. The general structure of a message consists of 8 bytes (byte #0,
transmitted first, to byte #7 transmitted last).
Byte #7 (the last byte transmitted) holds an 8 bit CRC. The byte #6 holds a Marker plus either an Opcode
or a rolling counter.
#76543210#76543210
1 (4)
(3)
0
(2)
(1)
3
2
(5)
5
4
7
CRC
6 Marker
Opcode or Roll Counter
Table 2 – General Structure of a message and bit naming convention
(1) This bit is named Byte0[0] (2) This bit is named Byte0[7]
(3) This bit is named Byte1[0] (4) This bit is named Byte1[7]
(5) This bit is named Byte2[0]
A blank cell refers necessarily to a bit 0.
In a byte, the most-significant-bit is transmitted first (for instance, Byte0[7] is transmitted first, Byte0[0]
transmitted last).
Parameter CRC[7:0] is Byte7[7:0], Parameter Marker[1:0] is Byte6[7:6],
Parameter Opcode[5:0] (or Roll Counter[5:0]) is Byte6[5:0]
CRCs are encoded and decoded according the following algorithm (language-C):
crc = 0xFF;
crc = cba_256_TAB[ Byte0 ^ crc ];
crc = cba_256_TAB[ Byte1 ^ crc ];
crc = cba_256_TAB[ Byte2 ^ crc ];
crc = cba_256_TAB[ Byte3 ^ crc ];
crc = cba_256_TAB[ Byte4 ^ crc ];
crc = cba_256_TAB[ Byte5 ^ crc ];
crc = cba_256_TAB[ Byte6 ^ crc ];
crc = ~crc;
3901090363
Rev. 005
Page 16 of 57
Data Sheet
Jul/13