diff options
Diffstat (limited to 'sensorlib/hw_ak8963.h')
| -rw-r--r-- | sensorlib/hw_ak8963.h | 209 |
1 files changed, 209 insertions, 0 deletions
diff --git a/sensorlib/hw_ak8963.h b/sensorlib/hw_ak8963.h new file mode 100644 index 0000000..53e43f2 --- /dev/null +++ b/sensorlib/hw_ak8963.h @@ -0,0 +1,209 @@ +//*****************************************************************************
+//
+// hw_ak8963.h - Macros used when accessing the Asahi Kasei AK8963
+// magnetometer.
+//
+// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved.
+// Software License Agreement
+//
+// Texas Instruments (TI) is supplying this software for use solely and
+// exclusively on TI's microcontroller products. The software is owned by
+// TI and/or its suppliers, and is protected under applicable copyright
+// laws. You may not combine this software with "viral" open-source
+// software in order to form a larger program.
+//
+// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
+// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
+// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
+// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
+// DAMAGES, FOR ANY REASON WHATSOEVER.
+//
+// This is part of revision 2.1.0.12573 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __SENSORLIB_HW_AK8963_H__
+#define __SENSORLIB_HW_AK8963_H__
+
+//*****************************************************************************
+//
+// The following are defines for the AK8963 register addresses.
+//
+//*****************************************************************************
+#define AK8963_O_WIA 0x00 // Device ID register
+#define AK8963_O_INFO 0x01 // Information register
+#define AK8963_O_ST1 0x02 // Status 1 register
+#define AK8963_O_HXL 0x03 // X-axis LSB output register
+#define AK8963_O_HXH 0x04 // X-axis MSB output register
+#define AK8963_O_HYL 0x05 // Y-axis LSB output register
+#define AK8963_O_HYH 0x06 // Y-axis MSB output register
+#define AK8963_O_HZL 0x07 // Z-axis LSB output register
+#define AK8963_O_HZH 0x08 // Z-axis MSB output register
+#define AK8963_O_ST2 0x09 // Status 2 register
+#define AK8963_O_CNTL 0x0A // Control register
+#define AK8963_O_CNTL2 0x0B // Control 2 register
+#define AK8963_O_ASTC 0x0C // Self-test register
+#define AK8963_O_I2CDIS 0x0F // Disable I2C bus interface
+#define AK8963_O_ASAX 0x10 // X-axis sensitivity register
+#define AK8963_O_ASAY 0x11 // Y-axis sensitivity register
+#define AK8963_O_ASAZ 0x12 // Z-axis sensitivity register
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AK8963_O_WIA register.
+//
+//*****************************************************************************
+#define AK8963_WIA_M 0xFF // Device ID
+#define AK8963_WIA_AK8963 0x48 // AK8963
+#define AK8963_WIA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AK8963_O_INFO register.
+//
+//*****************************************************************************
+#define AK8963_INFO_M 0xFF // Device information value
+#define AK8963_INFO_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AK8963_O_ST1 register.
+//
+//*****************************************************************************
+#define AK8963_ST1_DOR 0x02 // Data overrun
+#define AK8963_ST1_DRDY 0x01 // Data ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AK8963_O_HXL register.
+//
+//*****************************************************************************
+#define AK8963_HXL_M 0xFF // Output data
+#define AK8963_HXL_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AK8963_O_HXH register.
+//
+//*****************************************************************************
+#define AK8963_HXH_M 0xFF // Output data
+#define AK8963_HXH_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AK8963_O_HYL register.
+//
+//*****************************************************************************
+#define AK8963_HYL_M 0xFF // Output data
+#define AK8963_HYL_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AK8963_O_HYH register.
+//
+//*****************************************************************************
+#define AK8963_HYH_M 0xFF // Output data
+#define AK8963_HYH_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AK8963_O_HZL register.
+//
+//*****************************************************************************
+#define AK8963_HZL_M 0xFF // Output data
+#define AK8963_HZL_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AK8963_O_HZH register.
+//
+//*****************************************************************************
+#define AK8963_HZH_M 0xFF // Output data
+#define AK8963_HZH_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AK8963_O_ST2 register.
+//
+//*****************************************************************************
+#define AK8963_ST2_BITM_M 0x10 // Output bit setting
+#define AK8963_ST2_BITM_14BIT 0x00 // 14-bit output
+#define AK8963_ST2_BITM_16BIT 0x10 // 16-bit output
+#define AK8963_ST2_HOFL 0x08 // Magnetic sensor overflow
+#define AK8963_ST2_BITM_S 4
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AK8963_O_CNTL register.
+//
+//*****************************************************************************
+#define AK8963_CNTL_BITM_M 0x10 // Output bit setting
+#define AK8963_CNTL_BITM_14BIT 0x00 // 14-bit output
+#define AK8963_CNTL_BITM_16BIT 0x10 // 16-bit output
+#define AK8963_CNTL_MODE_M 0x0F // Operation mode
+#define AK8963_CNTL_MODE_POWER_DOWN \
+ 0x00 // Power-down mode
+#define AK8963_CNTL_MODE_SINGLE 0x01 // Single measurement mode
+#define AK8963_CNTL_MODE_CONT_1 0x02 // Continuous measurement mode 1
+ // (8Hz)
+#define AK8963_CNTL_MODE_EXT_TRIG \
+ 0x04 // External trigger measurement
+ // mode
+#define AK8963_CNTL_MODE_CONT_2 0x06 // Continuous measurement mode 2
+ // (100Hz)
+#define AK8963_CNTL_MODE_SELF_TEST \
+ 0x08 // Self-test mode
+#define AK8963_CNTL_MODE_FUSE_ROM \
+ 0x0F // Fuse ROM access mode
+#define AK8963_CNTL_BITM_S 4
+#define AK8963_CNTL_MODE_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AK8963_O_CNTL2 register.
+//
+//*****************************************************************************
+#define AK8963_CNTL2_SRST 0x01 // Register reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AK8963_O_ASTC register.
+//
+//*****************************************************************************
+#define AK8963_ASTC_SELF 0x40 // Generate magnetic field for
+ // self-test
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AK8963_O_I2CDIS
+// register.
+//
+//*****************************************************************************
+#define AK8963_I2CDIS_I2CDIS 0xFF // Disable I2C bus interface
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AK8963_O_ASAX register.
+//
+//*****************************************************************************
+#define AK8963_ASAX_M 0xFF // X-axis sensitivity adjustment
+#define AK8963_ASAX_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AK8963_O_ASAY register.
+//
+//*****************************************************************************
+#define AK8963_ASAY_M 0xFF // Y-axis sensitivity adjustment
+#define AK8963_ASAY_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AK8963_O_ASAZ register.
+//
+//*****************************************************************************
+#define AK8963_ASAZ_M 0xFF // Z-axis sensitivity adjustment
+#define AK8963_ASAZ_S 0
+
+#endif // __SENSORLIB_HW_AK8963_H__
|
