Go to the documentation of this file.
35 #include "mikrosdk_version.h"
38 #if mikroSDK_GET_VERSION < 20800ul
39 #include "rcu_delays.h"
45 #include "drv_digital_out.h"
46 #include "drv_digital_in.h"
47 #include "drv_spi_master.h"
70 #define SPIEXTEND_REG_CONFIG 0x00
71 #define SPIEXTEND_REG_STATUS 0x01
72 #define SPIEXTEND_REG_EVENT 0x02
73 #define SPIEXTEND_REG_INT_EN 0x03
74 #define SPIEXTEND_REG_FAULT 0x04
75 #define SPIEXTEND_REG_WORD_LENGTH 0x05
76 #define SPIEXTEND_REG_SCRATCH 0x06
82 #define SPIEXTEND_ACCEL14_REG_WHO_AM_I 0x0F
83 #define SPIEXTEND_ACCEL14_REG_CTRL1_XL 0x10
84 #define SPIEXTEND_ACCEL14_REG_CTRL3_C 0x12
85 #define SPIEXTEND_ACCEL14_REG_OUT_TEMP_L 0x20
86 #define SPIEXTEND_ACCEL14_REG_OUT_TEMP_H 0x21
87 #define SPIEXTEND_ACCEL14_REG_OUTX_L_A 0x28
88 #define SPIEXTEND_ACCEL14_REG_OUTX_H_A 0x29
89 #define SPIEXTEND_ACCEL14_REG_OUTY_L_A 0x2A
90 #define SPIEXTEND_ACCEL14_REG_OUTY_H_A 0x2B
91 #define SPIEXTEND_ACCEL14_REG_OUTZ_L_A 0x2C
92 #define SPIEXTEND_ACCEL14_REG_OUTZ_H_A 0x2D
109 #define SPIEXTEND_STATUS_ACTIVE 0x00
110 #define SPIEXTEND_STATUS_INACTIVE 0x01
116 #define SPIEXTEND_ACCEL14_CTRL1_XL_POWER_UP 0xA0
117 #define SPIEXTEND_ACCEL14_CTRL1_XL_HIGH_RES_FS 0x00
118 #define SPIEXTEND_ACCEL14_CTRL1_XL_GSEL_4G 0x08
119 #define SPIEXTEND_ACCEL14_CTRL3_C_BOOT_NORMAL 0x00
120 #define SPIEXTEND_ACCEL14_CTRL3_C_BDU_READ_UPDATE 0x40
121 #define SPIEXTEND_ACCEL14_CTRL3_C_INT_ACTIVE_HIGH 0x00
122 #define SPIEXTEND_ACCEL14_CTRL3_C_PP_OD_PUSH_PULL 0x00
123 #define SPIEXTEND_ACCEL14_CTRL3_C_SIM_SPI_4_WIRE 0x00
124 #define SPIEXTEND_ACCEL14_CTRL3_C_IF_INC_ENABLE 0x04
125 #define SPIEXTEND_ACCEL14_CTRL3_C_SW_RESET_DIS 0x00
131 #define SPIEXTEND_ACCEL14_SPI_WRITE 0x00
132 #define SPIEXTEND_ACCEL14_SPI_READ 0x80
138 #define SPIEXTEND_CMD_CLEAR_EVENT 0x00
144 #define SPIEXTEND_SLAVE_SELECT_SS1 0x01
145 #define SPIEXTEND_SLAVE_SELECT_SS2 0x02
146 #define SPIEXTEND_SLAVE_SELECT_SS3 0x03
152 #define SPIEXTEND_PIN_STATE_LOW 0x00
153 #define SPIEXTEND_PIN_STATE_HIGH 0x01
159 #define SPIEXTEND_SPI_WRITE 0x00
160 #define SPIEXTEND_SPI_READ 0x01
170 #define SPIEXTEND_SET_DATA_SAMPLE_EDGE SET_SPI_DATA_SAMPLE_EDGE
171 #define SPIEXTEND_SET_DATA_SAMPLE_MIDDLE SET_SPI_DATA_SAMPLE_MIDDLE
189 #define SPIEXTEND_MAP_MIKROBUS( cfg, mikrobus ) \
190 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
191 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
192 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
193 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
194 cfg.ss3 = MIKROBUS( mikrobus, MIKROBUS_AN ); \
195 cfg.ss2 = MIKROBUS( mikrobus, MIKROBUS_RST ); \
196 cfg.ssc = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
197 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
634 #endif // SPIEXTEND_H
uint8_t e_fault
Definition: spiextend.h:284
pin_name_t ssc
Definition: spiextend.h:238
uint8_t link_fault
Definition: spiextend.h:295
SPI Extend Click status data.
Definition: spiextend.h:268
void spiextend_set_config(spiextend_t *ctx, spiextend_config_data_t config_data)
SPI Extend set the configuration function.
uint8_t tx_buf_underflow
Definition: spiextend.h:298
@ SPIEXTEND_ERROR
Definition: spiextend.h:309
void spiextend_clear_event(spiextend_t *ctx)
SPI Extend clear the event function.
This file contains SPI specific macros, functions, etc.
spi_master_chip_select_polarity_t cs_polarity
Definition: spiextend.h:244
pin_name_t ss2
Definition: spiextend.h:237
uint8_t spiextend_rmt_read(spiextend_t *ctx, uint8_t reg, uint8_t sel_slave)
SPI Extend generic read data in Remote Mode function.
uint8_t nlink
Definition: spiextend.h:269
uint8_t rmt_nint
Definition: spiextend.h:271
void spiextend_set_ss2(spiextend_t *ctx, uint8_t en_rst)
SPI Extend set SS2 pin state function.
pin_name_t mosi
Definition: spiextend.h:231
pin_name_t sck
Definition: spiextend.h:232
err_t spiextend_default_cfg(spiextend_t *ctx)
SPI Extend default configuration function.
spi_master_mode_t spi_mode
Definition: spiextend.h:243
SPI Extend Click configuration data.
Definition: spiextend.h:253
uint32_t spi_speed
Definition: spiextend.h:242
uint8_t e_link_good
Definition: spiextend.h:282
void spiextend_rmt_multi_read(spiextend_t *ctx, uint8_t reg, uint8_t *p_rx_data, uint8_t n_bytes, uint8_t sel_slave)
SPI Extend generic multi read data in Remote Mode function.
uint8_t e_link_lost
Definition: spiextend.h:283
SPI Extend Click Fault data.
Definition: spiextend.h:293
digital_out_t ss2
Definition: spiextend.h:210
void spiextend_rmt_spi_write(spiextend_t *ctx, uint8_t *p_tx_data, uint16_t n_bytes)
SPI Extend generic SPI write data in Remote Mode function.
uint8_t rem_ss3_pha
Definition: spiextend.h:255
pin_name_t ss3
Definition: spiextend.h:236
spiextend_return_value_t
SPI Extend Click return value data.
Definition: spiextend.h:307
void spiextend_get_status(spiextend_t *ctx, spiextend_status_data_t *status_data)
SPI Extend get the status function.
pin_name_t int_pin
Definition: spiextend.h:239
void spiextend_get_fault(spiextend_t *ctx, spiextend_fault_data_t *fault_data)
SPI Extend get the fault state function.
void spiextend_rmt_write(spiextend_t *ctx, uint8_t reg, uint8_t tx_data, uint8_t sel_slave)
SPI Extend generic write data in Remote Mode function.
uint8_t spi_write_fault
Definition: spiextend.h:294
void spiextend_rmt_spi_read(spiextend_t *ctx, uint8_t *p_rx_data, uint16_t n_bytes)
SPI Extend generic SPI read data in Remote Mode function.
uint8_t speed_idx
Definition: spiextend.h:272
void spiextend_get_config(spiextend_t *ctx, spiextend_config_data_t *config_data)
SPI Extend get the configuration function.
void spiextend_set_scratch(spiextend_t *ctx, uint8_t scratch)
SPI Extend set scratch function.
uint8_t spiextend_get_scratch(spiextend_t *ctx)
SPI Extend get scratch function.
err_t spiextend_init(spiextend_t *ctx, spiextend_cfg_t *cfg)
SPI Extend initialization function.
err_t spiextend_generic_write(spiextend_t *ctx, uint8_t reg, uint8_t data_in)
SPI Extend data writing function.
pin_name_t cs
Definition: spiextend.h:233
void spiextend_rmt_multi_write(spiextend_t *ctx, uint8_t reg, uint8_t *p_tx_data, uint16_t n_bytes, uint8_t sel_slave)
SPI Extend generic multi write data in Remote Mode function.
uint8_t rem_ss1_pha
Definition: spiextend.h:259
uint8_t spiextend_check_int(spiextend_t *ctx)
SPI Extend check interrupt status function.
spi_master_t spi
Definition: spiextend.h:217
digital_out_t ss3
Definition: spiextend.h:209
uint8_t rmt_spi_fault
Definition: spiextend.h:296
digital_in_t int_pin
Definition: spiextend.h:214
void spiextend_cfg_setup(spiextend_cfg_t *cfg)
SPI Extend configuration object setup function.
SPI Extend Click event data.
Definition: spiextend.h:281
uint8_t rem_ss2_pha
Definition: spiextend.h:257
void spiextend_set_word_length(spiextend_t *ctx, uint8_t word_length)
SPI Extend set the word length function.
void spiextend_enable_int(spiextend_t *ctx, spiextend_event_data_t event_data)
SPI Extend enable int function.
SPI Extend Click context object.
Definition: spiextend.h:207
pin_name_t chip_select
Definition: spiextend.h:219
uint8_t spiextend_get_word_length(spiextend_t *ctx)
SPI Extend get the word length function.
uint8_t tx_buf_overflow
Definition: spiextend.h:297
digital_out_t ssc
Definition: spiextend.h:211
uint8_t rem_ss1_pol
Definition: spiextend.h:258
err_t spiextend_generic_read(spiextend_t *ctx, uint8_t reg, uint8_t *data_out)
SPI Extend data reading function.
uint8_t nint
Definition: spiextend.h:270
void spiextend_get_event(spiextend_t *ctx, spiextend_event_data_t *event_data)
SPI Extend get the event function.
void spiextend_set_ss1(spiextend_t *ctx, uint8_t en_cs)
SPI Extend set SS1 pin state function.
SPI Extend Click configuration object.
Definition: spiextend.h:228
uint8_t rem_ss3_pol
Definition: spiextend.h:254
void spiextend_set_ss3(spiextend_t *ctx, uint8_t en_an)
SPI Extend set SS3 pin state function.
@ SPIEXTEND_OK
Definition: spiextend.h:308
uint8_t rem_ss2_pol
Definition: spiextend.h:256
pin_name_t miso
Definition: spiextend.h:230