Allegro A3977, Idle noise Help

Status
Not open for further replies.
The diodes do *handle* the back-emf - they prevent the A3977 from dying immediately and instead shunt the generated power to the main powersupply - where it then goes and nukes everything.

Well, from the design perspective - when the A3977 goes into standby, use a relay to disconnect the motor. Or make it home automatically. Or never put into standby and make it difficult to manually move the head. Or make them pay for replacement parts. (Followed by increasingly hostile options...)
 
Interesting...
You say "instead shunt the generated power to the main powersupply"
Do you mean to ground, or to push it to VBB?

Allegro says VBB must NOT exceed 35V.

The relay idea would be good if I only had a couple of boards to fix.
But there are quite a few to upgrade.

I think I'll do some testing with the TIP41 method.
It looks easy......and cheap!

M
 
Matilda said:
Is the T1 line the VBB?
yes - T1 (transistor tip122..121..) - its collector is connected to Vbb

Matilda said:
Also, I was looking at the other schematic you posted earlier. It shows two diodes and a TIP41...is that performing the same job?
yes...
important change - R24.. value 100-200R

Matilda said:
what's the purpose of the 8 BYV diodes?

allegro FAQ said:
Use of external Schottky diodes with low Vforward, to clamp the outputs to VBB and ground, will help to reduce the power dissipation in the A3977. Heat sinks are also a possibility, but not as efficient

I use a3977 with 8 ext. diodes to drive 3A stepper
 
Mark,
I don't mean to have you doing my work for me! But in your case, what have you got for R21 & D1? Are these components as a group known as a shunt regulator?? I'm trying to find some documention. My VBB is 24V and I need to calculate the best valued components.

Currently my plan will be to make a daughter board and solder it just above the 8 BYV diodes. The arrows in my photo show the points as GND & +24V. Plus it's nice and close to the motor.

I'm finding info on Back-Emf....but nothing to promising.

Any more pointers you got for me??

Thanks!
 

Attachments

  • DSCF0009.JPG
    136.8 KB · Views: 948
It is a shunt regulator - most of the values aren't too critical. R21 isn't critical - it's there to make sure the leakage current through the zener diode doesn't turn the darlington pair on. A 10K resistor or anything in the general vicinity is fine. The Zener diode wants to be rated at ~Vclamp-2V, where Vclamp is the voltage you want to clamp at. A 28V or 30V zener should work. The power rating of the zener shouldn't be a problem if you are using a darlington pair - nearly anything should work..

BTW, If you want to read up on the stuff, I think looking around for "4 quadrant motor driver" or "resistive dumping" should give you plenty of links.
 
Last edited:
markcomp77 said:
R21... 4k7 (not important value)
D1 - zener
Vd1 smallest or equal ... 35 - 2*0.7
---

what is "RN214-2,5/02" ?


The RN214-2,5/02 is a choke we use on this board.
The board in question has a 24V buss, and each of the 4 motor channels tap into the buss through these chokes.
Helps keep each motor channel from pushing noise onto the 24V buss.
 
markcomp77,
The schematic that you show for the shunt regulator.
That schematic basically shorts VBB to ground on high BEMF right?

I'm guessing this will be a problem if the +24V power supply is left on.

If so should I try a fast acting 28V zener aross the 24Volts?
(VBB to GND)


M
 
Well...
Here is what I came up with...
I had no stock on any TIP devices, so I started looking around in inventory and came across a whack of some Transient Voltage suppressors.
P6KE27A

I put one across the BYV diodes. Which puts its close to the stepper motor and across GND and the 24V supply. On my test board I removed the blown A3977 and put in a socket for test purposes. So, if I run the stepper motor around the track with the TVS in place all is well. But if I remove the TVS and run the stepper, the A3977 blows and the power supply running the board resets.

Matilda.
 

Attachments

  • TVS.JPG
    77.6 KB · Views: 738
Well, according to the data sheet(https://www.fairchildsemi.com/ds/P6/P6KE27A.pdf), they start conducting at ~27V, and go up to ~37V@16A... These parts are rated for 5W continuous operation => 5W = I/30V => Imax = ~170mA.

For CYA purposes, I'd probably want to hook up an ammeter in series with the TVS and flail the stepper around as fast as humanly possible for a little bit and record the values, but it seems like a nice safe solution.
 
A9377 Woes

Hi folks,
I'm at my wits end trying to resolve problems I'm having with a fluid dispensing system that uses a stepper motor to drive a special type of Quadrant pump, and would really appreciate any advice you might give. I am using an A3977 to drive a MotionKing 17HS8401 motor (1.7A, 3.2mH, 1.8degree/step)).

The pump moves a fairly precise amount of fluid for each revolution, so the requirement is to simply rotate the pump shaft a specific number of steps, in a prescribed time. The standard step count is 8600 steps, and the time window is around 3.5 seconds, so the step rate needs to be around 2500hz.

Problems I am getting are that: even at low step rates (<1200hz), the motor is shuddering, and does not always move the required number of rotations. It is quite unpredictabel. Secondly, if I try to step faster than about 1400hz, the motor stalls. This afternoon I tried the suggestion of reducing the size of the resistors on RC1 and RC2 to 10k. A couple of times thereafter, the motor did run at 1800hz, but then went back to it's old ways.

The pumps only run once in every minute or so, so I hold Enable off till the pump has to work, so as to avoid undue heating and energy waste. Enable is switched 250ms before the first step pulse is sent.

Reviewing all your comments in the thread so far doesn't give me many clues. I'm new to stepper motors, so am really floundering. Any assistance you can give will be most welcome.

Regards
Colin
 
Colindu,

Most stepper motors do not like being started at the full step count that you need to run. You need to accelerate the motor over time in order to achieve high step rates otherwise it will stall. Even a simple linear acceleration curve where the speed is adjusted from minium to maximum over a 0.5 to 0.75 second period will help considerably.

Another thing to do is experiment with microstepping. Stepper motors have resonances which can cause them to stall at certain step rates. Microstepping can help reduce the effect or shift it to a different frequency. Since all motors and systems are different, you will have to experiment to find out what works best for your system.

Let us know if any of these suggestions help.
 
It strikes me as you're wanted an exceptionally high speed from the stepper?, steppers aren't very fast devices, and when trying to get anything like their maximum speed you lose power drastically.

Phalanx's suggestions are wise things to try, but from an experimentation point of view I would try reducing the speed substantially, to make sure that works OK - down where you get better power from the stepper. Then, as suggested, try gradual acceleration once you have a known working start speed.
 
Stepper speed

Thanks for your comments,

Speed is an issue that I've tried to push back on, but there are a few imperatives about this product that mean I'm stuck with trying to accomodate it. We are altering code in the micro tomorrow, to include a two stage "ramp up" sequence (start at say 500hz, then go to 1khz, then to 2.5khz) to see if that assists. At the same time, I will also play, again, with the values for PFD and REF, to see what they give me.

This machine has 8 pumps, but only one is driven at any one time. I was wondering why I was getting such a high load on the 24v rail, when I had just one pump running. It suddenly dawned on me that I was using a common ENABLE line across all 8 pumps, but just toggling the STEP pin of the desired pump. Therefore, even though only one pump was drawing full current while stepping, the seven others were also dragging current as each will have at least one phase energised - ahh the pitfalls of trying too hard to conserve I/O. Fortunately I have the required number of I/O sitting unused on a port expander chip nearby (released from other duties in the previous rev), so I have an easy way out on this one, at least.

I didn't state it explicitly previously, but I am running in full step mode. Matilda suggested running in micro-stepping mode. Is it possible to switch from one micro-step mode to another (or to full step) on the fly? For instance, starting the motor turning in 1/8 or 1/4 step mode, then switching to 1/2 or full step mode to complete the cycle.

Regards
Colin
 
On switching between microstepping modes - I think you can only do it accurately when you are at full step points.

If ramping up doesn't get you the speed, then you are probably hitting resonance. google up jones on stepping. he talks a lot about resonance.

I'm sure you don't want to hear this but...

I think you are going about this the wrong way. I would use a DC motor with an encoder and just count revolutions. PWM to control the speed. It's a lot simpler electronics than stepping and the software is about the same complexity. You might have to ramp up and ramp down to get really precise counts but I bet you will get much much faster speeds.
 
Some advancement with A3977

Hi guys!
I have been fiddling with both PFA, and ramping, and have made some significant progress, but still have problems.

We have changed the code in our micro so that we can now invoke up to 5 ramping steps. Running in Full step mode, Phase 1 was set to 500ms @ 750hz, Pase 2 was set to 250ms @ 1500hz, and phase 3 was set to 4 seconds @ 2200hz. Results= motor spins up through phases and runs for full program without stalling about 4 out of every 5 runs. Usually it stalled at the last transition.

I stressed out the programmer and went through the way the step pulses are shaped during each phase, looking for delays/glitches between the last pulse of one phase and the first pulse of the next. No problems there - transition between pulses is clean.

I tried using all 5 ramp phases and did, 300ms@500hz, then 300ms@1000hz, then 300ms@1500hz, then 300ms@1800hz, and finally 2200hz for a coule of seconds. Still got the motor stall about 1 in every 5 runs.

I am yet to tweak PFD, but have the RC resistors at 10k and the caps at 1000pf.

Any comments?

Colin
 
Your acceleration curve is still too coarse. Smooth transitions are the key to getting the motor to step at the rate you want. Notice your frequency jump on your last transition is 400Hz where the prior jump is 300Hz. At the very least these should be reversed. The reasoning behind this is the faster you step a stepper motor, the less torque it produces. Any change in speed requires additional torque to accelerate the motor. The larger the change in speed, the more torque you need but the faster you go the less torque you can produce. Because of this, the faster you run the motor the smaller the increments in speed will need to be otherwise you run the risk of it stalling. This is exactly what you are seeing in your experiments where the motor is stalling 1 out of 5 times.

It would be much better if you could rewrite your acceleration routine so it has significantly more (and smaller steps) in it especially at the higher end of the operating speed.

If changing to a DC motor with an encoder is not an option, can you change the leadscrew on your pump so you do not have to turn the stepper as fast as you do now?
 
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…