17 #define LSM330_ACC_SLAVE_ADDRESS 0b0011000
18 #define LSM330_GYRO_SLAVE_ADDRESS 0b1101010
21 #define LSM_GYRO_DEN_PIN AVR32_PIN_PD23
24 uint8_t start_address;
25 uint8_t ctrl_reg_a[5];
29 uint8_t start_address;
30 uint8_t ctrl_reg_g[5];
35 #define LSM_ACC_DATARATE_OFF 0x00
36 #define LSM_ACC_DATARATE_1HZ 0x10
37 #define LSM_ACC_DATARATE_10Hz 0x20
38 #define LSM_ACC_DATARATE_25Hz 0x30
39 #define LSM_ACC_DATARATE_50Hz 0x40
40 #define LSM_ACC_DATARATE_100Hz 0x50
41 #define LSM_ACC_DATARATE_200Hz 0x60
42 #define LSM_ACC_DATARATE_400Hz 0x70
43 #define LSM_ACC_DATARATE_1620Hz 0x80
44 #define LSM_ACC_DATARATE_1344_5376Hz 0x90
46 #define LSM_ACC_X_EN 0x01
47 #define LSM_ACC_Y_EN 0x02
48 #define LSM_ACC_Z_EN 0x04
49 #define LSM_ACC_ALL_EN 0x07
51 #define LSM_ACC_LOW_POWER_EN 0x08
54 #define LSM_ACC_HPIS1 0x01
55 #define LSM_ACC_HPIS2 0x02
56 #define LSM_ACC_HPCLICK 0x04
57 #define LSM_ACC_FDS 0x08
58 #define LSM_ACC_HPCF1 0x10
59 #define LSM_ACC_HPCF2 0x20
60 #define LSM_ACC_HPM0 0x40
61 #define LSM_ACC_HPM1 0x80
64 #define LSM_ACC_OVERRUN_INT 0x02
65 #define LSM_ACC_FIFO_WM_INT 0x04
66 #define LSM_ACC_DRDY2_INT 0x08
67 #define LSM_ACC_DRDY1_INT 0x10
68 #define LSM_ACC_AOI_INT 0x40
69 #define LSM_ACC_CLICK_INT 0x80
72 #define LSM_ACC_SPI_MODE 0x01
73 #define LSM_ACC_HIGH_RES 0x08
75 #define LSM_ACC_FULL_SCALE_2G 0x00
76 #define LSM_ACC_FULL_SCALE_4G 0x10
77 #define LSM_ACC_FULL_SCALE_8G 0x20
78 #define LSM_ACC_FULL_SCALE_16G 0x30
80 #define LSM_ACC_BIG_ENDIAN 0x40
83 #define LSM_ACC_D4D_INT 0x04
84 #define LSM_ACC_LIR_INT 0x08
85 #define LSM_ACC_FIFO_EN 0x40
86 #define LSM_ACC_BOOT 0x80
90 #define LSM_GYRO_DATARATE_95HZ 0x00
91 #define LSM_GYRO_DATARATE_190HZ 0x40
92 #define LSM_GYRO_DATARATE_380Hz 0x80
93 #define LSM_GYRO_DATARATE_760Hz 0xC0
96 #define LSM_GYRO_BANDWIDTH_20Hz 0x40
97 #define LSM_GYRO_BANDWIDTH_25Hz 0x50
98 #define LSM_GYRO_BANDWIDTH_50Hz 0x60
99 #define LSM_GYRO_BANDWIDTH_100Hz 0x70
101 #define LSM_GYRO_X_EN 0x01
102 #define LSM_GYRO_Y_EN 0x02
103 #define LSM_GYRO_Z_EN 0x04
104 #define LSM_GYRO_ALL_EN 0x07
105 #define LSM_GYRO_POWER_ON 0x08
108 #define LSM_GYRO_HPCF0 0x01
109 #define LSM_GYRO_HPCF1 0x02
110 #define LSM_GYRO_HPCF2 0x04
111 #define LSM_GYRO_HPCF3 0x08
112 #define LSM_GYRO_HPM0 0x10
113 #define LSM_GYRO_HPM1 0x20
114 #define LSM_GYRO_LVL_EN 0x40
115 #define LSM_GYRO_EXTREN 0x80
118 #define LSM_GYRO_FIFO_EMPTY_INT 0x01
119 #define LSM_GYRO_FIFO_OVRUN_INT 0x02
120 #define LSM_GYRO_FIFO_WM_INT 0x04
121 #define LSM_GYRO_DRDY_INT 0x08
122 #define LSM_GYRO_PP_OD 0x10
123 #define LSM_GYRO_H_L_ACT 0x20
124 #define LSM_GYRO_I1_BOOT 0x40
125 #define LSM_GYRO_I1_INT1 0x80
128 #define LSM_GYRO_SPI_MODE 0x01
130 #define LSM_GYRO_FULL_SCALE_250 0x00
131 #define LSM_GYRO_FULL_SCALE_500 0x10
132 #define LSM_GYRO_FULL_SCALE_2000 0x20
133 #define LSM_GYRO_FULL_SCALE_2000 0x30
135 #define LSM_GYRO_BIG_ENDIAN 0x40
136 #define LSM_GYRO_BLOCK_DATA 0x80
139 #define LSM_OUT_SEL0 0x01
140 #define LSM_OUT_SEL1 0x02
141 #define LSM_INT_SEL0 0x04
142 #define LSM_INT_SEL1 0x08
143 #define LSM_GYRO_HP_EN 0x10
144 #define LSM_GYRO_FIFO_EN 0x40
145 #define LSM_GYRO_BOOT 0x80
149 #define LSM_ACC_OUT_ADDRESS 0x27
151 #define LSM_ACC_FIFO_CTRL_ADDRESS 0x2E
152 #define LSM_ACC_FIFO_SRC_ADDRESS 0x2E
154 #define LSM_GYRO_OUT_ADDRESS 0x26
156 #define LSM_AUTO_INCREMENT 0x80
159 {.start_address=0x20 | LSM_AUTO_INCREMENT,
161 { LSM_ACC_DATARATE_400Hz | LSM_ACC_ALL_EN ,
164 LSM_ACC_HIGH_RES | LSM_ACC_FULL_SCALE_8G,
170 {.start_address=0x20| LSM_AUTO_INCREMENT,
172 { LSM_GYRO_POWER_ON | LSM_GYRO_DATARATE_380Hz | LSM_GYRO_BANDWIDTH_50Hz | LSM_GYRO_ALL_EN,
175 LSM_GYRO_FULL_SCALE_2000|LSM_GYRO_BIG_ENDIAN,
180 static const uint8_t fifo_config[2]={LSM_ACC_FIFO_CTRL_ADDRESS, 0x80};
184 uint8_t status_register;
189 uint8_t status_register;
194 void lsm330dlc_init(
void);
196 lsm_gyro_t* lsm330dlc_driver_get_gyro_data(
void);
197 lsm_acc_t* lsm330dlc_driver_get_acc_data(
void);
Definition: lsm330dlc_driver.h:23
Definition: lsm330dlc_driver.h:28
Structure containing the accelerometer's data.
Definition: lsm330dlc.h:59
Structure containing the gyroscope's data.
Definition: lsm330dlc.h:67