Karl Zweimüller / TMCStepper

Dependents:   TMC2209-Test2

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers GCONF.cpp Source File

GCONF.cpp

00001 #include "TMCStepper.h"
00002 #include "TMC_MACROS.h"
00003 
00004 #define SET_REG(SETTING) GCONF_register.SETTING = B; write(GCONF_register.address, GCONF_register.sr)
00005 
00006 // GCONF
00007 /*
00008 uint32_t TMC2130Stepper::GCONF() {
00009     return read(GCONF_register.address);
00010 }
00011 void TMC2130Stepper::GCONF(uint32_t input) {
00012     GCONF_register.sr = input;
00013     write(GCONF_register.address, GCONF_register.sr);
00014 }
00015 
00016 void TMC2130Stepper::I_scale_analog(bool B)         { SET_REG(i_scale_analog);          }
00017 void TMC2130Stepper::internal_Rsense(bool B)        { SET_REG(internal_rsense);         }
00018 void TMC2130Stepper::en_pwm_mode(bool B)            { SET_REG(en_pwm_mode);             }
00019 void TMC2130Stepper::enc_commutation(bool B)        { SET_REG(enc_commutation);         }
00020 void TMC2130Stepper::shaft(bool B)                  { SET_REG(shaft);                   }
00021 void TMC2130Stepper::diag0_error(bool B)            { SET_REG(diag0_error);             }
00022 void TMC2130Stepper::diag0_otpw(bool B)             { SET_REG(diag0_otpw);              }
00023 void TMC2130Stepper::diag0_stall(bool B)            { SET_REG(diag0_stall);             }
00024 void TMC2130Stepper::diag1_stall(bool B)            { SET_REG(diag1_stall);             }
00025 void TMC2130Stepper::diag1_index(bool B)            { SET_REG(diag1_index);             }
00026 void TMC2130Stepper::diag1_onstate(bool B)          { SET_REG(diag1_onstate);           }
00027 void TMC2130Stepper::diag1_steps_skipped(bool B)    { SET_REG(diag1_steps_skipped);     }
00028 void TMC2130Stepper::diag0_int_pushpull(bool B)     { SET_REG(diag0_int_pushpull);      }
00029 void TMC2130Stepper::diag1_pushpull(bool B)         { SET_REG(diag1_poscomp_pushpull);  }
00030 void TMC2130Stepper::small_hysteresis(bool B)       { SET_REG(small_hysteresis);        }
00031 void TMC2130Stepper::stop_enable(bool B)            { SET_REG(stop_enable);             }
00032 void TMC2130Stepper::direct_mode(bool B)            { SET_REG(direct_mode);             }
00033 
00034 bool TMC2130Stepper::I_scale_analog()               { GCONF_t r{0}; r.sr = GCONF(); return r.i_scale_analog;        }
00035 bool TMC2130Stepper::internal_Rsense()              { GCONF_t r{0}; r.sr = GCONF(); return r.internal_rsense;       }
00036 bool TMC2130Stepper::en_pwm_mode()                  { GCONF_t r{0}; r.sr = GCONF(); return r.en_pwm_mode;           }
00037 bool TMC2130Stepper::enc_commutation()              { GCONF_t r{0}; r.sr = GCONF(); return r.enc_commutation;       }
00038 bool TMC2130Stepper::shaft()                        { GCONF_t r{0}; r.sr = GCONF(); return r.shaft;                 }
00039 bool TMC2130Stepper::diag0_error()                  { GCONF_t r{0}; r.sr = GCONF(); return r.diag0_error;           }
00040 bool TMC2130Stepper::diag0_otpw()                   { GCONF_t r{0}; r.sr = GCONF(); return r.diag0_otpw;            }
00041 bool TMC2130Stepper::diag0_stall()                  { GCONF_t r{0}; r.sr = GCONF(); return r.diag0_stall;           }
00042 bool TMC2130Stepper::diag1_stall()                  { GCONF_t r{0}; r.sr = GCONF(); return r.diag1_stall;           }
00043 bool TMC2130Stepper::diag1_index()                  { GCONF_t r{0}; r.sr = GCONF(); return r.diag1_index;           }
00044 bool TMC2130Stepper::diag1_onstate()                { GCONF_t r{0}; r.sr = GCONF(); return r.diag1_onstate;         }
00045 bool TMC2130Stepper::diag1_steps_skipped()          { GCONF_t r{0}; r.sr = GCONF(); return r.diag1_steps_skipped;   }
00046 bool TMC2130Stepper::diag0_int_pushpull()           { GCONF_t r{0}; r.sr = GCONF(); return r.diag0_int_pushpull;    }
00047 bool TMC2130Stepper::diag1_pushpull()               { GCONF_t r{0}; r.sr = GCONF(); return r.diag1_poscomp_pushpull;}
00048 bool TMC2130Stepper::small_hysteresis()             { GCONF_t r{0}; r.sr = GCONF(); return r.small_hysteresis;      }
00049 bool TMC2130Stepper::stop_enable()                  { GCONF_t r{0}; r.sr = GCONF(); return r.stop_enable;           }
00050 bool TMC2130Stepper::direct_mode()                  { GCONF_t r{0}; r.sr = GCONF(); return r.direct_mode;           }
00051 */
00052 /*
00053 bit 18 not implemented:
00054 test_mode 0:
00055 Normal operation 1:
00056 Enable analog test output on pin DCO. IHOLD[1..0] selects the function of DCO:
00057 0…2: T120, DAC, VDDH Attention:
00058 Not for user, set to 0 for normal operation!
00059 */
00060 /*
00061 void TMC5160Stepper::recalibrate(bool B)            { SET_REG(recalibrate);             }
00062 void TMC5160Stepper::faststandstill(bool B)         { SET_REG(faststandstill);          }
00063 void TMC5160Stepper::multistep_filt(bool B)         { SET_REG(multistep_filt);          }
00064 bool TMC5160Stepper::recalibrate()                  { GCONF_t r{0}; r.sr = GCONF(); return r.recalibrate;   }
00065 bool TMC5160Stepper::faststandstill()               { GCONF_t r{0}; r.sr = GCONF(); return r.faststandstill;    }
00066 bool TMC5160Stepper::multistep_filt()               { GCONF_t r{0}; r.sr = GCONF(); return r.multistep_filt;    }
00067 */
00068 uint32_t TMC2208Stepper::GCONF() {
00069     return read(GCONF_register.address);
00070 }
00071 void TMC2208Stepper::GCONF(uint32_t input) {
00072     GCONF_register.sr = input;
00073     write(GCONF_register.address, GCONF_register.sr);
00074 }
00075 
00076 void TMC2208Stepper::I_scale_analog(bool B)     { SET_REG(i_scale_analog);  }
00077 void TMC2208Stepper::internal_Rsense(bool B)    { SET_REG(internal_rsense); }
00078 void TMC2208Stepper::en_spreadCycle(bool B)     { SET_REG(en_spreadcycle);  }
00079 void TMC2208Stepper::shaft(bool B)              { SET_REG(shaft);           }
00080 void TMC2208Stepper::index_otpw(bool B)         { SET_REG(index_otpw);      }
00081 void TMC2208Stepper::index_step(bool B)         { SET_REG(index_step);      }
00082 void TMC2208Stepper::pdn_disable(bool B)        { SET_REG(pdn_disable);     }
00083 void TMC2208Stepper::mstep_reg_select(bool B)   { SET_REG(mstep_reg_select);}
00084 void TMC2208Stepper::multistep_filt(bool B)     { SET_REG(multistep_filt);  }
00085 
00086 bool TMC2208Stepper::I_scale_analog()   { TMC2208_n::GCONF_t r{0}; r.sr = GCONF(); return r.i_scale_analog;     }
00087 bool TMC2208Stepper::internal_Rsense()  { TMC2208_n::GCONF_t r{0}; r.sr = GCONF(); return r.internal_rsense;    }
00088 bool TMC2208Stepper::en_spreadCycle()   { TMC2208_n::GCONF_t r{0}; r.sr = GCONF(); return r.en_spreadcycle;     }
00089 bool TMC2208Stepper::shaft()            { TMC2208_n::GCONF_t r{0}; r.sr = GCONF(); return r.shaft;              }
00090 bool TMC2208Stepper::index_otpw()       { TMC2208_n::GCONF_t r{0}; r.sr = GCONF(); return r.index_otpw;         }
00091 bool TMC2208Stepper::index_step()       { TMC2208_n::GCONF_t r{0}; r.sr = GCONF(); return r.index_step;         }
00092 bool TMC2208Stepper::pdn_disable()      { TMC2208_n::GCONF_t r{0}; r.sr = GCONF(); return r.pdn_disable;        }
00093 bool TMC2208Stepper::mstep_reg_select() { TMC2208_n::GCONF_t r{0}; r.sr = GCONF(); return r.mstep_reg_select;   }
00094 bool TMC2208Stepper::multistep_filt()   { TMC2208_n::GCONF_t r{0}; r.sr = GCONF(); return r.multistep_filt;     }