blob: 53e43f22fc7da6b382e1fbe8d6c2e5c563ef0779 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
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__
|