Library for Trinamic TMC2209 stepper modules to drive bipolar stepper motors. Ported and adapted from https://github.com/teemuatlut/TMCStepper

Dependents:   TMC2209-Test2

Committer:
charly
Date:
Thu Dec 02 20:29:39 2021 +0000
Revision:
2:b34e91b54373
Parent:
0:f4343071c8b1
Changes from Original Project for TMC2209 integrated

Who changed what in which revision?

UserRevisionLine numberNew 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 2:b34e91b54373 26 SGTHRS(SGTHRS_register.sr);
charly 2:b34e91b54373 27 COOLCONF(COOLCONF_register.sr);
charly 0:f4343071c8b1 28 }
charly 0:f4343071c8b1 29
charly 0:f4343071c8b1 30 void TMC2209Stepper::SGTHRS(uint8_t input) {
charly 0:f4343071c8b1 31 SGTHRS_register.sr = input;
charly 0:f4343071c8b1 32 write(SGTHRS_register.address, SGTHRS_register.sr);
charly 0:f4343071c8b1 33 }
charly 0:f4343071c8b1 34 uint8_t TMC2209Stepper::SGTHRS() {
charly 0:f4343071c8b1 35 return SGTHRS_register.sr;
charly 0:f4343071c8b1 36 }
charly 0:f4343071c8b1 37
charly 0:f4343071c8b1 38 // W: TCOOLTHRS
charly 0:f4343071c8b1 39 uint32_t TMC2209Stepper::TCOOLTHRS() { return TCOOLTHRS_register.sr; }
charly 0:f4343071c8b1 40 void TMC2209Stepper::TCOOLTHRS(uint32_t input) {
charly 0:f4343071c8b1 41 TCOOLTHRS_register.sr = input;
charly 0:f4343071c8b1 42 write(TCOOLTHRS_register.address, TCOOLTHRS_register.sr);
charly 0:f4343071c8b1 43 }
charly 0:f4343071c8b1 44
charly 0:f4343071c8b1 45 uint16_t TMC2209Stepper::SG_RESULT() {
charly 0:f4343071c8b1 46 return read(TMC2209_n::SG_RESULT_t::address);
charly 0:f4343071c8b1 47 }