ISSDK  1.8
IoT Sensing Software Development Kit
mma8491q.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2016, Freescale Semiconductor, Inc.
3  * Copyright 2016-2017 NXP
4  * All rights reserved.
5  *
6  * SPDX-License-Identifier: BSD-3-Clause
7  */
8 #ifndef MMA8491Q_H_
9 #define MMA8491Q_H_
10 
11 /**
12  **
13  ** MMA8491Q Sensor Internal Registers
14  */
15 enum
16 {
24 };
25 
26 #define MMA8491Q_I2C_ADDRESS (0x55) /* MMA8491Q I2C Slave Address. */
27 
28 #define MMA8491Q_T_RST_MIN (1U) /* Approx time between falling edge of EN and next rising edge of EN. */
29 #define MMA8491Q_T_ON_TYPICAL (1U) /* Approx time taken for Data to become available after rising edge of EN. */
30 
31 /*--------------------------------
32 ** Register: STATUS
33 ** Enum: MMA8491Q_STATUS
34 ** --
35 ** Offset : 0x00 - Data-ready status information
36 ** ------------------------------*/
37 typedef union
38 {
39  struct
40  {
41  uint8_t xdr : 1; /* - X-Axis new Data Available. */
42 
43  uint8_t ydr : 1; /* - Y-Axis new data available. */
44 
45  uint8_t zdr : 1; /* - Z-Axis new data available. */
46 
47  uint8_t zyxdr : 1; /* - X or Y or Z-Axis new data available. */
48 
49  uint8_t reserved : 4; /* - Reserved bits (Will always be set to zero). */
50 
51  } b;
52  uint8_t w;
54 
55 /*
56 ** STATUS - Bit field mask definitions
57 */
58 #define MMA8491Q_STATUS_XDR_MASK ((uint8_t)0x01)
59 #define MMA8491Q_STATUS_XDR_SHIFT ((uint8_t)0)
60 
61 #define MMA8491Q_STATUS_YDR_MASK ((uint8_t)0x02)
62 #define MMA8491Q_STATUS_YDR_SHIFT ((uint8_t)1)
63 
64 #define MMA8491Q_STATUS_ZDR_MASK ((uint8_t)0x04)
65 #define MMA8491Q_STATUS_ZDR_SHIFT ((uint8_t)2)
66 
67 #define MMA8491Q_STATUS_ZYXDR_MASK ((uint8_t)0x08)
68 #define MMA8491Q_STATUS_ZYXDR_SHIFT ((uint8_t)3)
69 
70 #define MMA8491Q_STATUS_RESERVED_MASK ((uint8_t)0xF0)
71 #define MMA8491Q_STATUS_RESERVED_SHIFT ((uint8_t)4)
72 
73 /*
74 ** STATUS - Bit field value definitions
75 */
76 #define MMA8491Q_STATUS_XDR_DRDY ((uint8_t)0x01) /* - Set to 1 whenever new X-axis data acquisition is */
77  /* completed. XDR is cleared any time OUT_X_MSB register */
78  /* is read. */
79 #define MMA8491Q_STATUS_YDR_DRDY ((uint8_t)0x02) /* - Set to 1 whenever new Y-axis data acquisition is */
80  /* completed. YDR is cleared any time OUT_Y_MSB register */
81  /* is read. */
82 #define MMA8491Q_STATUS_ZDR_DRDY ((uint8_t)0x04) /* - Set to 1 whenever new Z-axis data acquisition is */
83  /* completed. ZDR is cleared any time OUT_Z_MSB register */
84  /* is read. */
85 #define MMA8491Q_STATUS_ZYXDR_DRDY ((uint8_t)0x08) /* - Signals that new acquisition for any of the enabled */
86  /* channels is available. ZYXDR is cleared when the */
87  /* high-bytes of the acceleration data (OUT_X_MSB, */
88  /* OUT_Y_MSB, OUT_Z_MSB) of all channels are read. */
89 #define MMA8491Q_STATUS_RESERVED_ZERO ((uint8_t)0x00) /* - Value of reserved field. */
90  /*------------------------------*/
91 
92 /*--------------------------------
93 ** Register: OUT_X_MSB
94 ** Enum: MMA8491Q_OUT_X_MSB
95 ** --
96 ** Offset : 0x01 - Bits 8-15 of 14-bit X-Axis output sample data (expressed as 2's complement numbers).
97 ** ------------------------------*/
98 typedef uint8_t MMA8491Q_OUT_X_MSB_t;
99 
100 /*--------------------------------
101 ** Register: OUT_X_LSB
102 ** Enum: MMA8491Q_OUT_X_LSB
103 ** --
104 ** Offset : 0x02 - Bits 0-7 of 14-bit X-Axis output sample data (expressed as 2's complement numbers).
105 ** ------------------------------*/
106 typedef union
107 {
108  struct
109  {
110  uint8_t _reserved_ : 2;
111  uint8_t out_x_lsb : 6; /* - OUT_X_LSB register bits 2-7. (Bit 0 and 1 will always be 0). */
112 
113  } b;
114  uint8_t w;
116 
117 /*
118 ** OUT_X_LSB - Bit field mask definitions
119 */
120 #define MMA8491Q_OUT_X_LSB_OUT_X_LSB_MASK ((uint8_t)0xFC)
121 #define MMA8491Q_OUT_X_LSB_OUT_X_LSB_SHIFT ((uint8_t)2)
122 
123 /*------------------------------*/
124 
125 /*--------------------------------
126 ** Register: OUT_Y_MSB
127 ** Enum: MMA8491Q_OUT_Y_MSB
128 ** --
129 ** Offset : 0x03 - Bits 8-15 of 14-bit Y-Axis output sample data (expressed as 2's complement numbers).
130 ** ------------------------------*/
131 typedef uint8_t MMA8491Q_OUT_Y_MSB_t;
132 
133 /*--------------------------------
134 ** Register: OUT_Y_LSB
135 ** Enum: MMA8491Q_OUT_Y_LSB
136 ** --
137 ** Offset : 0x04 - Bits 0-7 of 14-bit Y-Axis output sample data (expressed as 2's complement numbers).
138 ** ------------------------------*/
139 typedef union
140 {
141  struct
142  {
143  uint8_t _reserved_ : 2;
144  uint8_t out_y_lsb : 6; /* - OUT_Y_LSB register bits 2-7. (Bit 0 and 1 will always be 0). */
145 
146  } b;
147  uint8_t w;
149 
150 /*
151 ** OUT_Y_LSB - Bit field mask definitions
152 */
153 #define MMA8491Q_OUT_Y_LSB_OUT_Y_LSB_MASK ((uint8_t)0xFC)
154 #define MMA8491Q_OUT_Y_LSB_OUT_Y_LSB_SHIFT ((uint8_t)2)
155 
156 /*------------------------------*/
157 
158 /*--------------------------------
159 ** Register: OUT_Z_MSB
160 ** Enum: MMA8491Q_OUT_Z_MSB
161 ** --
162 ** Offset : 0x05 - Bits 8-15 of 14-bit Z-Axis output sample data (expressed as 2's complement numbers).
163 ** ------------------------------*/
164 typedef uint8_t MMA8491Q_OUT_Z_MSB_t;
165 
166 /*--------------------------------
167 ** Register: OUT_Z_LSB
168 ** Enum: MMA8491Q_OUT_Z_LSB
169 ** --
170 ** Offset : 0x06 - Bits 0-7 of 14-bit Z-Axis output sample data (expressed as 2's complement numbers).
171 ** ------------------------------*/
172 typedef union
173 {
174  struct
175  {
176  uint8_t _reserved_ : 2;
177  uint8_t out_z_lsb : 6; /* - OUT_Z_LSB register bits 2-7. (Bit 0 and 1 will always be 0). */
178 
179  } b;
180  uint8_t w;
182 
183 /*
184 ** OUT_Z_LSB - Bit field mask definitions
185 */
186 #define MMA8491Q_OUT_Z_LSB_OUT_Z_LSB_MASK ((uint8_t)0xFC)
187 #define MMA8491Q_OUT_Z_LSB_OUT_Z_LSB_SHIFT ((uint8_t)2)
188 
189 /*------------------------------*/
190 
191 #endif /* MMA8491Q_H_ */
uint8_t MMA8491Q_OUT_X_MSB_t
Definition: mma8491q.h:98
uint8_t zyxdr
Definition: mma8491q.h:47
uint8_t reserved
Definition: mma8491q.h:49
uint8_t MMA8491Q_OUT_Z_MSB_t
Definition: mma8491q.h:164
uint8_t MMA8491Q_OUT_Y_MSB_t
Definition: mma8491q.h:131