silentstep2  2.1.0.0
silentstep2.h
Go to the documentation of this file.
1 /****************************************************************************
2 ** Copyright (C) 2020 MikroElektronika d.o.o.
3 ** Contact: https://www.mikroe.com/contact
4 **
5 ** Permission is hereby granted, free of charge, to any person obtaining a copy
6 ** of this software and associated documentation files (the "Software"), to deal
7 ** in the Software without restriction, including without limitation the rights
8 ** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 ** copies of the Software, and to permit persons to whom the Software is
10 ** furnished to do so, subject to the following conditions:
11 ** The above copyright notice and this permission notice shall be
12 ** included in all copies or substantial portions of the Software.
13 **
14 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
16 ** OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18 ** DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
19 ** OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20 ** USE OR OTHER DEALINGS IN THE SOFTWARE.
21 ****************************************************************************/
22 
28 #ifndef SILENTSTEP2_H
29 #define SILENTSTEP2_H
30 
31 #ifdef __cplusplus
32 extern "C"{
33 #endif
34 
39 #ifdef PREINIT_SUPPORTED
40 #include "preinit.h"
41 #endif
42 
43 #ifdef MikroCCoreVersion
44  #if MikroCCoreVersion >= 1
45  #include "delays.h"
46  #endif
47 #endif
48 
49 #include "drv_digital_out.h"
50 #include "drv_digital_in.h"
51 #include "drv_i2c_master.h"
52 #include "drv_spi_master.h"
53 #include "spi_specifics.h"
54 
75 #define SILENTSTEP2_REG_GCONF 0x00
76 #define SILENTSTEP2_REG_GSTAT 0x01
77 #define SILENTSTEP2_REG_IOIN 0x04
78 #define SILENTSTEP2_REG_IHOLD_IRUN 0x10
79 #define SILENTSTEP2_REG_TPOWERDOWN 0x11
80 #define SILENTSTEP2_REG_TSTEP 0x12
81 #define SILENTSTEP2_REG_TPWMTHRS 0x13
82 #define SILENTSTEP2_REG_TCOOLTHRS 0x14
83 #define SILENTSTEP2_REG_THIGH 0x15
84 #define SILENTSTEP2_REG_XDIRECT 0x2D
85 #define SILENTSTEP2_REG_VDCMIN 0x33
86 #define SILENTSTEP2_REG_MSLUT0 0x60
87 #define SILENTSTEP2_REG_MSLUT1 0x61
88 #define SILENTSTEP2_REG_MSLUT2 0x62
89 #define SILENTSTEP2_REG_MSLUT3 0x63
90 #define SILENTSTEP2_REG_MSLUT4 0x64
91 #define SILENTSTEP2_REG_MSLUT5 0x65
92 #define SILENTSTEP2_REG_MSLUT6 0x66
93 #define SILENTSTEP2_REG_MSLUT7 0x67
94 #define SILENTSTEP2_REG_MSLUTSEL 0x68
95 #define SILENTSTEP2_REG_MSLUTSTART 0x69
96 #define SILENTSTEP2_REG_MSCNT 0x6A
97 #define SILENTSTEP2_REG_MSCURACT 0x6B
98 #define SILENTSTEP2_REG_CHOPCONF 0x6C
99 #define SILENTSTEP2_REG_COOLCONF 0x6D
100 #define SILENTSTEP2_REG_DCCTRL 0x6E
101 #define SILENTSTEP2_REG_DRV_STATUS 0x6F
102 #define SILENTSTEP2_REG_PWMCONF 0x70
103 #define SILENTSTEP2_REG_PWM_SCALE 0x71
104 #define SILENTSTEP2_REG_ENCM_CTRL 0x72
105 #define SILENTSTEP2_REG_LOST_STEPS 0x73
106 #define SILENTSTEP2_REG_EXP_IN_PORT 0x00
107 #define SILENTSTEP2_REG_EXP_OUT_PORT 0x01
108 #define SILENTSTEP2_REG_EXP_POL_INV 0x02
109 #define SILENTSTEP2_REG_EXP_CONFIG 0x03
110  // silentstep2_reg
112 
127 #define SILENTSTEP2_GSTAT_RESET 0x00000001ul
128 #define SILENTSTEP2_GSTAT_DRV_ERR 0x00000002ul
129 #define SILENTSTEP2_GSTAT_UV_CP 0x00000004ul
130 
135 #define SILENTSTEP2_GCONF_I_SC_AN_OP_NORMAL 0x00
136 #define SILENTSTEP2_GCONF_I_SC_AN_AIN 0x01
137 #define SILENTSTEP2_GCONF_INT_RSE_OP_NORMAL 0x00
138 #define SILENTSTEP2_GCONF_INT_RSE_INT_RSE 0x01
139 #define SILENTSTEP2_GCONF_DISABLE 0x00
140 #define SILENTSTEP2_GCONF_ENABLE 0x01
141 
146 #define SILENTSTEP2_THIGH_DEFAULT 0x00000300ul
147 #define SILENTSTEP2_THIGH_MAX 0x000FFFFFul
148 
155 #define SILENTSTEP2_TCOOLTHRS_DEFAULT 0x00002700ul
156 #define SILENTSTEP2_TCOOLTHRS_MAX 0x000FFFFFul
157 
164 #define SILENTSTEP2_CHOPCONF_SEMIN_0 0x00
165 #define SILENTSTEP2_CHOPCONF_SEMIN_BIT_MASK 0x0F
166 #define SILENTSTEP2_CHOPCONF_SEUP_1 0x00
167 #define SILENTSTEP2_CHOPCONF_SEUP_2 0x01
168 #define SILENTSTEP2_CHOPCONF_SEUP_3 0x02
169 #define SILENTSTEP2_CHOPCONF_SEUP_8 0x03
170 #define SILENTSTEP2_CHOPCONF_SEMAX_0 0x00
171 #define SILENTSTEP2_CHOPCONF_SEMAX_BIT_MASK 0x0F
172 #define SILENTSTEP2_CHOPCONF_SEDN_32 0x00
173 #define SILENTSTEP2_CHOPCONF_SEDN_8 0x01
174 #define SILENTSTEP2_CHOPCONF_SEDN_2 0x02
175 #define SILENTSTEP2_CHOPCONF_SEDN_1 0x03
176 #define SILENTSTEP2_CHOPCONF_SEIMIN_1_2 0x00
177 #define SILENTSTEP2_CHOPCONF_SEIMIN_1_4 0x01
178 #define SILENTSTEP2_CHOPCONF_SGT_M64 0x00
179 #define SILENTSTEP2_CHOPCONF_SGT_P64 0x7F
180 #define SILENTSTEP2_CHOPCONF_SFILT_MODE_STD 0x00
181 #define SILENTSTEP2_CHOPCONF_SFILT_MODE_FLTR 0x01
182 
189 #define SILENTSTEP2_IHOLD_10_32 0x0A
190 #define SILENTSTEP2_IHOLD_BIT_MASK 0x1F
191 #define SILENTSTEP2_IRUN_10_32 0x0A
192 #define SILENTSTEP2_IRUN_BIT_MASK 0x1F
193 #define SILENTSTEP2_IHOLDDELAY_PWR_DOWN 0x00
194 #define SILENTSTEP2_IHOLDDELAY_32 0x05
195 #define SILENTSTEP2_IHOLDDELAY_BIT_MASK 0x0F
196 
201 #define SILENTSTEP2_TOFF_DIS 0x00
202 #define SILENTSTEP2_TOFF_NCLK_140 0x04
203 #define SILENTSTEP2_TOFF_BIT_MASK 0x0F
204 
209 #define SILENTSTEP2_STEP_SPEED_MIN 1
210 #define SILENTSTEP2_STEP_SPEED_MAX 100
211 #define SILENTSTEP2_ANGLE_360_DEGREES 360.0f
212 
217 #define SILENTSTEP2_CHOPCONF_CHM_MODE_STND 0x00
218 #define SILENTSTEP2_CHOPCONF_CHM_CONST_OFF_TIME 0x01
219 #define SILENTSTEP2_CHOPCONF_CHM_BIT_MASK 0x00004000ul
220 #define SILENTSTEP2_CHOPCONF_HE_OS_M3 0x00
221 #define SILENTSTEP2_CHOPCONF_HE_OS_M2 0x01
222 #define SILENTSTEP2_CHOPCONF_HE_OS_M1 0x02
223 #define SILENTSTEP2_CHOPCONF_HE_OS_0 0x03
224 #define SILENTSTEP2_CHOPCONF_HE_OS_1 0x04
225 #define SILENTSTEP2_CHOPCONF_HE_OS_2 0x05
226 #define SILENTSTEP2_CHOPCONF_HE_OS_3 0x06
227 #define SILENTSTEP2_CHOPCONF_HE_OS_4 0x07
228 #define SILENTSTEP2_CHOPCONF_HE_OS_5 0x08
229 #define SILENTSTEP2_CHOPCONF_HE_OS_6 0x09
230 #define SILENTSTEP2_CHOPCONF_HE_OS_7 0x0A
231 #define SILENTSTEP2_CHOPCONF_HE_OS_8 0x0B
232 #define SILENTSTEP2_CHOPCONF_HE_OS_9 0x0C
233 #define SILENTSTEP2_CHOPCONF_HE_OS_10 0x0D
234 #define SILENTSTEP2_CHOPCONF_HE_OS_11 0x0E
235 #define SILENTSTEP2_CHOPCONF_HE_OS_12 0x0F
236 #define SILENTSTEP2_CHOPCONF_HE_OS_BIT_MASK 0x00000780ul
237 #define SILENTSTEP2_CHOPCONF_HSTRT_TFD_0 0x00
238 #define SILENTSTEP2_CHOPCONF_HSTRT_TFD_1 0x01
239 #define SILENTSTEP2_CHOPCONF_HSTRT_TFD_2 0x02
240 #define SILENTSTEP2_CHOPCONF_HSTRT_TFD_3 0x03
241 #define SILENTSTEP2_CHOPCONF_HSTRT_TFD_4 0x04
242 #define SILENTSTEP2_CHOPCONF_HSTRT_TFD_5 0x05
243 #define SILENTSTEP2_CHOPCONF_HSTRT_TFD_6 0x06
244 #define SILENTSTEP2_CHOPCONF_HSTRT_TFD_7 0x07
245 #define SILENTSTEP2_CHOPCONF_HSTRT_TFD_BIT_MASK 0x00000070ul
246 
251 #define SILENTSTEP2_MSLUT_SEL_0 0x00
252 #define SILENTSTEP2_MSLUT_SEL_1 0x01
253 #define SILENTSTEP2_MSLUT_SEL_2 0x02
254 #define SILENTSTEP2_MSLUT_SEL_3 0x03
255 #define SILENTSTEP2_MSLUT_SEL_4 0x04
256 #define SILENTSTEP2_MSLUT_SEL_5 0x05
257 #define SILENTSTEP2_MSLUT_SEL_6 0x06
258 #define SILENTSTEP2_MSLUT_SEL_7 0x07
259 #define SILENTSTEP2_MSLUTSEL_WIDTH_BIT_MASK 0x000000FFul
260 #define SILENTSTEP2_MSLUTSEL_SEG_BIT_MASK 0x00FFFFFFul
261 
266 #define SILENTSTEP2_MSLUTSTART_SIN_BIT_MASK 0x000000FFul
267 #define SILENTSTEP2_MSLUTSTART_SIN90_BIT_MASK 0x000000FFul
268 
273 #define SILENTSTEP2_CHOPCONF_MRES_BIT_MASK 0xF0FFFFFFul
274 #define SILENTSTEP2_CHOPCONF_DEDGE_BIT_MASK 0xDFFFFFFFul
275 #define SILENTSTEP2_CHOPCONF_INTPOL_BIT_MASK 0xEFFFFFFFul
276 #define SILENTSTEP2_CHOPCONF_TBL_BIT_MASK 0xFFFE7FFFul
277 #define SILENTSTEP2_CHOPCONF_TOFF_BIT_MASK 0xFFFFFFF0ul
278 
283 #define SILENTSTEP2_PIN_NONE 0x00
284 #define SILENTSTEP2_PIN_EN 0x01
285 #define SILENTSTEP2_PIN_FT1 0x02
286 #define SILENTSTEP2_PIN_FT2 0x04
287 #define SILENTSTEP2_PIN_ALL 0x07
288 
293 #define SILENTSTEP2_DIRECTION_COUNTERCLOCKWISE 0
294 #define SILENTSTEP2_DIRECTION_CLOCKWISE 1
295 
300 #define SILENTSTEP2_STEP_DELAY_DEFAULT_100US 100ul
301 
307 #define SILENTSTEP2_DEVICE_ADDRESS_0 0x70
308 #define SILENTSTEP2_DEVICE_ADDRESS_1 0x72
309 #define SILENTSTEP2_DEVICE_ADDRESS_2 0x74
310 #define SILENTSTEP2_DEVICE_ADDRESS_3 0x76
311 
320 #define SILENTSTEP2_SET_DATA_SAMPLE_EDGE SET_SPI_DATA_SAMPLE_EDGE
321 #define SILENTSTEP2_SET_DATA_SAMPLE_MIDDLE SET_SPI_DATA_SAMPLE_MIDDLE
322  // silentstep2_set
324 
339 #define SILENTSTEP2_MAP_MIKROBUS( cfg, mikrobus ) \
340  cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
341  cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
342  cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
343  cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
344  cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
345  cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
346  cfg.dir = MIKROBUS( mikrobus, MIKROBUS_AN ); \
347  cfg.stp = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
348  cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
349  // silentstep2_map // silentstep2
352 
357 typedef enum
358 {
363 
368 typedef struct
369 {
370  digital_out_t dir;
371  digital_out_t stp;
373  digital_in_t int_pin;
375  i2c_master_t i2c;
376  spi_master_t spi;
378  uint8_t slave_address;
379  pin_name_t chip_select;
381  uint32_t step_delay;
383 } silentstep2_t;
384 
389 typedef struct
390 {
391  pin_name_t scl;
392  pin_name_t sda;
393  pin_name_t miso;
394  pin_name_t mosi;
395  pin_name_t sck;
396  pin_name_t cs;
397  pin_name_t dir;
398  pin_name_t stp;
399  pin_name_t int_pin;
401  uint32_t step_delay;
403  uint32_t i2c_speed;
404  uint8_t i2c_address;
406  uint32_t spi_speed;
407  spi_master_mode_t spi_mode;
408  spi_master_chip_select_polarity_t cs_polarity;
411 
416 typedef struct
417 {
418  uint8_t i_scale_analog;
419  uint8_t internal_rsense;
420  uint8_t en_pwm_mode;
421  uint8_t enc_commutation;
422  uint8_t shaft;
423  uint8_t diag0_error;
424  uint8_t diag0_otpw;
425  uint8_t diag0_stall;
426  uint8_t diag1_stall;
427  uint8_t diag1_index;
428  uint8_t diag1_onstate;
431  uint8_t diag1_pushpull;
433  uint8_t stop_enable;
434  uint8_t direct_mode;
437 
442 typedef struct
443 {
444  uint8_t semin;
445  uint8_t seup;
446  uint8_t semax;
447  uint8_t sedn;
448  uint8_t seimin;
449  uint8_t sgt;
450  uint8_t sfilt;
453 
458 typedef struct
459 {
460  uint8_t pwm_ampl;
461  uint8_t pwm_grad;
462  uint8_t pwm_freq;
463  uint8_t pwm_autoscale;
464  uint8_t pwm_symmetric;
465  uint8_t freewheel;
468 
473 typedef struct
474 {
475  uint16_t sg_result;
476  uint8_t fsactive;
477  uint8_t cs_actual;
478  uint8_t stall_guard;
479  uint8_t ot;
480  uint8_t otpw;
481  uint8_t s2ga;
482  uint8_t s2gb;
483  uint8_t ola;
484  uint8_t olb;
485  uint8_t stst;
488 
493 typedef enum
494 {
496  SILENTSTEP2_ERROR = -1
497 
499 
504 typedef enum
505 {
515 
517 
522 typedef enum
523 {
528 
530 
547 
562 
576 
591 err_t silentstep2_reg_write ( silentstep2_t *ctx, uint8_t reg, uint32_t data_in );
592 
607 err_t silentstep2_reg_read ( silentstep2_t *ctx, uint8_t reg, uint32_t *data_in );
608 
624 
638 err_t silentstep2_get_gstat ( silentstep2_t *ctx, uint32_t *gstat );
639 
655 err_t silentstep2_set_ihold_irun ( silentstep2_t *ctx, uint8_t ihold, uint8_t irun, uint8_t ihold_delay );
656 
671 err_t silentstep2_set_tcoolthrs ( silentstep2_t *ctx, uint32_t tcoolthrs );
672 
687 err_t silentstep2_set_thigh ( silentstep2_t *ctx, uint32_t thigh );
688 
704 err_t silentstep2_set_mslut ( silentstep2_t *ctx, uint8_t mslut_sel, uint32_t mslut );
705 
721 err_t silentstep2_set_mslutsel ( silentstep2_t *ctx, uint32_t lut_seg_str, uint32_t lut_width_sel );
722 
737 err_t silentstep2_set_mslutstart ( silentstep2_t *ctx, uint32_t start_sin, uint32_t start_sin90 );
738 
754 
769 err_t silentstep2_set_dedge ( silentstep2_t *ctx, uint8_t dedge_en );
770 
785 err_t silentstep2_set_intpol ( silentstep2_t *ctx, uint8_t intpol_en );
786 
803 
820 err_t silentstep2_set_h_end_strt ( silentstep2_t *ctx, uint8_t chm, uint8_t h_end_offset, uint8_t hstrt_tfd );
821 
835 err_t silentstep2_set_toff ( silentstep2_t *ctx, uint8_t off_time );
836 
853 
869 
885 
900 err_t silentstep2_port_exp_write ( silentstep2_t *ctx, uint8_t reg, uint8_t data_in );
901 
916 err_t silentstep2_port_exp_read ( silentstep2_t *ctx, uint8_t reg, uint8_t *data_out );
917 
932 err_t silentstep2_set_pins ( silentstep2_t *ctx, uint8_t set_mask, uint8_t clr_mask );
933 
947 err_t silentstep2_get_diag0 ( silentstep2_t *ctx, uint8_t *diag0 );
948 
962 err_t silentstep2_get_diag1 ( silentstep2_t *ctx, uint8_t *diag1 );
963 
977 
991 
1003 void silentstep2_set_direction ( silentstep2_t *ctx, uint8_t dir );
1004 
1016 void silentstep2_set_step ( silentstep2_t *ctx, uint8_t step );
1017 
1031 err_t silentstep2_make_one_step ( silentstep2_t *ctx, uint8_t step_speed );
1032 
1048 err_t silentstep2_rotate_by_angle ( silentstep2_t *ctx, uint8_t step_speed, float angle, uint16_t res_360 );
1049 
1063 
1064 #ifdef __cplusplus
1065 }
1066 #endif
1067 #endif // SILENTSTEP2_H
1068  // silentstep2
1070 
1071 // ------------------------------------------------------------------------ END
SILENTSTEP2_MRES_16
@ SILENTSTEP2_MRES_16
Definition: silentstep2.h:510
silentstep2_drv_status_t::olb
uint8_t olb
Definition: silentstep2.h:484
SILENTSTEP2_ERROR
@ SILENTSTEP2_ERROR
Definition: silentstep2.h:496
silentstep2_drv_status_t::s2gb
uint8_t s2gb
Definition: silentstep2.h:482
silentstep2_drv_status_t::sg_result
uint16_t sg_result
Definition: silentstep2.h:475
silentstep2_t::stp
digital_out_t stp
Definition: silentstep2.h:371
silentstep2_set_mslutstart
err_t silentstep2_set_mslutstart(silentstep2_t *ctx, uint32_t start_sin, uint32_t start_sin90)
Silent Step 2 sets the absolute current microstep table function.
silentstep2_drv_t
silentstep2_drv_t
Silent Step 2 Click driver selector.
Definition: silentstep2.h:358
SILENTSTEP2_TBL_CLOCKS_36
@ SILENTSTEP2_TBL_CLOCKS_36
Definition: silentstep2.h:526
silentstep2_t::i2c
i2c_master_t i2c
Definition: silentstep2.h:375
silentstep2_cfg_t::stp
pin_name_t stp
Definition: silentstep2.h:398
silentstep2_rotate_by_angle
err_t silentstep2_rotate_by_angle(silentstep2_t *ctx, uint8_t step_speed, float angle, uint16_t res_360)
Silent Step 2 rotates the shaft through a desired angle function.
silentstep2_drv_status_t::cs_actual
uint8_t cs_actual
Definition: silentstep2.h:477
silentstep2_gconf_t::diag0_error
uint8_t diag0_error
Definition: silentstep2.h:423
silentstep2_pwmconf_t::pwm_autoscale
uint8_t pwm_autoscale
Definition: silentstep2.h:463
silentstep2_gconf_t::enc_commutation
uint8_t enc_commutation
Definition: silentstep2.h:421
silentstep2_gconf_t::small_hysteresis
uint8_t small_hysteresis
Definition: silentstep2.h:432
silentstep2_set_h_end_strt
err_t silentstep2_set_h_end_strt(silentstep2_t *ctx, uint8_t chm, uint8_t h_end_offset, uint8_t hstrt_tfd)
Silent Step 2 sets the chopper mode config function.
SILENTSTEP2_MRES_2
@ SILENTSTEP2_MRES_2
Definition: silentstep2.h:513
silentstep2_set_direction
void silentstep2_set_direction(silentstep2_t *ctx, uint8_t dir)
Silent Step 2 sets the clockwise or counterclockwise direction movement function.
SILENTSTEP2_TBL_CLOCKS_24
@ SILENTSTEP2_TBL_CLOCKS_24
Definition: silentstep2.h:525
silentstep2_drv_status_t::stall_guard
uint8_t stall_guard
Definition: silentstep2.h:478
silentstep2_drv_status_t::s2ga
uint8_t s2ga
Definition: silentstep2.h:481
spi_specifics.h
This file contains SPI specific macros, functions, etc.
silentstep2_gconf_t::stop_enable
uint8_t stop_enable
Definition: silentstep2.h:433
silentstep2_cfg_t
Silent Step 2 Click configuration object.
Definition: silentstep2.h:390
silentstep2_set_mslut
err_t silentstep2_set_mslut(silentstep2_t *ctx, uint8_t mslut_sel, uint32_t mslut)
Silent Step 2 sets the microstep table entries function.
silentstep2_coolconf_t::seimin
uint8_t seimin
Definition: silentstep2.h:448
silentstep2_gconf_t::i_scale_analog
uint8_t i_scale_analog
Definition: silentstep2.h:418
silentstep2_mres_t
silentstep2_mres_t
Silent Step 2 Click reduced microstep resolution value data.
Definition: silentstep2.h:505
silentstep2_cfg_t::mosi
pin_name_t mosi
Definition: silentstep2.h:394
silentstep2_get_gstat
err_t silentstep2_get_gstat(silentstep2_t *ctx, uint32_t *gstat)
Silent Step 2 get global status function.
silentstep2_coolconf_t::seup
uint8_t seup
Definition: silentstep2.h:445
SILENTSTEP2_MRES_NATIVE
@ SILENTSTEP2_MRES_NATIVE
Definition: silentstep2.h:514
silentstep2_drv_status_t::stst
uint8_t stst
Definition: silentstep2.h:485
SILENTSTEP2_MRES_4
@ SILENTSTEP2_MRES_4
Definition: silentstep2.h:512
silentstep2_init
err_t silentstep2_init(silentstep2_t *ctx, silentstep2_cfg_t *cfg)
Silent Step 2 initialization function.
silentstep2_pwmconf_t
Silent Step 2 Click voltage mode pwm stealthChop object.
Definition: silentstep2.h:459
silentstep2_pwmconf_t::freewheel
uint8_t freewheel
Definition: silentstep2.h:465
silentstep2_cfg_t::step_delay
uint32_t step_delay
Definition: silentstep2.h:401
silentstep2_gconf_t::en_pwm_mode
uint8_t en_pwm_mode
Definition: silentstep2.h:420
silentstep2_t::spi
spi_master_t spi
Definition: silentstep2.h:376
silentstep2_get_drv_status
err_t silentstep2_get_drv_status(silentstep2_t *ctx, silentstep2_drv_status_t *drv_status)
Silent Step 2 get driver status error flags function.
silentstep2_gconf_t::diag1_index
uint8_t diag1_index
Definition: silentstep2.h:427
silentstep2_reg_read
err_t silentstep2_reg_read(silentstep2_t *ctx, uint8_t reg, uint32_t *data_in)
Silent Step 2 data reading function.
silentstep2_t
Silent Step 2 Click context object.
Definition: silentstep2.h:369
silentstep2_drv_status_t::ot
uint8_t ot
Definition: silentstep2.h:479
silentstep2_set_dedge
err_t silentstep2_set_dedge(silentstep2_t *ctx, uint8_t dedge_en)
Silent Step 2 sets the step impulsen function.
silentstep2_gconf_t::diag0_otpw
uint8_t diag0_otpw
Definition: silentstep2.h:424
silentstep2_t::int_pin
digital_in_t int_pin
Definition: silentstep2.h:373
silentstep2_gconf_t::diag1_onstate
uint8_t diag1_onstate
Definition: silentstep2.h:428
silentstep2_set_tbl_blank_time
err_t silentstep2_set_tbl_blank_time(silentstep2_t *ctx, silentstep2_tbl_t tbl)
Silent Step 2 enable the blank time select function.
SILENTSTEP2_MRES_8
@ SILENTSTEP2_MRES_8
Definition: silentstep2.h:511
silentstep2_gconf_t::diag1_steps_skipped
uint8_t diag1_steps_skipped
Definition: silentstep2.h:429
silentstep2_t::step_delay
uint32_t step_delay
Definition: silentstep2.h:381
silentstep2_cfg_t::cs_polarity
spi_master_chip_select_polarity_t cs_polarity
Definition: silentstep2.h:408
silentstep2_set_mstep_res
err_t silentstep2_set_mstep_res(silentstep2_t *ctx, silentstep2_mres_t step_width)
Silent Step 2 sets the micro step resolution function.
silentstep2_get_diag1
err_t silentstep2_get_diag1(silentstep2_t *ctx, uint8_t *diag1)
Silent Step 2 get the diagnostics output DIAG1 function.
SILENTSTEP2_TBL_CLOCKS_54
@ SILENTSTEP2_TBL_CLOCKS_54
Definition: silentstep2.h:527
silentstep2_reg_write
err_t silentstep2_reg_write(silentstep2_t *ctx, uint8_t reg, uint32_t data_in)
Silent Step 2 data writing function.
silentstep2_drv_status_t::ola
uint8_t ola
Definition: silentstep2.h:483
silentstep2_gconf_t::direct_mode
uint8_t direct_mode
Definition: silentstep2.h:434
silentstep2_cfg_t::sda
pin_name_t sda
Definition: silentstep2.h:392
SILENTSTEP2_MRES_32
@ SILENTSTEP2_MRES_32
Definition: silentstep2.h:509
silentstep2_default_cfg
err_t silentstep2_default_cfg(silentstep2_t *ctx)
Silent Step 2 default configuration function.
silentstep2_input_enable
err_t silentstep2_input_enable(silentstep2_t *ctx)
Silent Step 2 enable input function.
silentstep2_gconf_t::shaft
uint8_t shaft
Definition: silentstep2.h:422
silentstep2_t::chip_select
pin_name_t chip_select
Definition: silentstep2.h:379
SILENTSTEP2_OK
@ SILENTSTEP2_OK
Definition: silentstep2.h:495
silentstep2_t::slave_address
uint8_t slave_address
Definition: silentstep2.h:378
silentstep2_cfg_t::i2c_speed
uint32_t i2c_speed
Definition: silentstep2.h:403
silentstep2_return_value_t
silentstep2_return_value_t
Silent Step 2 Click return value data.
Definition: silentstep2.h:494
silentstep2_set_tcoolthrs
err_t silentstep2_set_tcoolthrs(silentstep2_t *ctx, uint32_t tcoolthrs)
Silent Step 2 sets lower threshold velocity for switching on smart energy function.
silentstep2_gconf_t::diag0_int_pushpull
uint8_t diag0_int_pushpull
Definition: silentstep2.h:430
silentstep2_cfg_t::int_pin
pin_name_t int_pin
Definition: silentstep2.h:399
silentstep2_coolconf_t
Silent Step 2 Click smart energy control coolStep and stallGuard2 object.
Definition: silentstep2.h:443
silentstep2_coolconf_t::semax
uint8_t semax
Definition: silentstep2.h:446
silentstep2_port_exp_write
err_t silentstep2_port_exp_write(silentstep2_t *ctx, uint8_t reg, uint8_t data_in)
Silent Step 2 port expander data writing function.
silentstep2_gconf_t::internal_rsense
uint8_t internal_rsense
Definition: silentstep2.h:419
silentstep2_make_one_step
err_t silentstep2_make_one_step(silentstep2_t *ctx, uint8_t step_speed)
Silent Step 2 make the one step function.
silentstep2_drv_status_t::otpw
uint8_t otpw
Definition: silentstep2.h:480
silentstep2_t::dir
digital_out_t dir
Definition: silentstep2.h:370
silentstep2_set_ihold_irun
err_t silentstep2_set_ihold_irun(silentstep2_t *ctx, uint8_t ihold, uint8_t irun, uint8_t ihold_delay)
Silent Step 2 sets driver current control function.
silentstep2_pwmconf_t::pwm_ampl
uint8_t pwm_ampl
Definition: silentstep2.h:460
silentstep2_coolconf_t::sgt
uint8_t sgt
Definition: silentstep2.h:449
silentstep2_get_interrupt
uint8_t silentstep2_get_interrupt(silentstep2_t *ctx)
Silent Step 2 get the interrupt function.
silentstep2_get_diag0
err_t silentstep2_get_diag0(silentstep2_t *ctx, uint8_t *diag0)
Silent Step 2 get the diagnostics output DIAG0 function.
silentstep2_cfg_t::dir
pin_name_t dir
Definition: silentstep2.h:397
silentstep2_cfg_t::i2c_address
uint8_t i2c_address
Definition: silentstep2.h:404
silentstep2_cfg_t::cs
pin_name_t cs
Definition: silentstep2.h:396
silentstep2_cfg_t::sck
pin_name_t sck
Definition: silentstep2.h:395
silentstep2_drv_status_t
Silent Step 2 Click stallGuard2 value and driver error flags object.
Definition: silentstep2.h:474
silentstep2_switch_off
err_t silentstep2_switch_off(silentstep2_t *ctx)
Silent Step 2 sets the power OFF function.
silentstep2_set_gconf
err_t silentstep2_set_gconf(silentstep2_t *ctx, silentstep2_gconf_t gconf)
Silent Step 2 sets global configuration function.
silentstep2_set_toff
err_t silentstep2_set_toff(silentstep2_t *ctx, uint8_t off_time)
Silent Step 2 sets the off time and driver enable function.
silentstep2_cfg_setup
void silentstep2_cfg_setup(silentstep2_cfg_t *cfg)
Silent Step 2 configuration object setup function.
silentstep2_drv_status_t::fsactive
uint8_t fsactive
Definition: silentstep2.h:476
SILENTSTEP2_MRES_256
@ SILENTSTEP2_MRES_256
Definition: silentstep2.h:506
silentstep2_gconf_t::diag1_pushpull
uint8_t diag1_pushpull
Definition: silentstep2.h:431
SILENTSTEP2_DRV_SEL_SPI
@ SILENTSTEP2_DRV_SEL_SPI
Definition: silentstep2.h:359
silentstep2_set_pwmconf
err_t silentstep2_set_pwmconf(silentstep2_t *ctx, silentstep2_pwmconf_t pwmconf)
Silent Step 2 sets the voltage PWM Mode stealthChop function.
silentstep2_pwmconf_t::pwm_symmetric
uint8_t pwm_symmetric
Definition: silentstep2.h:464
silentstep2_cfg_t::miso
pin_name_t miso
Definition: silentstep2.h:393
silentstep2_coolconf_t::semin
uint8_t semin
Definition: silentstep2.h:444
SILENTSTEP2_MRES_128
@ SILENTSTEP2_MRES_128
Definition: silentstep2.h:507
silentstep2_set_intpol
err_t silentstep2_set_intpol(silentstep2_t *ctx, uint8_t intpol_en)
Silent Step 2 enable the actual microstep resolution function.
silentstep2_gconf_t
Silent Step 2 Click global configuration object.
Definition: silentstep2.h:417
silentstep2_set_thigh
err_t silentstep2_set_thigh(silentstep2_t *ctx, uint32_t thigh)
Silent Step 2 sets the velocity setting function.
silentstep2_set_coolconf
err_t silentstep2_set_coolconf(silentstep2_t *ctx, silentstep2_coolconf_t coolconf)
Silent Step 2 sets the coolStep smart current control function.
silentstep2_gconf_t::diag0_stall
uint8_t diag0_stall
Definition: silentstep2.h:425
silentstep2_tbl_t
silentstep2_tbl_t
Silent Step 2 Click comparator blank time value data.
Definition: silentstep2.h:523
silentstep2_pwmconf_t::pwm_grad
uint8_t pwm_grad
Definition: silentstep2.h:461
SILENTSTEP2_TBL_CLOCKS_16
@ SILENTSTEP2_TBL_CLOCKS_16
Definition: silentstep2.h:524
SILENTSTEP2_DRV_SEL_I2C
@ SILENTSTEP2_DRV_SEL_I2C
Definition: silentstep2.h:360
silentstep2_coolconf_t::sedn
uint8_t sedn
Definition: silentstep2.h:447
silentstep2_cfg_t::spi_mode
spi_master_mode_t spi_mode
Definition: silentstep2.h:407
silentstep2_set_mslutsel
err_t silentstep2_set_mslutsel(silentstep2_t *ctx, uint32_t lut_seg_str, uint32_t lut_width_sel)
Silent Step 2 sets the microstep segments function.
silentstep2_port_exp_read
err_t silentstep2_port_exp_read(silentstep2_t *ctx, uint8_t reg, uint8_t *data_out)
Silent Step 2 port expander data reading function.
silentstep2_cfg_t::spi_speed
uint32_t spi_speed
Definition: silentstep2.h:406
SILENTSTEP2_MRES_64
@ SILENTSTEP2_MRES_64
Definition: silentstep2.h:508
silentstep2_gconf_t::diag1_stall
uint8_t diag1_stall
Definition: silentstep2.h:426
silentstep2_set_pins
err_t silentstep2_set_pins(silentstep2_t *ctx, uint8_t set_mask, uint8_t clr_mask)
Silent Step 2 sets the pin states function.
silentstep2_cfg_t::scl
pin_name_t scl
Definition: silentstep2.h:391
silentstep2_coolconf_t::sfilt
uint8_t sfilt
Definition: silentstep2.h:450
silentstep2_set_step
void silentstep2_set_step(silentstep2_t *ctx, uint8_t step)
Silent Step 2 set the step pin state function.
silentstep2_pwmconf_t::pwm_freq
uint8_t pwm_freq
Definition: silentstep2.h:462