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 SILENTSTEP4_REG_GCONF 0x00
62 #define SILENTSTEP4_REG_GSTAT 0x01
63 #define SILENTSTEP4_REG_IFCNT 0x02
64 #define SILENTSTEP4_REG_NODECONF 0x03
65 #define SILENTSTEP4_REG_IOIN 0x04
66 #define SILENTSTEP4_REG_DRV_CONF 0x0A
67 #define SILENTSTEP4_REG_GLOBAL_SCALER 0x0B
68 #define SILENTSTEP4_REG_IHOLD_IRUN 0x10
69 #define SILENTSTEP4_REG_TPOWERDOWN 0x11
70 #define SILENTSTEP4_REG_TSTEP 0x12
71 #define SILENTSTEP4_REG_TPWMTHRS 0x13
72 #define SILENTSTEP4_REG_TCOOLTHRS 0x14
73 #define SILENTSTEP4_REG_THIGH 0x15
74 #define SILENTSTEP4_REG_DIRECT_MODE 0x2D
75 #define SILENTSTEP4_REG_ENCMODE 0x38
76 #define SILENTSTEP4_REG_X_ENC 0x39
77 #define SILENTSTEP4_REG_ENC_CONST 0x3A
78 #define SILENTSTEP4_REG_ENC_STATUS 0x3B
79 #define SILENTSTEP4_REG_ENC_LATCH 0x3C
80 #define SILENTSTEP4_REG_ADC_VSUPPLY_AIN 0x50
81 #define SILENTSTEP4_REG_ADC_TEMP 0x51
82 #define SILENTSTEP4_REG_OTW_OV_VTH 0x52
83 #define SILENTSTEP4_REG_MSLUT_0 0x60
84 #define SILENTSTEP4_REG_MSLUT_1 0x61
85 #define SILENTSTEP4_REG_MSLUT_2 0x62
86 #define SILENTSTEP4_REG_MSLUT_3 0x63
87 #define SILENTSTEP4_REG_MSLUT_4 0x64
88 #define SILENTSTEP4_REG_MSLUT_5 0x65
89 #define SILENTSTEP4_REG_MSLUT_6 0x66
90 #define SILENTSTEP4_REG_MSLUT_7 0x67
91 #define SILENTSTEP4_REG_MSLUTSEL 0x68
92 #define SILENTSTEP4_REG_MSLUTSTART 0x69
93 #define SILENTSTEP4_REG_MSCNT 0x6A
94 #define SILENTSTEP4_REG_MSCURACT 0x6B
95 #define SILENTSTEP4_REG_CHOPCONF 0x6C
96 #define SILENTSTEP4_REG_COOLCONF 0x6D
97 #define SILENTSTEP4_REG_DRV_STATUS 0x6F
98 #define SILENTSTEP4_REG_PWMCONF 0x70
99 #define SILENTSTEP4_REG_PWM_SCALE 0x71
100 #define SILENTSTEP4_REG_PWM_AUTO 0x72
101 #define SILENTSTEP4_REG_SG4_THRS 0x74
102 #define SILENTSTEP4_REG_SG4_RESULT 0x75
103 #define SILENTSTEP4_REG_SG4_IND 0x76
109 #define SILENTSTEP4_PCA9538A_REG_INPUT 0x00
110 #define SILENTSTEP4_PCA9538A_REG_OUTPUT 0x01
111 #define SILENTSTEP4_PCA9538A_REG_POLARITY 0x02
112 #define SILENTSTEP4_PCA9538A_REG_CONFIG 0x03
128 #define SILENTSTEP4_IOIN_VERSION_MASK 0xFF000000ul
129 #define SILENTSTEP4_IOIN_VERSION_DEFAULT 0x40000000ul
135 #define SILENTSTEP4_PIN_EN 0x01
136 #define SILENTSTEP4_PIN_SLEEP 0x02
137 #define SILENTSTEP4_PIN_DIAG0 0x04
138 #define SILENTSTEP4_PIN_DIAG1 0x08
139 #define SILENTSTEP4_PIN_OV 0x10
145 #define SILENTSTEP4_PCA9538A_DEFAULT_CONFIG 0xFC
151 #define SILENTSTEP4_DIR_CW 0
152 #define SILENTSTEP4_DIR_CCW 1
158 #define SILENTSTEP4_PIN_STATE_LOW 0
159 #define SILENTSTEP4_PIN_STATE_HIGH 1
165 #define SILENTSTEP4_SPEED_VERY_SLOW 0
166 #define SILENTSTEP4_SPEED_SLOW 1
167 #define SILENTSTEP4_SPEED_MEDIUM 2
168 #define SILENTSTEP4_SPEED_FAST 3
169 #define SILENTSTEP4_SPEED_VERY_FAST 4
175 #define SILENTSTEP4_TOFF_MASK 0x0000000Ful
176 #define SILENTSTEP4_TOFF_SHIFT 0
177 #define SILENTSTEP4_TOFF_DRIVER_DISABLE 0
178 #define SILENTSTEP4_TOFF_MIN 1
179 #define SILENTSTEP4_TOFF_DEFAULT 4
180 #define SILENTSTEP4_TOFF_MAX 15
186 #define SILENTSTEP4_MRES_MASK 0x0F000000ul
187 #define SILENTSTEP4_MRES_SHIFT 24
188 #define SILENTSTEP4_MRES_256 0
189 #define SILENTSTEP4_MRES_128 1
190 #define SILENTSTEP4_MRES_64 2
191 #define SILENTSTEP4_MRES_32 3
192 #define SILENTSTEP4_MRES_16 4
193 #define SILENTSTEP4_MRES_8 5
194 #define SILENTSTEP4_MRES_4 6
195 #define SILENTSTEP4_MRES_2 7
196 #define SILENTSTEP4_MRES_FULLSTEP 8
202 #define SILENTSTEP4_IRUN_MASK 0x00000F00ul
203 #define SILENTSTEP4_IRUN_SHIFT 8
204 #define SILENTSTEP4_IRUN_MIN 0
205 #define SILENTSTEP4_IRUN_DEFAULT 16
206 #define SILENTSTEP4_IRUN_MAX 31
213 #define SILENTSTEP4_DEVICE_ADDRESS_A1A0_00 0x70
214 #define SILENTSTEP4_DEVICE_ADDRESS_A1A0_01 0x71
215 #define SILENTSTEP4_DEVICE_ADDRESS_A1A0_10 0x72
216 #define SILENTSTEP4_DEVICE_ADDRESS_A1A0_11 0x73
226 #define SILENTSTEP4_SET_DATA_SAMPLE_EDGE SET_SPI_DATA_SAMPLE_EDGE
227 #define SILENTSTEP4_SET_DATA_SAMPLE_MIDDLE SET_SPI_DATA_SAMPLE_MIDDLE
245 #define SILENTSTEP4_MAP_MIKROBUS( cfg, mikrobus ) \
246 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
247 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
248 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
249 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
250 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
251 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
252 cfg.dir = MIKROBUS( mikrobus, MIKROBUS_AN ); \
253 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
254 cfg.step = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
255 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
689 #endif // SILENTSTEP4_H
pin_name_t chip_select
Definition: silentstep4.h:276
uint32_t spi_speed
Definition: silentstep4.h:300
@ SILENTSTEP4_OK
Definition: silentstep4.h:312
void silentstep4_set_step_pin(silentstep4_t *ctx, uint8_t state)
Silent Step 4 set step pin function.
void silentstep4_drive_motor(silentstep4_t *ctx, uint32_t steps, uint8_t speed)
Silent Step 4 driver motor function.
silentstep4_return_value_t
Silent Step 4 Click return value data.
Definition: silentstep4.h:311
digital_in_t int_pin
Definition: silentstep4.h:270
spi_master_t spi
Definition: silentstep4.h:273
void silentstep4_cfg_setup(silentstep4_cfg_t *cfg)
Silent Step 4 configuration object setup function.
pin_name_t rst
Definition: silentstep4.h:293
pin_name_t dir
Definition: silentstep4.h:292
pin_name_t sda
Definition: silentstep4.h:287
err_t silentstep4_check_com(silentstep4_t *ctx)
Silent Step 4 check com function.
err_t silentstep4_get_diag0_pin(silentstep4_t *ctx, uint8_t *state)
Silent Step 4 get diag0 pin function.
Silent Step 4 Click configuration object.
Definition: silentstep4.h:285
This file contains SPI specific macros, functions, etc.
err_t silentstep4_write_reg(silentstep4_t *ctx, uint8_t reg, uint32_t data_in)
Silent Step 4 write reg function.
err_t silentstep4_set_step_res(silentstep4_t *ctx, uint8_t mres)
Silent Step 4 set step res function.
pin_name_t int_pin
Definition: silentstep4.h:295
uint8_t silentstep4_get_int_pin(silentstep4_t *ctx)
Silent Step 4 get int pin function.
Silent Step 4 Click context object.
Definition: silentstep4.h:265
err_t silentstep4_get_en_pin(silentstep4_t *ctx, uint8_t *state)
Silent Step 4 get en pin function.
err_t silentstep4_set_sleep_pin(silentstep4_t *ctx, uint8_t state)
Silent Step 4 set sleep pin function.
pin_name_t mosi
Definition: silentstep4.h:289
@ SILENTSTEP4_ERROR
Definition: silentstep4.h:313
uint8_t i2c_address
Definition: silentstep4.h:298
err_t silentstep4_default_cfg(silentstep4_t *ctx)
Silent Step 4 default configuration function.
void silentstep4_reset_pca(silentstep4_t *ctx)
Silent Step 4 reset device function.
pin_name_t cs
Definition: silentstep4.h:291
err_t silentstep4_set_run_current(silentstep4_t *ctx, uint8_t irun)
Silent Step 4 set run current function.
err_t silentstep4_get_sleep_pin(silentstep4_t *ctx, uint8_t *state)
Silent Step 4 get sleep pin function.
digital_out_t step
Definition: silentstep4.h:268
err_t silentstep4_pca_write_reg(silentstep4_t *ctx, uint8_t reg, uint8_t data_in)
Silent Step 4 pca write reg function.
pin_name_t step
Definition: silentstep4.h:294
err_t silentstep4_init(silentstep4_t *ctx, silentstep4_cfg_t *cfg)
Silent Step 4 initialization function.
struct silentstep4_s silentstep4_t
Silent Step 4 Click context object.
pin_name_t sck
Definition: silentstep4.h:290
spi_master_chip_select_polarity_t cs_polarity
Definition: silentstep4.h:302
err_t silentstep4_read_reg(silentstep4_t *ctx, uint8_t reg, uint32_t *data_out)
Silent Step 4 read reg function.
err_t silentstep4_set_en_pin(silentstep4_t *ctx, uint8_t state)
Silent Step 4 set en pin function.
uint32_t i2c_speed
Definition: silentstep4.h:297
err_t silentstep4_enable_device(silentstep4_t *ctx)
Silent Step 4 enable device function.
pin_name_t scl
Definition: silentstep4.h:286
digital_out_t rst
Definition: silentstep4.h:267
err_t silentstep4_get_ov_pin(silentstep4_t *ctx, uint8_t *state)
Silent Step 4 get ov pin function.
void silentstep4_set_rst_pin(silentstep4_t *ctx, uint8_t state)
Silent Step 4 set rst pin function.
void silentstep4_set_direction(silentstep4_t *ctx, uint8_t dir)
Silent Step 4 set direction function.
uint8_t slave_address
Definition: silentstep4.h:275
err_t silentstep4_disable_device(silentstep4_t *ctx)
Silent Step 4 disable device function.
void silentstep4_switch_direction(silentstep4_t *ctx)
Silent Step 4 switch direction function.
pin_name_t miso
Definition: silentstep4.h:288
err_t silentstep4_pca_read_reg(silentstep4_t *ctx, uint8_t reg, uint8_t *data_out)
Silent Step 4 pca read reg function.
err_t silentstep4_get_diag1_pin(silentstep4_t *ctx, uint8_t *state)
Silent Step 4 get diag1 pin function.
i2c_master_t i2c
Definition: silentstep4.h:272
err_t silentstep4_set_toff(silentstep4_t *ctx, uint8_t toff)
Silent Step 4 set toff function.
digital_out_t dir
Definition: silentstep4.h:266
spi_master_mode_t spi_mode
Definition: silentstep4.h:301