Last year I designed and had a couple of these boards made based on the [Allegro A3979 stepper motor driver IC. I have stuffed the board and have been playing around with it for a while and am worried about some funny things happening. The main thing being miss steeps. Sometimes when I feed a constant moderate wave to one of the ICs the motor will run fine for a bit (60 seconds) then it will start to rhythmically miss step. Im not sure if that has to do with noise or what not… I was hoping someone with some better experience with the subject could look over my PCB and see if there’s anything obviously wrong.
Some other things that happen are when the driver is enabled with no steps being sent, the motor windings are receiving current to hold it still as expected, sometimes the current will switch on and off around twice a second. Again I’m not sure what the cause of this is.
As instructed by the docs Ive done my best to keep the drive traces away from the signal lines. They are the white lines in the pics.
As you can see there is a very large ground plane for heat sinking. At the bottom of the IC there is a ground pad which is soldered to this plane. On top of that the H looking thing is a solder mask to which I solder a [SMD heat sink to help even further. I thought maybe the IC was going into thermal shutdown but figured that the symptoms for that wouldn’t be as rhythmic as they are.
Some other weird things that happen is the steppers make lots of noise when setting idle with holding current. I thought that’s probably normal though but i figured I’d mention it to make sure. Today I actually could hear a local radio station from one of them.
Ive only used 1 channel so far, and the average current through it is 200-300mA
Can you post your schematic too? I’d like to take a look at your component values.
Several things come to mind as possibilities:
When it runs OK and then misses, it may be hitting mid-band resonance. What step rate are you running it at when this happens? If you move %10 slower, does it still happen?
When it cuts out a couple times per second, it could be the thermal overload protection in the driver chip, as you mention. I’ve seen that happen when I’ve pushed my EasyDriver really hard (with high input voltage and a low resistance motor) and it got really hot. The rhythmic nature of it is surprising, although mine cut in and out every second or so. With only 300mA, this shouldn’t be your problem, but I thought I’d mention it. You’ve got tons of heat sinking ability on your board anyway. Do the chips get hot to the touch?
The noise while idle is surprising. I think it might mean that your RC values are wrong, but I’m just guessing here.
What is the coil resistance of the motor you’re testing with? What input voltage are you using? What are you driving the step and direction pins with?
I will check tomorrow an exact freq this happens at.
The heat sink does get very hot. Hot enough that I cant hold my finger on it. I thought that was strange too for an IC that boasts 2.5A capability. I imagine the IC is hotter than that.
I should of clarified when I mean noise I mean like audible noise. The stepper motors act as a speaker. I thought this was normal because I have a CNC machine that has the same issues. The driver ICs are based around the SLA7078MR H bridge driver. http://www.probotix.com/stepper_motor_d … ProboStep/ The Stepper motors are audibly noisy when idle. However Ive never been able to hear music from a local radio station on those ones.
I actually have no idea what the coil resistance is. The data sheet doesn’t seem to specify. I have them wired in bipolar parallel, my DMM seems to report .5 Ohm that way so i could assume each coil is 1ohm. The motor is model # 8WL-S601Y32 [here. Perhaps you can see something I don’t in the data sheet. I’m running them at 24V. I’m driving them with an Atmega235PV a on an STK600 at the moment.](http://www.anaheimautomation.com/manuals/stepper/L010164%20-%2023Y%20Series%20Spec%20Sheet.pdf)](http://i49.tinypic.com/szhgxz.png)
Ehh I think I may have figured it out. I never had the driver board and micro grounds tied together. I did that and I haven’t had any problems… yet.
Its taking 4kHz at 1/4 stepping without any problems. Which is 5 rps.
Ir temp sensor says the HS is around 79C in the worst area. This is after ~10 of running at the above speed and pushing 350mA.
Its still doing some funny things when the motor is idle with holding current. The stepper is ticking and current is bouncing up and down like 300mA. I think this is related to using 1/4 stepping. I think whats happening is Im stopping sending steps while its somewhere in the middle of a full step so the drive is trying to send partial currents to the stepper to hold it. But im not sure.
Well I have them going pretty quick now. About 5.5k steps/sec. That seems to be max for my motors when quarter stepping. I haven’t been having any problems when moving them fast like this. The problems come when I try to step at very low speeds. That’s when the rhythmic skipping happens. But Ive come to the conclusion hat this is because the IC is going into thermal shutdown. When running at lower speeds the IC sinks more current than the stepper and gets really hot because of this. If i actually blow on the IC to cool it off the skipping will stop. When I stop blowing it runs till it gets hot and starts skipping again. I’m wondering if I have a bad connection between the ground pad on the bottom of the IC and the copper on the board.
I wish the the chip gave some sort of pin signal indication when its shutdown down because of temp so I would know for sure.
I couldn’t find anything wrong with your schematic, but I’ve not used that exact part, so I could have easily missed something.
It sounds like you’ve figured out all of your problems. The one that’s really strange is why it’s getting so hot. (Obviously the rhythmic stuttering is thermal shutdown if cooling it off stops the problem.)
What do you have VREF set to? Are you sure you’re only drawing 300mA at 24V? I just don’t see how your chips can be getting hot if they’re only passing 300mA to the motors. I can pass 600mA to a motor using the EasyDriver and, while very hot, it doesn’t go into thermal shutdown. At 300mA it doesn’t heat up much at all. And the DMOS drivers in your chip are far more efficient.
Vref is at ~2.1V right now. Im only using one of the ICs right now and my bench top power supply is reporting that much current.
the easydriver (A3967) is a SOIC where as the A3979 is a TSSOP, almost half the size. Perhaps this has to do with the dramatic thermal differences.
I’m starting to think more and more I have a bad bond between the thermal pad on the bottom of the IC and my ground plane. I’m going to have to try to hotplate or hot air gun it. Thermal shutdown is listed on the dox at 165°C. If the highest temp around the IC i can find with my Ir sensor is ~80°C and its going into shutdown then I think thats fairly good evidence that there’s a bad bond between the thermal pad and the copper plane.