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