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
Changes from Original Project for TMC2209 integrated

Who changed what in which revision?

UserRevisionLine numberNew contents of line
charly 2:b34e91b54373 1 #include "TMCStepper.h"
charly 2:b34e91b54373 2 #include "TMC_MACROS.h"
charly 2:b34e91b54373 3
charly 2:b34e91b54373 4 #define SET_REG(SETTING) COOLCONF_register.SETTING = B; write(COOLCONF_register.address, COOLCONF_register.sr);
charly 2:b34e91b54373 5 #define GET_REG(SETTING) return COOLCONF_register.SETTING;
charly 2:b34e91b54373 6
charly 2:b34e91b54373 7 // COOLCONF
charly 2:b34e91b54373 8 /*
charly 2:b34e91b54373 9 uint32_t TMC2130Stepper::COOLCONF() { return COOLCONF_register.sr; }
charly 2:b34e91b54373 10 void TMC2130Stepper::COOLCONF(uint32_t input) {
charly 2:b34e91b54373 11 COOLCONF_register.sr = input;
charly 2:b34e91b54373 12 write(COOLCONF_register.address, COOLCONF_register.sr);
charly 2:b34e91b54373 13 }
charly 2:b34e91b54373 14
charly 2:b34e91b54373 15 void TMC2130Stepper::semin( uint8_t B ) { SET_REG(semin); }
charly 2:b34e91b54373 16 void TMC2130Stepper::seup( uint8_t B ) { SET_REG(seup); }
charly 2:b34e91b54373 17 void TMC2130Stepper::semax( uint8_t B ) { SET_REG(semax); }
charly 2:b34e91b54373 18 void TMC2130Stepper::sedn( uint8_t B ) { SET_REG(sedn); }
charly 2:b34e91b54373 19 void TMC2130Stepper::seimin(bool B ) { SET_REG(seimin); }
charly 2:b34e91b54373 20 void TMC2130Stepper::sgt( int8_t B ) { SET_REG(sgt); }
charly 2:b34e91b54373 21 void TMC2130Stepper::sfilt( bool B ) { SET_REG(sfilt); }
charly 2:b34e91b54373 22
charly 2:b34e91b54373 23 uint8_t TMC2130Stepper::semin() { GET_REG(semin); }
charly 2:b34e91b54373 24 uint8_t TMC2130Stepper::seup() { GET_REG(seup); }
charly 2:b34e91b54373 25 uint8_t TMC2130Stepper::semax() { GET_REG(semax); }
charly 2:b34e91b54373 26 uint8_t TMC2130Stepper::sedn() { GET_REG(sedn); }
charly 2:b34e91b54373 27 bool TMC2130Stepper::seimin(){ GET_REG(seimin); }
charly 2:b34e91b54373 28 bool TMC2130Stepper::sfilt() { GET_REG(sfilt); }
charly 2:b34e91b54373 29
charly 2:b34e91b54373 30 int8_t TMC2130Stepper::sgt() {
charly 2:b34e91b54373 31 // Two's complement in a 7bit value
charly 2:b34e91b54373 32 int8_t val = (COOLCONF_register.sgt & 0x40) << 1; // Isolate sign bit
charly 2:b34e91b54373 33 val |= COOLCONF_register.sgt & 0x7F;
charly 2:b34e91b54373 34 return val;
charly 2:b34e91b54373 35 }
charly 2:b34e91b54373 36 */
charly 2:b34e91b54373 37
charly 2:b34e91b54373 38 uint16_t TMC2209Stepper::COOLCONF() { return COOLCONF_register.sr; }
charly 2:b34e91b54373 39 void TMC2209Stepper::COOLCONF(uint16_t input) {
charly 2:b34e91b54373 40 COOLCONF_register.sr = input;
charly 2:b34e91b54373 41 write(COOLCONF_register.address, COOLCONF_register.sr);
charly 2:b34e91b54373 42 }
charly 2:b34e91b54373 43
charly 2:b34e91b54373 44 void TMC2209Stepper::semin( uint8_t B ) { SET_REG(semin); }
charly 2:b34e91b54373 45 void TMC2209Stepper::seup( uint8_t B ) { SET_REG(seup); }
charly 2:b34e91b54373 46 void TMC2209Stepper::semax( uint8_t B ) { SET_REG(semax); }
charly 2:b34e91b54373 47 void TMC2209Stepper::sedn( uint8_t B ) { SET_REG(sedn); }
charly 2:b34e91b54373 48 void TMC2209Stepper::seimin(bool B ) { SET_REG(seimin); }
charly 2:b34e91b54373 49
charly 2:b34e91b54373 50 uint8_t TMC2209Stepper::semin() { GET_REG(semin); }
charly 2:b34e91b54373 51 uint8_t TMC2209Stepper::seup() { GET_REG(seup); }
charly 2:b34e91b54373 52 uint8_t TMC2209Stepper::semax() { GET_REG(semax); }
charly 2:b34e91b54373 53 uint8_t TMC2209Stepper::sedn() { GET_REG(sedn); }
charly 2:b34e91b54373 54 bool TMC2209Stepper::seimin(){ GET_REG(seimin); }