Library for Trinamic TMC2209 stepper modules to drive bipolar stepper motors. Ported and adapted from https://github.com/teemuatlut/TMCStepper
TMC2209Stepper.cpp@0:f4343071c8b1, 2021-03-18 (annotated)
- Committer:
- charly
- Date:
- Thu Mar 18 20:50:27 2021 +0000
- Revision:
- 0:f4343071c8b1
- Child:
- 2:b34e91b54373
First version of TMCStepper for Trinamic TMC2209-modules.; Software ported and adapted from https://github.com/teemuatlut/TMCStepper
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
charly | 0:f4343071c8b1 | 1 | #include "TMCStepper.h" |
charly | 0:f4343071c8b1 | 2 | |
charly | 0:f4343071c8b1 | 3 | uint32_t TMC2209Stepper::IOIN() { |
charly | 0:f4343071c8b1 | 4 | return read(TMC2209_n::IOIN_t::address); |
charly | 0:f4343071c8b1 | 5 | } |
charly | 0:f4343071c8b1 | 6 | bool TMC2209Stepper::enn() { TMC2209_n::IOIN_t r{0}; r.sr = IOIN(); return r.enn; } |
charly | 0:f4343071c8b1 | 7 | bool TMC2209Stepper::ms1() { TMC2209_n::IOIN_t r{0}; r.sr = IOIN(); return r.ms1; } |
charly | 0:f4343071c8b1 | 8 | bool TMC2209Stepper::ms2() { TMC2209_n::IOIN_t r{0}; r.sr = IOIN(); return r.ms2; } |
charly | 0:f4343071c8b1 | 9 | bool TMC2209Stepper::diag() { TMC2209_n::IOIN_t r{0}; r.sr = IOIN(); return r.diag; } |
charly | 0:f4343071c8b1 | 10 | bool TMC2209Stepper::pdn_uart() { TMC2209_n::IOIN_t r{0}; r.sr = IOIN(); return r.pdn_uart; } |
charly | 0:f4343071c8b1 | 11 | bool TMC2209Stepper::step() { TMC2209_n::IOIN_t r{0}; r.sr = IOIN(); return r.step; } |
charly | 0:f4343071c8b1 | 12 | bool TMC2209Stepper::spread_en() { TMC2209_n::IOIN_t r{0}; r.sr = IOIN(); return r.spread_en;} |
charly | 0:f4343071c8b1 | 13 | bool TMC2209Stepper::dir() { TMC2209_n::IOIN_t r{0}; r.sr = IOIN(); return r.dir; } |
charly | 0:f4343071c8b1 | 14 | uint8_t TMC2209Stepper::version() { TMC2209_n::IOIN_t r{0}; r.sr = IOIN(); return r.version; } |
charly | 0:f4343071c8b1 | 15 | |
charly | 0:f4343071c8b1 | 16 | void TMC2209Stepper::push() { |
charly | 0:f4343071c8b1 | 17 | IHOLD_IRUN(IHOLD_IRUN_register.sr); |
charly | 0:f4343071c8b1 | 18 | TPOWERDOWN(TPOWERDOWN_register.sr); |
charly | 0:f4343071c8b1 | 19 | TPWMTHRS(TPWMTHRS_register.sr); |
charly | 0:f4343071c8b1 | 20 | GCONF(GCONF_register.sr); |
charly | 0:f4343071c8b1 | 21 | SLAVECONF(SLAVECONF_register.sr); |
charly | 0:f4343071c8b1 | 22 | VACTUAL(VACTUAL_register.sr); |
charly | 0:f4343071c8b1 | 23 | CHOPCONF(CHOPCONF_register.sr); |
charly | 0:f4343071c8b1 | 24 | PWMCONF(PWMCONF_register.sr); |
charly | 0:f4343071c8b1 | 25 | TCOOLTHRS(TCOOLTHRS_register.sr); |
charly | 0:f4343071c8b1 | 26 | } |
charly | 0:f4343071c8b1 | 27 | |
charly | 0:f4343071c8b1 | 28 | void TMC2209Stepper::SGTHRS(uint8_t input) { |
charly | 0:f4343071c8b1 | 29 | SGTHRS_register.sr = input; |
charly | 0:f4343071c8b1 | 30 | write(SGTHRS_register.address, SGTHRS_register.sr); |
charly | 0:f4343071c8b1 | 31 | } |
charly | 0:f4343071c8b1 | 32 | uint8_t TMC2209Stepper::SGTHRS() { |
charly | 0:f4343071c8b1 | 33 | return SGTHRS_register.sr; |
charly | 0:f4343071c8b1 | 34 | } |
charly | 0:f4343071c8b1 | 35 | |
charly | 0:f4343071c8b1 | 36 | // W: TCOOLTHRS |
charly | 0:f4343071c8b1 | 37 | uint32_t TMC2209Stepper::TCOOLTHRS() { return TCOOLTHRS_register.sr; } |
charly | 0:f4343071c8b1 | 38 | void TMC2209Stepper::TCOOLTHRS(uint32_t input) { |
charly | 0:f4343071c8b1 | 39 | TCOOLTHRS_register.sr = input; |
charly | 0:f4343071c8b1 | 40 | write(TCOOLTHRS_register.address, TCOOLTHRS_register.sr); |
charly | 0:f4343071c8b1 | 41 | } |
charly | 0:f4343071c8b1 | 42 | |
charly | 0:f4343071c8b1 | 43 | uint16_t TMC2209Stepper::SG_RESULT() { |
charly | 0:f4343071c8b1 | 44 | return read(TMC2209_n::SG_RESULT_t::address); |
charly | 0:f4343071c8b1 | 45 | } |