The AK8975/B is a 3-axis electronic compass IC with high-sensitivy Hall sensor technology. The small package of AK8975/B incorporates magnetic sensors for detecting terrestrial magnetism in the X-axis, Y-axis, and Z-axis, a sensor driving circuit, signal amplifier chain, and an arithmetic circuit for processing the signal from each sensor. Self-test function is also incorporated. With its compact footprint and thin package, it is suitable for map heading detection in GPS-equipped cellphones or almost any kind of pedestrian navigation function.
There are no external links for this device at this time.
There are no questions and answers given for this device at this time.
Do you have a question that isn't answered here or elsewhere in the source code, documentation, or examples for this device? Ask away!
R/W | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 | |
---|---|---|---|---|---|---|---|---|---|
[0x00] WIADevice ID (WIA @ 0x00)Register Bitfields
| RO | [7:0] WIAWIA @ 0x00WIA [7:0]Options
Device ID of AKM. It is described in one byte and fixed value (0x48). | |||||||
[0x01] INFOInformation (INFO @ 0x01)Register Bitfields
| RO | [7:0] INFOINFO @ 0x01INFO [7:0]Device information for AKM. | |||||||
[0x02] ST1Status 1 (ST1 @ 0x02)Register Bitfields
| RO | [0] DRDYST1 @ 0x02Data Ready (DRDY [0])DRDY bit turns to “1†when data is ready in single measurement mode or self-test mode. It returns to “0†when any one of ST2 register or measurement data register (HXL to HZH) is read. | |||||||
[0x03] HXLX-axis measurement lower byte (HXL @ 0x03)Register Bitfields
| RO | [15:0] HXHXL @ 0x03X-axis measurement (HX [15:0])Measurement data is stored in two’s complement and Little Endian format. Measurement range of each axis is from -4096 to +4095 in decimal. | |||||||
[0x04] HXHX-axis measurement upper byte (HXH @ 0x04) | RO | ||||||||
[0x05] HYLY-axis measurement lower byte (HYL @ 0x05)Register Bitfields
| RO | [15:0] HYHYL @ 0x05Y-axis measurement (HY [15:0])Measurement data is stored in two’s complement and Little Endian format. Measurement range of each axis is from -4096 to +4095 in decimal. | |||||||
[0x06] HYHY-axis measurement upper byte (HYH @ 0x06) | RO | ||||||||
[0x07] HZLZ-axis measurement lower byte (HZL @ 0x07)Register Bitfields
| RO | [15:0] HZHZL @ 0x07Z-axis measurement (HZ [15:0])Measurement data is stored in two’s complement and Little Endian format. Measurement range of each axis is from -4096 to +4095 in decimal. | |||||||
[0x08] HZHY-axis measurement upper byte (HZH @ 0x08) | RO | ||||||||
[0x09] ST2Status 2 (ST2 @ 0x09)Register Bitfields
| RO | [3] HOFLST2 @ 0x09Magnetic sensor overflow (HOFL [3])In single measurement mode and self-test mode, magnetic sensor may overflow even though measurement data regiseter is not saturated. In this case, measurement data is not correct and HOFL bit turns to “1â€. When next measurement stars, it returns to “0â€. Refer to 6.4.2.3 for detailed information. | [2] DERRST2 @ 0x09Data Error (DERR [2])When data reading is started out of data readable period, the read data are not correct. In this case, data read error occurs and DERR bit turns to “1â€. When ST2 register is read, it returns to “0â€. | ||||||
[0x0A] CNTLControl (CNTL @ 0x0A)Register Bitfields
| R/W | [3:0] MODECNTL @ 0x0AOperation mode setting (MODE [3:0])Options
MODE[3:0]: Operation mode setting
"0000": Power-down mode
"0001": Single measurement mode
"1000": Self-test mode
"1111": Fuse ROM access mode
Other code settings are prohibited.
When each mode is set, AK8975/B transits to set mode. Refer to 6.3 for detailed information. When CNTL register is accessed to be written, registers from 02H to 09H are initialized. | |||||||
[0x0B] RSVReserved (RSV @ 0x0B)RSV register is reserved. Do not use this register. | R/W | ||||||||
[0x0C] ASTCSelf Test Control (ASTC @ 0x0C)Register Bitfields
NOTE: Do not write “1†to any bit other than SELF bit in ASTC register. If “1†is written to any bit other than SELF bit, normal measurement can not be done. | R/W | [6] SELFASTC @ 0x0CSelf Test Control (SELF [6])Write "0" for Normal mode (no self test), or "1" to generate magnetic field for self-test. | |||||||
[0x0D] TS1Test 1 (TS1 @ 0x0D)TS1 is a test register for shipment test. Do not use this register. | R/W | ||||||||
[0x0E] TS2Test 2 (TS2 @ 0x0E)TS2 is a test register for shipment test. Do not use this register. | R/W | ||||||||
[0x0F] I2CDISI2C Disable (I2CDIS @ 0x0F)Register Bitfields
This register disables I2C bus interface. I2C bus interface is enabled in default. To disable I2C, write “00011011†to I2CDIS register. Then I2CDIS bit turns to “1†and I2C bus interface is disabled.
Once I2CDIS is turned to “1†and I2C bus interface is disabled, re-setting I2CDIST to “0†is prohibited. To enable I2C bus interface, reset AK8975/B by turning VDD or VID to OFF (0V) once. | R/W | [0] I2CDISI2CDIS @ 0x0FI2C Disable (I2CDIS [0])Then I2CDIS bit turns to “1†and I2C bus interface is disabled. | |||||||
[0x10] ASAXX-axis sensitivity adjustment (ASAX @ 0x10)Register Bitfields
Sensitivity adjustment data for each axis is stored to fuse ROM on shipment. | RO | [7:0] COEFXASAX @ 0x10Magnetic sensor X-axis sensitivity adjustment data (COEFX [7:0]) | |||||||
[0x11] ASAYY-axis sensitivity adjustment (ASAY @ 0x11)Register Bitfields
Sensitivity adjustment data for each axis is stored to fuse ROM on shipment. | RO | [7:0] COEFYASAY @ 0x11Magnetic sensor Y-axis sensitivity adjustment data (COEFY [7:0]) | |||||||
[0x12] ASAZZ-axis sensitivity adjustment (ASAZ @ 0x12)Register Bitfields
Sensitivity adjustment data for each axis is stored to fuse ROM on shipment. | RO | [7:0] COEFZASAZ @ 0x12Magnetic sensor Z-axis sensitivity adjustment data (COEFZ [7:0]) | |||||||