Karl Zweimüller / Mbed OS TMC2209-Test2

Dependencies:   TMCStepper mRotaryEncoder-os

Committer:
charly
Date:
Thu Feb 04 19:46:56 2021 +0000
Revision:
0:3f4cfbeda9d3
Working Version with TMC2209

Who changed what in which revision?

UserRevisionLine numberNew contents of line
charly 0:3f4cfbeda9d3 1 #pragma once
charly 0:3f4cfbeda9d3 2 #pragma pack(push, 1)
charly 0:3f4cfbeda9d3 3
charly 0:3f4cfbeda9d3 4 namespace TMC2208_n {
charly 0:3f4cfbeda9d3 5 struct GCONF_t {
charly 0:3f4cfbeda9d3 6 constexpr static uint8_t address = 0x00;
charly 0:3f4cfbeda9d3 7 union {
charly 0:3f4cfbeda9d3 8 uint16_t sr : 10;
charly 0:3f4cfbeda9d3 9 struct {
charly 0:3f4cfbeda9d3 10 bool i_scale_analog : 1,
charly 0:3f4cfbeda9d3 11 internal_rsense : 1,
charly 0:3f4cfbeda9d3 12 en_spreadcycle : 1,
charly 0:3f4cfbeda9d3 13 shaft : 1,
charly 0:3f4cfbeda9d3 14 index_otpw : 1,
charly 0:3f4cfbeda9d3 15 index_step : 1,
charly 0:3f4cfbeda9d3 16 pdn_disable : 1,
charly 0:3f4cfbeda9d3 17 mstep_reg_select : 1,
charly 0:3f4cfbeda9d3 18 multistep_filt : 1,
charly 0:3f4cfbeda9d3 19 test_mode : 1;
charly 0:3f4cfbeda9d3 20 };
charly 0:3f4cfbeda9d3 21 };
charly 0:3f4cfbeda9d3 22 };
charly 0:3f4cfbeda9d3 23 }
charly 0:3f4cfbeda9d3 24
charly 0:3f4cfbeda9d3 25 namespace TMC2208_n {
charly 0:3f4cfbeda9d3 26 struct IOIN_t {
charly 0:3f4cfbeda9d3 27 constexpr static uint8_t address = 0x06;
charly 0:3f4cfbeda9d3 28 union {
charly 0:3f4cfbeda9d3 29 uint32_t sr;
charly 0:3f4cfbeda9d3 30 struct {
charly 0:3f4cfbeda9d3 31 bool enn : 1,
charly 0:3f4cfbeda9d3 32 : 1,
charly 0:3f4cfbeda9d3 33 ms1 : 1,
charly 0:3f4cfbeda9d3 34 ms2 : 1,
charly 0:3f4cfbeda9d3 35 diag : 1,
charly 0:3f4cfbeda9d3 36 : 1,
charly 0:3f4cfbeda9d3 37 pdn_uart : 1,
charly 0:3f4cfbeda9d3 38 step : 1,
charly 0:3f4cfbeda9d3 39 sel_a : 1,
charly 0:3f4cfbeda9d3 40 dir : 1;
charly 0:3f4cfbeda9d3 41 uint16_t : 14;
charly 0:3f4cfbeda9d3 42 uint8_t version : 8;
charly 0:3f4cfbeda9d3 43 };
charly 0:3f4cfbeda9d3 44 };
charly 0:3f4cfbeda9d3 45 };
charly 0:3f4cfbeda9d3 46 }
charly 0:3f4cfbeda9d3 47
charly 0:3f4cfbeda9d3 48 namespace TMC2224_n {
charly 0:3f4cfbeda9d3 49 struct IOIN_t {
charly 0:3f4cfbeda9d3 50 constexpr static uint8_t address = 0x06;
charly 0:3f4cfbeda9d3 51 union {
charly 0:3f4cfbeda9d3 52 uint32_t sr;
charly 0:3f4cfbeda9d3 53 struct {
charly 0:3f4cfbeda9d3 54 bool : 1,
charly 0:3f4cfbeda9d3 55 pdn_uart : 1,
charly 0:3f4cfbeda9d3 56 spread : 1,
charly 0:3f4cfbeda9d3 57 dir : 1,
charly 0:3f4cfbeda9d3 58 enn : 1,
charly 0:3f4cfbeda9d3 59 step : 1,
charly 0:3f4cfbeda9d3 60 ms1 : 1,
charly 0:3f4cfbeda9d3 61 ms2 : 1,
charly 0:3f4cfbeda9d3 62 sel_a : 1;
charly 0:3f4cfbeda9d3 63 uint16_t : 15;
charly 0:3f4cfbeda9d3 64 uint8_t version : 8;
charly 0:3f4cfbeda9d3 65 };
charly 0:3f4cfbeda9d3 66 };
charly 0:3f4cfbeda9d3 67 };
charly 0:3f4cfbeda9d3 68 }
charly 0:3f4cfbeda9d3 69
charly 0:3f4cfbeda9d3 70 struct FACTORY_CONF_t {
charly 0:3f4cfbeda9d3 71 constexpr static uint8_t address = 0x07;
charly 0:3f4cfbeda9d3 72 union {
charly 0:3f4cfbeda9d3 73 uint16_t sr;
charly 0:3f4cfbeda9d3 74 struct {
charly 0:3f4cfbeda9d3 75 uint8_t fclktrim : 5,
charly 0:3f4cfbeda9d3 76 : 3,
charly 0:3f4cfbeda9d3 77 ottrim : 2;
charly 0:3f4cfbeda9d3 78 };
charly 0:3f4cfbeda9d3 79 };
charly 0:3f4cfbeda9d3 80 };
charly 0:3f4cfbeda9d3 81
charly 0:3f4cfbeda9d3 82 namespace TMC2208_n {
charly 0:3f4cfbeda9d3 83 struct VACTUAL_t {
charly 0:3f4cfbeda9d3 84 constexpr static uint8_t address = 0x22;
charly 0:3f4cfbeda9d3 85 uint32_t sr;
charly 0:3f4cfbeda9d3 86 };
charly 0:3f4cfbeda9d3 87 }
charly 0:3f4cfbeda9d3 88
charly 0:3f4cfbeda9d3 89 struct MSCURACT_t {
charly 0:3f4cfbeda9d3 90 constexpr static uint8_t address = 0x6B;
charly 0:3f4cfbeda9d3 91 union {
charly 0:3f4cfbeda9d3 92 uint32_t sr : 25;
charly 0:3f4cfbeda9d3 93 struct {
charly 0:3f4cfbeda9d3 94 int16_t cur_a : 9,
charly 0:3f4cfbeda9d3 95 : 7,
charly 0:3f4cfbeda9d3 96 cur_b : 9;
charly 0:3f4cfbeda9d3 97 };
charly 0:3f4cfbeda9d3 98 };
charly 0:3f4cfbeda9d3 99 };
charly 0:3f4cfbeda9d3 100
charly 0:3f4cfbeda9d3 101 namespace TMC2208_n {
charly 0:3f4cfbeda9d3 102 struct CHOPCONF_t {
charly 0:3f4cfbeda9d3 103 constexpr static uint8_t address = 0x6C;
charly 0:3f4cfbeda9d3 104 union {
charly 0:3f4cfbeda9d3 105 uint32_t sr;
charly 0:3f4cfbeda9d3 106 struct {
charly 0:3f4cfbeda9d3 107 uint8_t toff : 4,
charly 0:3f4cfbeda9d3 108 hstrt : 3,
charly 0:3f4cfbeda9d3 109 hend : 4,
charly 0:3f4cfbeda9d3 110 : 4,
charly 0:3f4cfbeda9d3 111 tbl : 2;
charly 0:3f4cfbeda9d3 112 bool vsense : 1;
charly 0:3f4cfbeda9d3 113 uint8_t : 6,
charly 0:3f4cfbeda9d3 114 mres : 4;
charly 0:3f4cfbeda9d3 115 bool intpol : 1,
charly 0:3f4cfbeda9d3 116 dedge : 1,
charly 0:3f4cfbeda9d3 117 diss2g : 1,
charly 0:3f4cfbeda9d3 118 diss2vs : 1;
charly 0:3f4cfbeda9d3 119 };
charly 0:3f4cfbeda9d3 120 };
charly 0:3f4cfbeda9d3 121 };
charly 0:3f4cfbeda9d3 122
charly 0:3f4cfbeda9d3 123 struct PWMCONF_t {
charly 0:3f4cfbeda9d3 124 constexpr static uint8_t address = 0x70;
charly 0:3f4cfbeda9d3 125 union {
charly 0:3f4cfbeda9d3 126 uint32_t sr;
charly 0:3f4cfbeda9d3 127 struct {
charly 0:3f4cfbeda9d3 128 uint8_t pwm_ofs : 8,
charly 0:3f4cfbeda9d3 129 pwm_grad : 8,
charly 0:3f4cfbeda9d3 130 pwm_freq : 2;
charly 0:3f4cfbeda9d3 131 bool pwm_autoscale : 1,
charly 0:3f4cfbeda9d3 132 pwm_autograd : 1;
charly 0:3f4cfbeda9d3 133 uint8_t freewheel : 2,
charly 0:3f4cfbeda9d3 134 : 2,
charly 0:3f4cfbeda9d3 135 pwm_reg : 4,
charly 0:3f4cfbeda9d3 136 pwm_lim : 4;
charly 0:3f4cfbeda9d3 137 };
charly 0:3f4cfbeda9d3 138 };
charly 0:3f4cfbeda9d3 139 };
charly 0:3f4cfbeda9d3 140
charly 0:3f4cfbeda9d3 141 struct DRV_STATUS_t {
charly 0:3f4cfbeda9d3 142 constexpr static uint8_t address = 0x6F;
charly 0:3f4cfbeda9d3 143 union {
charly 0:3f4cfbeda9d3 144 uint32_t sr;
charly 0:3f4cfbeda9d3 145 struct {
charly 0:3f4cfbeda9d3 146 bool otpw : 1,
charly 0:3f4cfbeda9d3 147 ot : 1,
charly 0:3f4cfbeda9d3 148 s2ga : 1,
charly 0:3f4cfbeda9d3 149 s2gb : 1,
charly 0:3f4cfbeda9d3 150 s2vsa : 1,
charly 0:3f4cfbeda9d3 151 s2vsb : 1,
charly 0:3f4cfbeda9d3 152 ola : 1,
charly 0:3f4cfbeda9d3 153 olb : 1,
charly 0:3f4cfbeda9d3 154 t120 : 1,
charly 0:3f4cfbeda9d3 155 t143 : 1,
charly 0:3f4cfbeda9d3 156 t150 : 1,
charly 0:3f4cfbeda9d3 157 t157 : 1;
charly 0:3f4cfbeda9d3 158 uint8_t : 4,
charly 0:3f4cfbeda9d3 159 cs_actual : 5,
charly 0:3f4cfbeda9d3 160 : 3,
charly 0:3f4cfbeda9d3 161 : 6;
charly 0:3f4cfbeda9d3 162 bool stealth : 1,
charly 0:3f4cfbeda9d3 163 stst : 1;
charly 0:3f4cfbeda9d3 164 };
charly 0:3f4cfbeda9d3 165 };
charly 0:3f4cfbeda9d3 166 };
charly 0:3f4cfbeda9d3 167
charly 0:3f4cfbeda9d3 168 struct PWM_SCALE_t {
charly 0:3f4cfbeda9d3 169 constexpr static uint8_t address = 0x71;
charly 0:3f4cfbeda9d3 170 union {
charly 0:3f4cfbeda9d3 171 uint32_t sr;
charly 0:3f4cfbeda9d3 172 struct {
charly 0:3f4cfbeda9d3 173 uint8_t pwm_scale_sum : 8,
charly 0:3f4cfbeda9d3 174 : 8;
charly 0:3f4cfbeda9d3 175 int16_t pwm_scale_auto : 9;
charly 0:3f4cfbeda9d3 176 };
charly 0:3f4cfbeda9d3 177 };
charly 0:3f4cfbeda9d3 178 };
charly 0:3f4cfbeda9d3 179 }
charly 0:3f4cfbeda9d3 180
charly 0:3f4cfbeda9d3 181 #pragma pack(pop)