Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
Sergey-77 authored Jan 21, 2019
1 parent 7985690 commit 9fbef29
Showing 1 changed file with 76 additions and 0 deletions.
76 changes: 76 additions & 0 deletions attiny85_firmware.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@

// Needs TMC2208Stepper library by teemuatlut
#include <TMC2208Stepper.h>
// Define pins
#define EN_PIN 2 // LOW: Driver enabled. HIGH: Driver disabled
#define rxPin 3
#define txPin 0
#define input_enable_motors 1
TMC2208Stepper driver = TMC2208Stepper(rxPin, txPin); // Create driver and use
// Software Serial for communication
void setDriversInternal_reff(int current_mA){
driver.push(); // Reset registers
driver.pdn_disable(true); // Use PDN/UART pin for communication
driver.mstep_reg_select(true);
driver.microsteps(32);
driver.I_scale_analog(false); // Use internal voltage reference
driver.rms_current(current_mA);// Set driver current 200mA
driver.toff(5); // Enable driver in software
driver.blank_time(24);
driver.intpol(1);
driver.TPOWERDOWN(128); // ~2s until driver lowers to hold current
//driver.hysterisis_start(3);
//driver.hysterisis_end(2);
//driver.pwm_lim(12);
//driver.pwm_reg(8);
driver.pwm_autograd(1);
driver.pwm_autoscale(1);
driver.pwm_freq(1);
//driver.pwm_grad(14);
//driver.pwm_ofs(36);
driver.en_spreadCycle(false);
driver.GSTAT(0b111); // Clear
}

void setDriversExternal_reff(){
driver.push(); // Reset registers
driver.pdn_disable(true); // Use PDN/UART pin for communication
driver.mstep_reg_select(true);
driver.microsteps(32);
driver.IHOLD_IRUN(0x1F10);
driver.I_scale_analog(true);
driver.internal_Rsense(false);
driver.toff(3); // Enable driver in software
driver.blank_time(24);
driver.intpol(1);
driver.TPOWERDOWN(128); // ~2s until driver lowers to hold current
driver.hysterisis_start(3);
driver.hysterisis_end(3);
//driver.pwm_lim(12);
driver.pwm_autograd(1);
driver.pwm_autoscale(1);
driver.pwm_freq(0);
driver.pwm_reg(3);
driver.pwm_grad(14);
driver.pwm_ofs(36);
driver.en_spreadCycle(false);
driver.GSTAT(0b111); // Clear
}

void setup() {
pinMode(input_enable_motors, INPUT);
pinMode(EN_PIN, OUTPUT);
digitalWrite(EN_PIN, HIGH); // Disable driver in hardware
driver.beginSerial(9600);
setDriversExternal_reff();
//setDriversInternal_reff(200);// Set driver current 200mA
}

void loop() {
delay(500);
if(digitalRead(input_enable_motors)){
//setDrivers();
digitalWrite(EN_PIN, LOW); // Enable driver in hardware
}
else digitalWrite(EN_PIN, HIGH); // Disable driver in hardware
}

0 comments on commit 9fbef29

Please sign in to comment.