I think i fried my TREX and I’m looking for advice on how to not do it again.
I was driving one motor from one channel of a TREX jr. using serial connections running from a PIC computer.
Things were going well and I had a cheap-o am meter making sure i was not exceeding the current spec. The time response of the meter was terrible so it is possible i was peaking the current and did not know it. But the steady flow of current was well below 1 amp. I was just playing around, experimenting.
I was driving the motor full positive then I’d bang it full negative back and forth a bit to see what the motor was going to pull. But the am meter was reading below 2 amps.
Voltage on the motor was about 20 volts. I had not installed any caps across the motor terminals.
Anyway next day, its not working. It works on the “other” channel so I’m pretty sure i screwed it up. Actually a student was in the lab and was running the program (I was not there) and naturally claims “i didn’t do anything”. He’s honest and I believe him but maybe he shorted the motor terminals by mistake. So i cannot swear “nothing happened”.
Anyway before i screw up the other side I want to rule out stupidity on my part. Anything sound strange running a motor as I claim? Would it help to put a fuse in line with the motor terminal so it will protect overcurrent?
So the question is, am I describing anything really stupid? Any idea what I did and what should I never do again?
It seems a little suspicious to me that the controller was working normally when you put it away and didn’t work the next day, especially if someone was using the device in the interim.
What is the stall current of your motor at 20V? If you can’t stall your motor at this voltage, can you try measuring the current it draws when stalled at a lower voltage and scale it appropriately (stall current is pretty much determined by I = V/R, so it varies linearly with voltage). Note that when you go from full forward to full reverse, you could be pulling nearly twice the stall current for a brief duration, and your meter might not even catch this current spike if its response time is low.
The TReX Jr has built-in current detection, so you could use this feature to monitor the current your motor is drawing. For example, have your PIC constantly send the get-current command and record the maximum returned value to get a sense for the height of the peak. Before you do this, however, please use your meter to determine the stall current of your motor.
Stalled it pulls about 0.6 amps from 20 volts. Even when it was reversing hard the ammeter never registered anything close to the TREX limit.
I think it strange too that it just stopped working however the student may have done something by mistake and is unaware of it. But before i hook it up again I’d like some assurance I’m not crazy.
One of the issues I have been contemplating is that when I reverse the motor hard, the inductance in the motor combined with what I imagine to be a high impedance off from the HBridge circuit in the TREX causes a voltage spike??? that over several cycles causes a problem with the TREX??? Could it be a voltage spike causing the problem not current???
A capacitor across the motor terminals would help this situation (remember I do not have caps across the motor terminals).
Anyway, I’m fishing.
So your motor coils have a resistance of over 30 ohms? If that’s the case, then your current draw would be well within the spec for the MC33887 motor drivers on the TReX Jr. In general, I don’t see any problem with the way you were using the device, and the MC33887 has built-in protection against overcurrent and overtemperature, which makes the chips quite robust; of the thousands of MC33887s we’ve sold, you’re the first person who’s contacted us about a broken one.
The MC33887 has flyback diodes that should limit voltage spikes from sudden switching of inductive loads, so this is likely not the source of your problem. Furthermore, the MC33887 can handle voltages as high as 40 V, so it should be one of the last components on the board damaged by a voltage spike.
Are you absolutely sure the driver is damaged? Is there any chance the problem is in your code? Have you tried using the TReX Configurator program to control both motor channels? Does the broken motor driver get warm (be careful not to burn yourself!) when you command it to drive a motor?
Note that the TReX Jr lets you control the acceleration of your motor, which can smooth out motion and decrease current spikes. If you plan on doing a lot of rapid direction switching, you might try using the acceleration commands.
What you are saying is very encouraging. I will hook it back up and do as you suggest.
“I didn’t change anything in the code” I’m sure you hear that all the time. I’ll check it.
You told me what I want to hear, basically the circuit is well protected.
It may take me a couple of days to hook it back up and do some testing but in light of what you said, I’ll proceed with confidence.
I’ll post the ultimate solution once I complete tests.
Thanks, I’m very interested to hear what you find out.