Welcome, Guest. Please login or register.

Username: Password:

Author Topic: About a TMC2100 support  (Read 2152 times)

Taka

  • Newbie
  • *
  • Posts: 1
    • View Profile
About a TMC2100 support
« on: October 20, 2017, 13:28:30 »

I checked a latest beta software because it support TMC2100.
But I cannot check it because I have EEPROM issue.
So I back ported the function of TMC2100 to previous version of software.
It works fine for TMC2100 but it is so noisy sound at my environment.
My environment is as following.
--
Vixen GP2 mount
Skywatcher EQ5 Upgrade kit motor (200step)
Arduino MEGA 2560 Rev.3
TMC2100-BOB board
Motor voltage is 12V
I downloaded AstroEQ software on 14th Oct.
--

I checked AstroEQ.c and I found that it use 16x spreadCycle and 2x spreadCycle combination.
The both mode(sidereal/goto rate) make very high unstable frequency big noise.
So I changed it to 16x stealthChop and 4x stealthChop combination because TMC2100 does not have 2x stealthChop.
I have no issue about a motor noise when I use stealthChop mode.
I cannot say stealthChop is better than spreadCycle because it has torque and sound noise tradeoff issue exits.
But my higher priority is sound noise, so I choose stealthChop.

I had a issue about gear change function.
A microstep ratio between normal speed and high speed should be 8:1(32:4 / 16:2 etc...)
So 16x stealthChop and 4x stealthChop is not match above requirement.
I fixed the issue.
But it is not general purpose modification for every driver chip.
A better modification method is that you need to change ConfiguUtility, EEPROM format and AstroEQ Firmware I think.

I have several question about my 4x high speed support modification .
--------------------------------------------------------------
Q1: Should I modify generateAccelerationTable funcion of AstroEQUploader.pde of ConfigUtility?
  I cannot understand "while (stopIVal <= 8) {".

Q2: Should I change "decelerationLength = decelerationLength * 3" in gotoMode function of AstroEQ.c?
  I do not know where "8" of sqr(8) come from.

Q3: Is the following my modification in gotoMode function of AstroEQ.c correct for 4x high speed?
  --
Code: [Select]
if(dirMagnitude == 4){
HVal &= 0xFFFFFFFC; //clear the lower bits to avoid overshoot.
}
if(dirMagnitude == 4){
halfHVal &= 0xFFFFFFFC; //clear the lower bits to avoid overshoot.
}
  --
  A remainder of HVal divided  by dirMagnitude should be 0.

Q4: Should I change the following line in ISR(TIMER1_CAPT_vect), ISR(TIMER3_CAPT_vect) function in AstroEQ.c?
  --
Code: [Select]
  accelTableRepeatsLeft[DC] = cmd.accelTable[DC][accelIndex].repeats * 3 + 2;
  accelTableRepeatsLeft[RA] = cmd.accelTable[RA][accelIndex].repeats * 3 + 2;
  --
  I cannot understand "+2+.

Q5: Please check attached AstroEQ.c
  You can find  the modification point from TMC2100_SPREAD_CYCLE and TMC2100_STEALTH_CHOP.
  In particular, I hope to get a comment of a part of "// I am not sure if this is correct." .

Q6: Do you know why MS1-0 and MS1-1 cannot to be FLOAT state at Arduino Mega2560?
  I tried to make a FLOAT state to MS1-0 and MS1-1 port. But I could not it. And I found it from your code.
   And then, I connect between MS3-0(1) and M0. and it works fine.
--------------------------------------------------------------
« Last Edit: October 20, 2017, 13:38:16 by Taka »
Logged