Go to the documentation of this file.
35 #include "drv_digital_out.h"
36 #include "drv_digital_in.h"
37 #include "drv_i2c_master.h"
38 #include "drv_spi_master.h"
61 #define ACCEL20_REG_MAN_ID 0x00
62 #define ACCEL20_REG_PART_ID 0x01
63 #define ACCEL20_REG_XADP_L 0x02
64 #define ACCEL20_REG_XADP_H 0x03
65 #define ACCEL20_REG_YADP_L 0x04
66 #define ACCEL20_REG_YADP_H 0x05
67 #define ACCEL20_REG_ZADP_L 0x06
68 #define ACCEL20_REG_ZADP_H 0x07
69 #define ACCEL20_REG_XOUT_L 0x08
70 #define ACCEL20_REG_XOUT_H 0x09
71 #define ACCEL20_REG_YOUT_L 0x0A
72 #define ACCEL20_REG_YOUT_H 0x0B
73 #define ACCEL20_REG_ZOUT_L 0x0C
74 #define ACCEL20_REG_ZOUT_H 0x0D
75 #define ACCEL20_REG_COTR 0x12
76 #define ACCEL20_REG_WHO_AM_I 0x13
77 #define ACCEL20_REG_TSCP 0x14
78 #define ACCEL20_REG_TSPP 0x15
79 #define ACCEL20_REG_INS1 0x16
80 #define ACCEL20_REG_INS2 0x17
81 #define ACCEL20_REG_INS3 0x18
82 #define ACCEL20_REG_STATUS_REG 0x19
83 #define ACCEL20_REG_INT_REL 0x1A
84 #define ACCEL20_REG_CNTL1 0x1B
85 #define ACCEL20_REG_CNTL2 0x1C
86 #define ACCEL20_REG_CNTL3 0x1D
87 #define ACCEL20_REG_CNTL4 0x1E
88 #define ACCEL20_REG_CNTL5 0x1F
89 #define ACCEL20_REG_CNTL6 0x20
90 #define ACCEL20_REG_ODCNTL 0x21
91 #define ACCEL20_REG_INC1 0x22
92 #define ACCEL20_REG_INC2 0x23
93 #define ACCEL20_REG_INC3 0x24
94 #define ACCEL20_REG_INC4 0x25
95 #define ACCEL20_REG_INC5 0x26
96 #define ACCEL20_REG_INC6 0x27
97 #define ACCEL20_REG_TILT_TIMER 0x29
98 #define ACCEL20_REG_TDTRC 0x2A
99 #define ACCEL20_REG_TDTC 0x2B
100 #define ACCEL20_REG_TTH 0x2C
101 #define ACCEL20_REG_TTL 0x2D
102 #define ACCEL20_REG_FTD 0x2E
103 #define ACCEL20_REG_STD 0x2F
104 #define ACCEL20_REG_TLT 0x30
105 #define ACCEL20_REG_TWS 0x31
106 #define ACCEL20_REG_FFTH 0x32
107 #define ACCEL20_REG_FFC 0x33
108 #define ACCEL20_REG_FFCNTL 0x34
109 #define ACCEL20_REG_TILT_ANGLE_LL 0x37
110 #define ACCEL20_REG_TILT_ANGLE_HL 0x38
111 #define ACCEL20_REG_HYST_SET 0x39
112 #define ACCEL20_REG_LP_CNTL1 0x3A
113 #define ACCEL20_REG_LP_CNTL2 0x3B
114 #define ACCEL20_REG_WUFTH 0x49
115 #define ACCEL20_REG_BTSWUFTH 0x4A
116 #define ACCEL20_REG_BTSTH 0x4B
117 #define ACCEL20_REG_BTSC 0x4C
118 #define ACCEL20_REG_WUFC 0x4D
119 #define ACCEL20_REG_SELF_TEST 0x5D
120 #define ACCEL20_REG_BUF_CNTL1 0x5E
121 #define ACCEL20_REG_BUF_CNTL2 0x5F
122 #define ACCEL20_REG_BUF_STATUS_1 0x60
123 #define ACCEL20_REG_BUF_STATUS_2 0x61
124 #define ACCEL20_REG_BUF_CLEAR 0x62
125 #define ACCEL20_REG_BUF_READ 0x63
126 #define ACCEL20_REG_ADP_CNTL1 0x64
127 #define ACCEL20_REG_ADP_CNTL2 0x65
128 #define ACCEL20_REG_ADP_CNTL3 0x66
129 #define ACCEL20_REG_ADP_CNTL4 0x67
130 #define ACCEL20_REG_ADP_CNTL5 0x68
131 #define ACCEL20_REG_ADP_CNTL6 0x69
132 #define ACCEL20_REG_ADP_CNTL7 0x6A
133 #define ACCEL20_REG_ADP_CNTL8 0x6B
134 #define ACCEL20_REG_ADP_CNTL9 0x6C
135 #define ACCEL20_REG_ADP_CNTL10 0x6D
136 #define ACCEL20_REG_ADP_CNTL11 0x6E
137 #define ACCEL20_REG_ADP_CNTL12 0x6F
138 #define ACCEL20_REG_ADP_CNTL13 0x70
139 #define ACCEL20_REG_ADP_CNTL14 0x71
140 #define ACCEL20_REG_ADP_CNTL15 0x72
141 #define ACCEL20_REG_ADP_CNTL16 0x73
142 #define ACCEL20_REG_ADP_CNTL17 0x74
143 #define ACCEL20_REG_ADP_CNTL18 0x75
144 #define ACCEL20_REG_ADP_CNTL19 0x76
145 #define ACCEL20_REG_INTERNAL 0x7F
163 #define ACCEL20_INTERNAL_SOFT_RESET 0x00
164 #define ACCEL20_SOFT_RESET_PWR_CYC 0x00
165 #define ACCEL20_SOFT_RESET_REBOOT 0x80
167 #define ACCEL20_CNTL1_RANGE_8g 0x00
168 #define ACCEL20_CNTL1_RANGE_16g 0x01
169 #define ACCEL20_CNTL1_RANGE_32g 0x02
170 #define ACCEL20_CNTL1_RANGE_64g 0x03
171 #define ACCEL20_RANGE_BIT_MASK 0xE7
173 #define ACCEL20_ODCNTL_ODR_0_781_Hz 0x00
174 #define ACCEL20_ODCNTL_ODR_1_563_Hz 0x01
175 #define ACCEL20_ODCNTL_ODR_3_125_Hz 0x02
176 #define ACCEL20_ODCNTL_ODR_6_25_Hz 0x03
177 #define ACCEL20_ODCNTL_ODR_12_5_Hz 0x04
178 #define ACCEL20_ODCNTL_ODR_25_Hz 0x05
179 #define ACCEL20_ODCNTL_ODR_50_Hz 0x06
180 #define ACCEL20_ODCNTL_ODR_100_Hz 0x07
181 #define ACCEL20_ODCNTL_ODR_200_Hz 0x08
182 #define ACCEL20_ODCNTL_ODR_400_Hz 0x09
183 #define ACCEL20_ODCNTL_ODR_800_Hz 0x0A
184 #define ACCEL20_ODCNTL_ODR_1600_Hz 0x0B
185 #define ACCEL20_ODCNTL_ODR_3200_Hz 0x0C
186 #define ACCEL20_ODCNTL_ODR_6400_Hz 0x0D
187 #define ACCEL20_ODCNTL_ODR_12800_Hz 0x0E
188 #define ACCEL20_ODCNTL_ODR_25600_Hz 0x0F
189 #define ACCEL20_ODR_BIT_MASK 0x0F
191 #define ACCEL20_CNTL1_OP_MODE_STB 0x00
192 #define ACCEL20_CNTL1_OP_MODE_L_PWR 0x02
193 #define ACCEL20_CNTL1_OP_MODE_HP 0x03
194 #define ACCEL20_OP_MODE_BIT_MASK 0xC0
196 #define ACCEL20_ENABLE_INT_1 0x30
197 #define ACCEL20_ENABLE_DATA_READY 0x10
199 #define ACCEL20_DATA_READY_BIT_MASK 0x10
201 #define ACCEL20_INT1_DATA_READY 0x00
203 #define ACCEL20_CHIP_ID 0x46
205 #define ACCEL20_TRIGGER_DISABLE 0x00
206 #define ACCEL20_TRIGGER_ENABLE 0x01
213 #define ACCEL20_SET_DEV_ADDR_GND 0x1E
214 #define ACCEL20_SET_DEV_ADDR_VCC 0x1F
224 #define ACCEL20_SET_DATA_SAMPLE_EDGE SET_SPI_DATA_SAMPLE_EDGE
225 #define ACCEL20_SET_DATA_SAMPLE_MIDDLE SET_SPI_DATA_SAMPLE_MIDDLE
243 #define ACCEL20_MAP_MIKROBUS( cfg, mikrobus ) \
244 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
245 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
246 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
247 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
248 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
249 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
250 cfg.i2 = MIKROBUS( mikrobus, MIKROBUS_AN ); \
251 cfg.trg = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
252 cfg.i1 = MIKROBUS( mikrobus, MIKROBUS_INT )
pin_name_t i2
Definition: accel20.h:309
Accel 20 Click context object.
Definition: accel20.h:279
int16_t z
Definition: accel20.h:332
err_t accel20_set_accel_range(accel20_t *ctx, uint8_t range)
Accel 20 set accel range function.
err_t accel20_default_cfg(accel20_t *ctx)
Accel 20 default configuration function.
err_t accel20_generic_write(accel20_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
Accel 20 data writing function.
err_t accel20_soft_reset(accel20_t *ctx)
Accel 20 soft reset function.
digital_out_t trg
Definition: accel20.h:280
err_t accel20_enable_int_2_pin(accel20_t *ctx)
Accel 20 enable INT 2 pin function.
This file contains SPI specific macros, functions, etc.
err_t accel20_generic_read(accel20_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
Accel 20 data reading function.
pin_name_t chip_select
Definition: accel20.h:289
accel20_drv_t drv_sel
Definition: accel20.h:320
i2c_master_t i2c
Definition: accel20.h:285
accel20_return_value_t
Accel 20 Click return value data.
Definition: accel20.h:341
uint8_t accel20_get_int_1(accel20_t *ctx)
Accel 20 get Interrupt 1 function.
accel20_master_io_t read_f
Definition: accel20.h:293
struct accel20_s accel20_t
Accel 20 Click context object.
@ ACCEL20_DRV_SEL_I2C
Definition: accel20.h:264
err_t(* accel20_master_io_t)(struct accel20_s *, uint8_t, uint8_t *, uint8_t)
Accel 20 Click driver interface.
Definition: accel20.h:272
int16_t y
Definition: accel20.h:331
accel20_drv_t drv_sel
Definition: accel20.h:290
pin_name_t sda
Definition: accel20.h:304
spi_master_mode_t spi_mode
Definition: accel20.h:317
pin_name_t i1
Definition: accel20.h:311
err_t accel20_set_operating_mode(accel20_t *ctx, uint8_t op_mode)
Accel 20 set operating mode function.
pin_name_t trg
Definition: accel20.h:310
accel20_master_io_t write_f
Definition: accel20.h:292
uint8_t accel20_data_ready(accel20_t *ctx)
Accel 20 check data ready function.
Accel 20 Click configuration object.
Definition: accel20.h:302
pin_name_t miso
Definition: accel20.h:305
pin_name_t scl
Definition: accel20.h:303
err_t accel20_set_output_data_rate(accel20_t *ctx, uint8_t odr)
Accel 20 set output data rate function.
uint8_t accel20_get_int_2(accel20_t *ctx)
Accel 20 get Interrupt 2 function.
void accel20_cfg_setup(accel20_cfg_t *cfg)
Accel 20 configuration object setup function.
err_t accel20_enable_int_1_pin(accel20_t *ctx)
Accel 20 enable INT 1 pin function.
@ ACCEL20_OK
Definition: accel20.h:342
int16_t x
Definition: accel20.h:330
pin_name_t mosi
Definition: accel20.h:306
err_t accel20_set_trigger(accel20_t *ctx, uint8_t en_trg)
Accel 20 set trigger function.
uint32_t i2c_speed
Definition: accel20.h:313
Accel 20 axis data structure.
Definition: accel20.h:329
pin_name_t cs
Definition: accel20.h:308
err_t accel20_init(accel20_t *ctx, accel20_cfg_t *cfg)
Accel 20 initialization function.
pin_name_t sck
Definition: accel20.h:307
@ ACCEL20_ERROR
Definition: accel20.h:343
err_t accel20_check_id(accel20_t *ctx)
Accel 20 check ID function.
uint8_t slave_address
Definition: accel20.h:288
void accel20_drv_interface_selection(accel20_cfg_t *cfg, accel20_drv_t drv_sel)
Accel 20 driver interface setup function.
accel20_drv_t
Accel 20 Click driver selector.
Definition: accel20.h:262
digital_in_t i1
Definition: accel20.h:283
spi_master_chip_select_polarity_t cs_polarity
Definition: accel20.h:318
spi_master_t spi
Definition: accel20.h:286
uint8_t i2c_address
Definition: accel20.h:314
err_t accel20_get_axis_data(accel20_t *ctx, accel20_axis_t *axis)
Accel 20 get accelerometer axis function.
@ ACCEL20_DRV_SEL_SPI
Definition: accel20.h:263
uint32_t spi_speed
Definition: accel20.h:316
digital_in_t i2
Definition: accel20.h:282