Stepper driver current question May 11, 2009 12:23PM |
Registered: 15 years ago Posts: 82 |
Re: Stepper driver current question May 11, 2009 03:59PM |
Registered: 16 years ago Posts: 536 |
Re: Stepper driver current question May 11, 2009 04:14PM |
Admin Registered: 17 years ago Posts: 7,879 |
Re: Stepper driver current question May 12, 2009 04:34PM |
Registered: 15 years ago Posts: 82 |
Re: Stepper driver current question May 13, 2009 12:22AM |
Registered: 15 years ago Posts: 82 |
Re: Stepper driver current question May 13, 2009 06:27PM |
Admin Registered: 17 years ago Posts: 7,879 |
Quote
It doesn't quite look like an exponential build-up yet, but that may be because I'm only looking at the very start of the graph and have the rest chopped off due to my low Vref. Indeed, if I look at how the graph changes at higher voltages, I see a bit more flattening but nothing too much.
Quote
I'm starting to think is that at about 1600 hsps, which seems to be almost the absolute top speed in serial setup, regardless of drive current or stepper mode, the BEMF might about cancel out the driving voltage. Does that sound at all plausible? I might connect two steppers together using a coupling and then use the second motor as a generator and measure the voltage.
Quote
What does surprise me though is that even without BEMF, current can't build up much past 500 mA when stepping at 1000 hsps, yet there is still good torque at such speed with this RRRF setup (Keling NEMA23 motor, SMD v1.2 driver), I'll connect the motors in parallel as well (which I plan to use eventually anyway) and see how that changes things.
Re: Stepper driver current question May 13, 2009 10:11PM |
Registered: 15 years ago Posts: 82 |
Re: Stepper driver current question May 14, 2009 04:29AM |
Admin Registered: 17 years ago Posts: 7,879 |
def set_ramp(self, steps, run_delay): table = pack('>h',steps) #start with the number of entries k = 4 * run_delay * run_delay * steps last = 0 for i in range(steps): t = sqrt((i + 1) * k) table = table + pack('>h', int(round(t - last))) last = t return tableIt uses a square root so I calculate it on my host and send it to the controller.
if(steps < ramp_length) { // near end of line ? del = ramp[steps]; if(del < run_delay) del = run_delay; } else if(stepped < ramp_length) { // near start of line ? del = ramp[stepped]; if(del < run_delay) del = run_delay; } else del = run_delay; // middle of line, use the specified speed
Re: Stepper driver current question May 14, 2009 11:10PM |
Registered: 15 years ago Posts: 82 |