def __init__(self, config): # Setup mcu communication self.fields = tmc.FieldHelper(Fields, SignedFields, FieldFormatters) self.mcu_tmc = tmc_uart.MCU_TMC_uart(config, Registers, self.fields) # Register commands cmdhelper = tmc.TMCCommandHelper(config, self.mcu_tmc) cmdhelper.setup_register_dump(ReadRegisters, self.read_translate) # Setup basic register values self.fields.set_field("pdn_disable", True) self.fields.set_field("mstep_reg_select", True) self.fields.set_field("multistep_filt", True) tmc2130.TMCCurrentHelper(config, self.mcu_tmc) mh = tmc.TMCMicrostepHelper(config, self.mcu_tmc) self.get_microsteps = mh.get_microsteps self.get_phase = mh.get_phase tmc.TMCStealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY) # Allow other registers to be set from the config set_config_field = self.fields.set_config_field set_config_field(config, "toff", 3) set_config_field(config, "hstrt", 5) set_config_field(config, "hend", 0) set_config_field(config, "TBL", 2) set_config_field(config, "IHOLDDELAY", 8) set_config_field(config, "TPOWERDOWN", 20) set_config_field(config, "PWM_OFS", 36) set_config_field(config, "PWM_GRAD", 14) set_config_field(config, "pwm_freq", 1) set_config_field(config, "pwm_autoscale", True) set_config_field(config, "pwm_autograd", True) set_config_field(config, "PWM_REG", 8) set_config_field(config, "PWM_LIM", 12)
def __init__(self, config): # Setup mcu communication self.fields = tmc.FieldHelper(Fields, SignedFields, FieldFormatters) self.mcu_tmc = MCU_TMC_SPI(config, Registers, self.fields) # Allow virtual endstop to be created diag1_pin = config.get('diag1_pin', None) tmc.TMCEndstopHelper(config, self.mcu_tmc, diag1_pin) # Register commands cmdhelper = tmc.TMCCommandHelper(config, self.mcu_tmc) cmdhelper.setup_register_dump(self.query_registers) # Setup basic register values TMCCurrentHelper(config, self.mcu_tmc) mh = tmc.TMCMicrostepHelper(config, self.mcu_tmc) self.get_microsteps = mh.get_microsteps self.get_phase = mh.get_phase tmc.TMCStealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY) # Allow other registers to be set from the config set_config_field = self.fields.set_config_field set_config_field(config, "toff", 4) set_config_field(config, "hstrt", 0) set_config_field(config, "hend", 7) set_config_field(config, "TBL", 1) set_config_field(config, "intpol", True, "interpolate") set_config_field(config, "IHOLDDELAY", 8) set_config_field(config, "TPOWERDOWN", 0) set_config_field(config, "PWM_AMPL", 128) set_config_field(config, "PWM_GRAD", 4) set_config_field(config, "pwm_freq", 1) set_config_field(config, "pwm_autoscale", True) set_config_field(config, "sgt", 0)
def __init__(self, config): # Setup mcu communication self.fields = tmc.FieldHelper(Fields, SignedFields, FieldFormatters) self.mcu_tmc = tmc2130.MCU_TMC_SPI(config, Registers, self.fields) # Allow virtual endstop to be created diag1_pin = config.get('diag1_pin', None) tmc.TMCEndstopHelper(config, self.mcu_tmc, diag1_pin) # Register commands cmdhelper = tmc.TMCCommandHelper(config, self.mcu_tmc) cmdhelper.setup_register_dump(self.query_registers) # Setup basic register values mh = tmc.TMCMicrostepHelper(config, self.mcu_tmc) self.get_microsteps = mh.get_microsteps self.get_phase = mh.get_phase tmc.TMCStealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY) # CHOPCONF set_config_field = self.fields.set_config_field set_config_field(config, "toff", 3) set_config_field(config, "hstrt", 5) set_config_field(config, "hend", 2) set_config_field(config, "fd3", 0) set_config_field(config, "disfdcc", 0) set_config_field(config, "chm", 0) set_config_field(config, "tbl", 2) set_config_field(config, "vhighfs", 0) set_config_field(config, "vhighchm", 0) set_config_field(config, "tpfd", 4) set_config_field(config, "intpol", True, "interpolate") set_config_field(config, "dedge", 0) set_config_field(config, "diss2g", 0) set_config_field(config, "diss2vs", 0) # COOLCONF set_config_field(config, "semin", 0) # page 52 set_config_field(config, "seup", 0) set_config_field(config, "semax", 0) set_config_field(config, "sedn", 0) set_config_field(config, "seimin", 0) set_config_field(config, "sgt", 0) set_config_field(config, "sfilt", 0) # IHOLDIRUN TMC5160CurrentHelper(config, self.mcu_tmc) set_config_field(config, "IHOLDDELAY", 6) # PWMCONF set_config_field(config, "PWM_OFS", 30) set_config_field(config, "PWM_GRAD", 0) set_config_field(config, "pwm_freq", 1) set_config_field(config, "pwm_autoscale", True) set_config_field(config, "pwm_autograd", True) set_config_field(config, "freewheel", 0) set_config_field(config, "PWM_REG", 4) set_config_field(config, "PWM_LIM", 12) # TPOWERDOWN set_config_field(config, "TPOWERDOWN", 10)
def __init__(self, config): # Setup mcu communication self.fields = tmc.FieldHelper(Fields, SignedFields, FieldFormatters) self.mcu_tmc = MCU_TMC_SPI(config, Registers, self.fields) # Setup Current cur_helper = TMCCurrentHelper(config, self.mcu_tmc) # Allow virtual pins to be created diag1_pin = config.get('diag1_pin', None) tmc.TMCVirtualPinHelper(config, self.mcu_tmc, diag1_pin, cur_helper) # Register commands cmdhelper = tmc.TMCCommandHelper(config, self.mcu_tmc) cmdhelper.setup_register_dump(ReadRegisters) # Setup basic register values mh = tmc.TMCMicrostepHelper(config, self.mcu_tmc) self.get_microsteps = mh.get_microsteps self.get_phase = mh.get_phase tmc.TMCStealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY) # Allow other registers to be set from the config set_config_field = self.fields.set_config_field set_config_field(config, "toff", 4) set_config_field(config, "TBL", 1) set_config_field(config, "IHOLDDELAY", 8) set_config_field(config, "TPOWERDOWN", 0) set_config_field(config, "PWM_AMPL", 128) set_config_field(config, "PWM_GRAD", 4) set_config_field(config, "pwm_freq", 1) set_config_field(config, "pwm_autoscale", True) set_config_field(config, "sgt", 0) # CHOPCONF ch_modes = {'SpreadCycle': 0, 'ConstantOff': 1} chm = config.getchoice( 'chopper_mode', ch_modes, "SpreadCycle") self.fields.set_field("chm", chm) if chm == ch_modes['SpreadCycle']: set_config_field(config, "hstrt", 0) set_config_field(config, "hend", 7) else: tfd = config.getint('driver_TFD', 0, minval=0, maxval=15) self.fields.set_field('hstrt', tfd) self.fields.set_field('fd3', (tfd >> 3) & 1) hend = config.getint('driver_OFFSET', 0) self.fields.set_field('hend', hend) set_config_field(config, "disfdcc", False) set_config_field(config, "rndtf", False) set_config_field(config, "vhighfs", False) set_config_field(config, "vhighchm", False) set_config_field(config, "sync", 0) set_config_field(config, "dedge", False) set_config_field(config, "diss2g", False) # COOLCONF set_config_field(config, "semin", 0) seup_choices = {'1': 0, '2': 1, '4': 2, '8': 3} seup = config.getchoice("seup", seup_choices, '1') self.fields.set_field("seup", seup) set_config_field(config, "semax", 0) sedn_choices = {'32': 0, '8': 1, '2': 2, '1': 3} sedn = config.getchoice("sedn", sedn_choices, '32') self.fields.set_field("sedn", sedn) set_config_field(config, "seimin", 0) set_config_field(config, "sfilt", False) TMC2130_EXTRA(config, self)