Go to the documentation of this file.
28 #ifndef HBRIDGEDRIVER2_H
29 #define HBRIDGEDRIVER2_H
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"
72 #define HBRIDGEDRIVER2_CMD_REG_CTL_0 0x00
73 #define HBRIDGEDRIVER2_CMD_REG_STAT_0 0x10
74 #define HBRIDGEDRIVER2_CMD_REG_CFG 0x3F
75 #define HBRIDGEDRIVER2_ID_REG_ID_HDR 0x00
76 #define HBRIDGEDRIVER2_ID_REG_VERSION 0x01
77 #define HBRIDGEDRIVER2_ID_REG_P_CODE_1 0x02
78 #define HBRIDGEDRIVER2_ID_REG_P_CODE_2 0x03
79 #define HBRIDGEDRIVER2_ID_REG_SPI_F_ID 0x3E
97 #define HBRIDGEDRIVER2_GLB_FLT 0x80
98 #define HBRIDGEDRIVER2_GLB_TF 0x40
99 #define HBRIDGEDRIVER2_GLB_RESB_NORMAL 0x20
100 #define HBRIDGEDRIVER2_GLB_TSD 0x10
101 #define HBRIDGEDRIVER2_GLB_UOV_OC 0x04
102 #define HBRIDGEDRIVER2_GLB_NRDY 0x01
115 #define HBRIDGEDRIVER2_DEF_FREQ 20000
121 #define HBRIDGEDRIVER2_ID_VAL_ID_HDR 0x4300
122 #define HBRIDGEDRIVER2_ID_VAL_VERSION 0x0100
123 #define HBRIDGEDRIVER2_ID_VAL_P_CODE_1 0x7500
124 #define HBRIDGEDRIVER2_ID_VAL_P_CODE_2 0x3500
125 #define HBRIDGEDRIVER2_ID_VAL_SPI_F_ID 0x0200
131 #define HBRIDGEDRIVER2_CTL_0_HS1 0x0200
132 #define HBRIDGEDRIVER2_CTL_0_LS1 0x0100
133 #define HBRIDGEDRIVER2_CTL_0_HS2 0x0080
134 #define HBRIDGEDRIVER2_CTL_0_LS2 0x0040
135 #define HBRIDGEDRIVER2_CTL_0_FWH 0x0010
136 #define HBRIDGEDRIVER2_CTL_0_FWA 0x0008
137 #define HBRIDGEDRIVER2_CTL_0_OVR 0x0004
138 #define HBRIDGEDRIVER2_CTL_0_UVR 0x0002
139 #define HBRIDGEDRIVER2_CTL_0_MODE 0x0001
145 #define HBRIDGEDRIVER2_STAT_0_OCHS1 0x0200
146 #define HBRIDGEDRIVER2_STAT_0_OCLS1 0x0100
147 #define HBRIDGEDRIVER2_STAT_0_OCHS2 0x0080
148 #define HBRIDGEDRIVER2_STAT_0_OCLS2 0x0040
149 #define HBRIDGEDRIVER2_STAT_0_VSUV 0x0008
150 #define HBRIDGEDRIVER2_STAT_0_VSOV 0x0004
151 #define HBRIDGEDRIVER2_STAT_0_OK 0x0000
157 #define HBRIDGEDRIVER2_CFG_NOCRLH_250_NS 0x0000
158 #define HBRIDGEDRIVER2_CFG_NOCRLH_500_NS 0x1000
159 #define HBRIDGEDRIVER2_CFG_NOCRLH_750_NS 0x2000
160 #define HBRIDGEDRIVER2_CFG_NOCRLH_1_US 0x3000
161 #define HBRIDGEDRIVER2_CFG_NOCRLH_1_25_US 0x4000
162 #define HBRIDGEDRIVER2_CFG_NOCRLH_1_5_US 0x5000
163 #define HBRIDGEDRIVER2_CFG_NOCRLH_1_75_US 0x6000
164 #define HBRIDGEDRIVER2_CFG_NOCRLH_2_US 0x7000
165 #define HBRIDGEDRIVER2_CFG_NOCRLH_2_25_US 0x8000
166 #define HBRIDGEDRIVER2_CFG_NOCRLH_2_5_US 0x9000
167 #define HBRIDGEDRIVER2_CFG_NOCRLH_2_75_US 0xA000
168 #define HBRIDGEDRIVER2_CFG_NOCRLH_3_US 0xB000
169 #define HBRIDGEDRIVER2_CFG_NOCRLH_3_25_US 0xC000
170 #define HBRIDGEDRIVER2_CFG_NOCRLH_3_5_US 0xD000
171 #define HBRIDGEDRIVER2_CFG_NOCRLH_3_75_US 0xE000
172 #define HBRIDGEDRIVER2_CFG_NOCRLH_4_US 0xF000
173 #define HBRIDGEDRIVER2_CFG_NOCRHL_250_NS 0x0000
174 #define HBRIDGEDRIVER2_CFG_NOCRHL_500_NS 0x0100
175 #define HBRIDGEDRIVER2_CFG_NOCRHL_750_NS 0x0200
176 #define HBRIDGEDRIVER2_CFG_NOCRHL_1_US 0x0300
177 #define HBRIDGEDRIVER2_CFG_NOCRHL_1_25_US 0x0400
178 #define HBRIDGEDRIVER2_CFG_NOCRHL_1_5_US 0x0500
179 #define HBRIDGEDRIVER2_CFG_NOCRHL_1_75_US 0x0600
180 #define HBRIDGEDRIVER2_CFG_NOCRHL_2_US 0x0700
181 #define HBRIDGEDRIVER2_CFG_NOCRHL_2_25_US 0x0800
182 #define HBRIDGEDRIVER2_CFG_NOCRHL_2_5_US 0x0900
183 #define HBRIDGEDRIVER2_CFG_NOCRHL_2_75_US 0x0A00
184 #define HBRIDGEDRIVER2_CFG_NOCRHL_3_US 0x0B00
185 #define HBRIDGEDRIVER2_CFG_NOCRHL_3_25_US 0x0C00
186 #define HBRIDGEDRIVER2_CFG_NOCRHL_3_5_US 0x0D00
187 #define HBRIDGEDRIVER2_CFG_NOCRHL_3_75_US 0x0E00
188 #define HBRIDGEDRIVER2_CFG_NOCRHL_4_US 0x0F00
189 #define HBRIDGEDRIVER2_CFG_OCTH_0_25_V 0x0000
190 #define HBRIDGEDRIVER2_CFG_OCTH_0_5_V 0x0020
191 #define HBRIDGEDRIVER2_CFG_OCTH_0_75_V 0x0040
192 #define HBRIDGEDRIVER2_CFG_OCTH_1_V 0x0060
193 #define HBRIDGEDRIVER2_CFG_OCTH_1_25_V 0x0080
194 #define HBRIDGEDRIVER2_CFG_OCTH_1_5_V 0x0090
195 #define HBRIDGEDRIVER2_CFG_OCTH_1_75_V 0x00C0
196 #define HBRIDGEDRIVER2_CFG_OCTH_2_V 0x00E0
197 #define HBRIDGEDRIVER2_CFG_FULL_H_BRIDGE 0x0000
198 #define HBRIDGEDRIVER2_CFG_2_HALF_BRIDGES 0x0010
199 #define HBRIDGEDRIVER2_CFG_SLOW_SLEW_RATE 0x0000
200 #define HBRIDGEDRIVER2_CFG_FAST_SLEW_RATE 0x0008
206 #define HBRIDGEDRIVER2_CLEAR 0x00
207 #define HBRIDGEDRIVER2_SET 0x01
217 #define HBRIDGEDRIVER2_SET_DATA_SAMPLE_EDGE SET_SPI_DATA_SAMPLE_EDGE
218 #define HBRIDGEDRIVER2_SET_DATA_SAMPLE_MIDDLE SET_SPI_DATA_SAMPLE_MIDDLE
236 #define HBRIDGEDRIVER2_MAP_MIKROBUS( cfg, mikrobus ) \
237 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
238 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
239 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
240 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
241 cfg.en = MIKROBUS( mikrobus, MIKROBUS_RST ); \
242 cfg.pwm = MIKROBUS( mikrobus, MIKROBUS_PWM )
723 #endif // HBRIDGEDRIVER2_H
pwm_t pwm
Definition: hbridgedriver2.h:261
err_t hbridgedriver2_pwm_stop(hbridgedriver2_t *ctx)
H-Bridge Driver 2 stop PWM module.
err_t hbridgedriver2_enable(hbridgedriver2_t *ctx)
H-Bridge Driver 2 enable function.
digital_out_t en
Definition: hbridgedriver2.h:254
err_t hbridgedriver2_read_reg(hbridgedriver2_t *ctx, uint8_t reg, uint8_t *global_fault, uint16_t *data_out)
H-Bridge Driver 2 data reading function.
uint32_t pwm_freq
Definition: hbridgedriver2.h:263
This file contains SPI specific macros, functions, etc.
err_t hbridgedriver2_default_cfg(hbridgedriver2_t *ctx)
H-Bridge Driver 2 default configuration function.
uint8_t ovr
Definition: hbridgedriver2.h:321
uint16_t product_code_2
Definition: hbridgedriver2.h:302
err_t hbridgedriver2_run_forward(hbridgedriver2_t *ctx, uint8_t *global_fault)
H-Bridge Driver 2 run forward function.
uint8_t uvr
Definition: hbridgedriver2.h:322
@ HBRIDGEDRIVER2_ERROR
Definition: hbridgedriver2.h:335
uint16_t version
Definition: hbridgedriver2.h:300
err_t hbridgedriver2_set_control(hbridgedriver2_t *ctx, uint8_t *global_fault, uint16_t control)
H-Bridge Driver 2 set control function.
pin_name_t pwm
Definition: hbridgedriver2.h:287
pin_name_t miso
Definition: hbridgedriver2.h:274
uint16_t spi_frame_id
Definition: hbridgedriver2.h:303
err_t hbridgedriver2_get_status(hbridgedriver2_t *ctx, uint16_t *status)
H-Bridge Driver 2 get status function.
uint32_t dev_pwm_freq
Definition: hbridgedriver2.h:289
pin_name_t en
Definition: hbridgedriver2.h:280
@ HBRIDGEDRIVER2_OK
Definition: hbridgedriver2.h:334
err_t hbridgedriver2_write_reg(hbridgedriver2_t *ctx, uint8_t reg, uint8_t *global_fault, uint16_t data_in)
H-Bridge Driver 2 data writing function.
uint8_t mode
Definition: hbridgedriver2.h:324
uint8_t hs_2
Definition: hbridgedriver2.h:315
uint8_t ls_1
Definition: hbridgedriver2.h:314
pin_name_t mosi
Definition: hbridgedriver2.h:275
void hbridgedriver2_cfg_setup(hbridgedriver2_cfg_t *cfg)
H-Bridge Driver 2 configuration object setup function.
uint16_t product_code_1
Definition: hbridgedriver2.h:301
err_t hbridgedriver2_stop_with_brake(hbridgedriver2_t *ctx, uint8_t *global_fault)
H-Bridge Driver 2 stop with brake function.
spi_master_mode_t spi_mode
Definition: hbridgedriver2.h:284
err_t hbridgedriver2_get_device_id(hbridgedriver2_t *ctx, uint8_t *global_fault, hbridgedriver2_dev_id_t *dev_id)
H-Bridge Driver 2 get device ID function.
err_t hbridgedriver2_set_duty_cycle(hbridgedriver2_t *ctx, float duty_cycle)
H-Bridge Driver 2 sets PWM duty cycle.
err_t hbridgedriver2_read_id(hbridgedriver2_t *ctx, uint8_t reg, uint8_t *global_fault, uint16_t *data_out)
H-Bridge Driver 2 data read ID function.
err_t hbridgedriver2_set_config(hbridgedriver2_t *ctx, uint8_t *global_fault, uint16_t config)
H-Bridge Driver 2 set config function.
err_t hbridgedriver2_control(hbridgedriver2_t *ctx, uint8_t *global_fault, hbridgedriver2_ctrl_t dev_ctrl)
H-Bridge Driver 2 control function.
H-Bridge Driver 2 Click device ID object.
Definition: hbridgedriver2.h:298
err_t hbridgedriver2_pwm_start(hbridgedriver2_t *ctx)
H-Bridge Driver 2 start PWM module.
err_t hbridgedriver2_disable(hbridgedriver2_t *ctx)
H-Bridge Driver 2 disable function.
spi_master_t spi
Definition: hbridgedriver2.h:257
err_t hbridgedriver2_set_active_mode(hbridgedriver2_t *ctx)
H-Bridge Driver 2 set active mode function.
err_t hbridgedriver2_run_backward(hbridgedriver2_t *ctx, uint8_t *global_fault)
H-Bridge Driver 2 run backward function.
H-Bridge Driver 2 Click configuration object.
Definition: hbridgedriver2.h:272
pin_name_t chip_select
Definition: hbridgedriver2.h:259
H-Bridge Driver 2 Click context object.
Definition: hbridgedriver2.h:252
err_t hbridgedriver2_stop(hbridgedriver2_t *ctx, uint8_t *global_fault)
H-Bridge Driver 2 stop function.
err_t hbridgedriver2_init(hbridgedriver2_t *ctx, hbridgedriver2_cfg_t *cfg)
H-Bridge Driver 2 initialization function.
uint8_t fw_h
Definition: hbridgedriver2.h:318
uint8_t fw_a
Definition: hbridgedriver2.h:319
spi_master_chip_select_polarity_t cs_polarity
Definition: hbridgedriver2.h:285
uint8_t ls_2
Definition: hbridgedriver2.h:316
hbridgedriver2_return_value_t
H-Bridge Driver 2 Click return value data.
Definition: hbridgedriver2.h:333
err_t hbridgedriver2_get_control(hbridgedriver2_t *ctx, uint16_t *control)
H-Bridge Driver 2 get control function.
pin_name_t cs
Definition: hbridgedriver2.h:277
H-Bridge Driver 2 Click device ID object.
Definition: hbridgedriver2.h:312
uint8_t hs_1
Definition: hbridgedriver2.h:313
pin_name_t sck
Definition: hbridgedriver2.h:276
uint16_t id_header
Definition: hbridgedriver2.h:299
err_t hbridgedriver2_get_config(hbridgedriver2_t *ctx, uint16_t *config)
H-Bridge Driver 2 get config function.
uint32_t spi_speed
Definition: hbridgedriver2.h:283
err_t hbridgedriver2_read_clear_reg(hbridgedriver2_t *ctx, uint8_t reg, uint8_t *global_fault, uint16_t *data_out)
H-Bridge Driver 2 data read and clear function.