Library for Trinamic TMC2209 stepper modules to drive bipolar stepper motors. Ported and adapted from https://github.com/teemuatlut/TMCStepper
TMC2208_bitfields.h
- Committer:
- charly
- Date:
- 2021-12-02
- Revision:
- 2:b34e91b54373
- Parent:
- 0:f4343071c8b1
File content as of revision 2:b34e91b54373:
#pragma once #pragma pack(push, 1) namespace TMC2208_n { struct GCONF_t { constexpr static uint8_t address = 0x00; union { uint16_t sr : 10; struct { bool i_scale_analog : 1, internal_rsense : 1, en_spreadcycle : 1, shaft : 1, index_otpw : 1, index_step : 1, pdn_disable : 1, mstep_reg_select : 1, multistep_filt : 1, test_mode : 1; }; }; }; } namespace TMC2208_n { struct IOIN_t { constexpr static uint8_t address = 0x06; union { uint32_t sr; struct { bool enn : 1, : 1, ms1 : 1, ms2 : 1, diag : 1, : 1, pdn_uart : 1, step : 1, sel_a : 1, dir : 1; uint16_t : 14; uint8_t version : 8; }; }; }; } namespace TMC2224_n { struct IOIN_t { constexpr static uint8_t address = 0x06; union { uint32_t sr; struct { bool : 1, pdn_uart : 1, spread : 1, dir : 1, enn : 1, step : 1, ms1 : 1, ms2 : 1, sel_a : 1; uint16_t : 15; uint8_t version : 8; }; }; }; } struct FACTORY_CONF_t { constexpr static uint8_t address = 0x07; union { uint16_t sr; struct { uint8_t fclktrim : 5, : 3, ottrim : 2; }; }; }; namespace TMC2208_n { struct VACTUAL_t { constexpr static uint8_t address = 0x22; uint32_t sr; }; } struct MSCURACT_t { constexpr static uint8_t address = 0x6B; union { uint32_t sr : 25; struct { int16_t cur_a : 9, : 7, cur_b : 9; }; }; }; namespace TMC2208_n { struct CHOPCONF_t { constexpr static uint8_t address = 0x6C; union { uint32_t sr; struct { uint8_t toff : 4, hstrt : 3, hend : 4, : 4, tbl : 2; bool vsense : 1; uint8_t : 6, mres : 4; bool intpol : 1, dedge : 1, diss2g : 1, diss2vs : 1; }; }; }; struct PWMCONF_t { constexpr static uint8_t address = 0x70; union { uint32_t sr; struct { uint8_t pwm_ofs : 8, pwm_grad : 8, pwm_freq : 2; bool pwm_autoscale : 1, pwm_autograd : 1; uint8_t freewheel : 2, : 2, pwm_reg : 4, pwm_lim : 4; }; }; }; struct DRV_STATUS_t { constexpr static uint8_t address = 0x6F; union { uint32_t sr; struct { bool otpw : 1, ot : 1, s2ga : 1, s2gb : 1, s2vsa : 1, s2vsb : 1, ola : 1, olb : 1, t120 : 1, t143 : 1, t150 : 1, t157 : 1; uint8_t : 4, cs_actual : 5, : 3, : 6; bool stealth : 1, stst : 1; }; }; }; struct PWM_SCALE_t { constexpr static uint8_t address = 0x71; union { uint32_t sr; struct { uint8_t pwm_scale_sum : 8, : 8; int16_t pwm_scale_auto : 9; }; }; }; } #pragma pack(pop)