PDA

View Full Version : ServoPod EMI Issues


ngkdc
09-27-05, 07:13 PM
I'm having what I think are EMI issues with ServoPods in two seperate projects. While I"m familiar with EMI reduction techniques, and plan on doing so with these projects, I'm looking for anyone else that has had problems with the ServoPod being locked up by EMI, and what you found to be the issue.

I've set the hardware watchdog timer to reboot on timeout, and happily that is keeping one project from literally melting down ... but I still need to find out what is causing the processor to lockup and/or halt.

I did find out that you MUST zero any variables you use as flags, because they won't always be cleared on a reboot!

Thanks,


Rick

nmitech
09-29-05, 02:40 PM
Beside the EMI issues, have you look in to the program debugging, IsoMax, or software related in general? Are you currently running version V0.82 , or something else ?


I did find out that you MUST zero any variables you use as flags, because they won't always be cleared on a reboot!

You are correct. System reset won't clear the data ram so to be safe, you must either zero variable(s) or use RESTORE-RAM as a part of the initialization in your startup routine. But I think RESTORE-RAM will put FFFF instead of 0.

ngkdc
09-29-05, 07:52 PM
Beside the EMI issues, have you look in to the program debugging, IsoMax, or software related in general? Are you currently running version V0.82 , or something else ? 0.


I'm running IsoMax V0.82; and I have taken an extensive look at the code. I'm confident it's EMI, because with the power section shut off (kill the breaker) I have absolutely no problems. I'm able to simulate my analog inputs as well with no issues ... but that IS a very good suggestion.



You are correct. System reset won't clear the data ram so to be safe, you must either zero variable(s) or use RESTORE-RAM as a part of the initialization in your startup routine. But I think RESTORE-RAM will put FFFF instead of
0.


Well, I just mark it up to a bump in the learning curve and deal with it. I suppose I could get upset, but it's much easier to zero those variables that need zeroed (such as variables used as flags) ... and not depend so heavily on the core to think for me!


In a side note, I was putting in code to use the COP (watchdog timer) and found an error in the Freescale manual. The initial table shows the base address for the COP function, and the offsets for the timing and control registers as being Base+1 and Base+2, but the tables that break out the bit functions show Base+2 and Base+4 (which doesn't work). Once I found that, the COP did exactly what I wanted it to do ... and that's protect me from hanging up IsoMax. I have a random lockup that occurs with very little information to go on, so I reset the COP with a machine except when this particular piece of code gets executed ... and I reset the COP from that section only when it's active. This way, if my code hangs, but the machines keep running, I'll still get my COP to reboot the processor.

I'll keep you updated on my progress.


Regards,


Rick

I think you have a COP example on the download page, but if you don't, I'll put something together with a line-by-line description for you to post.

ngkdc
10-13-05, 11:04 AM
I've been sidetracked on another issue with this project, but have now refocused, and identified the problem.

The 56DSP80x processors have a pair of low-voltage detectors built into the hardware. Specifically, if the CPU power drops below 2.2 volts for greater than 50 uS, the CPU will stop. Once the power is restored, the CPU restarts, and in my case, restarts my application.

I captured the noise on both the 5 volt and 3.3 volt lines at the ServoPod, and found a transient from my high current switch was reflected in the 3.3 volt CPU power supply, yet was NOT on the 5 volt supply. I'm using the on-board 3.3 volt regulator, and supplying 5 volts from an external supply.

I'm now working on EMI reduction efforts, and will pass along what I find.


Thanks for all the help,

Rick

RMDumse
10-13-05, 01:29 PM
We've had one other report of the ServoPod(TM) having some noise issues. Potentially, some additional bypassing might help. We'd be interested in anything further you happen to find here.

nmitech
10-13-05, 02:12 PM
Thanks Rick. As for the power reset, I would expect the cpu will shutdown around 2.7V instead . Onboard there is a low voltage detector, Q1 which has a voltage threshold of 2.7V & +/- 2%. The purpose of this voltage detector is to keep the cpu operates only when the the CPU analog power is stable. The CPU can work under 2.7V without Q1, but the analog conversion and its circuitry will not work correctly if VREF is less than 2.7V

As for the EMI issues, in my experience the most common problem i've heard is CPU resets. Yet, other may experience the EMI causing the program locked up but the majority locking up problem came from the target system(s) where the program is executed or run from of the external memory. In either case, EMI is not a simple matter to solve without a custom circuit board design with special EMI reduction and protection components, etc... But don't overlook by adding a few bypass caps and maybe replace with stronger pull-up resistors on the signals those are susceptible to noise such as the reset signal. You may try to replace R11(10K) with 2K (or 1K) resistor and add a 0.01uF cap or smaller to the Reset & GND pin of Q1 next to R11. It may help the reset problem.

chris

ngkdc
10-20-05, 08:26 PM
I think I'm ready to close the book on this issue.

First, I did add some extra filtering on my 3.3 volt VREF and 5 volt Vcc lines going to/from the Servopod. I used some 43 Mix SMD RFI beads on the Vref Line and some 73 Mix SMD RFI beads on the 5 volt line (both sets of beads are from Fair-Rite Corp ... I'll put part numbers and a schematic together when I get back off the road). On either side I put 1 uF tantalum caps, 0.1 uF ceramic caps, and on the 3.3V Vref, I also placed 0.001 uF caps on the ServoPod side of the inductor.

I still had a few incidents with resets caused by EMI, so I connected some additional test equipment and found that I was generating resets when I was creating a 2400 amp, 8 uS wide transient on my 300 volt supply line. That was NOT in the project definition, so I eliminated that. I also have an occasional reset when the main contactor pulls in or drops out, conventional RC snubbers should resolve that one (but to be fair, when the contactor pulls in for the transformer, lights throughout the shop blinked). Dedicated power feed to the system from a substation panel is in order once on the customer's site.

I found most of the issues by monitoring the 3.3 volt and 5 volt supplies on J3 Pin 1 and 3, referenced to ground.

I also had used nylon standoffs to mount the servopod to my main board; I replaced two of these with aluminum standoffs to decrease the inductance to my system board's ground.

If I have any further issues, I'll stiffen up the 5 volt and 3.3 Volt supplies with some large, low ESR capacitors ... but only after I tame the transients at their source.

Hope this helps,



Regards,


Rick

RMDumse
10-24-05, 01:04 PM
Well, it certainly sounds like you've got more EMI coming in than we expected. In your opinion, do you think in general the ServoPod(TM) is up to snuff, or would you like to see the layout modified to add some of these bypasses you're adding on?

ngkdc
10-24-05, 08:10 PM
Hi Randy,

The servopod is WELL designed for what you intended ... and is fairly robust to be a drop-in processor for a variety of other projects. I don't think you need to make any changes, but may want to include a white paper (ok ... I'll start writing) on what to do if you are switching high currents.

I really don't think you had switching 2000-4000 amps when you laid this board out ... and to be honest, when doing that high a current, the designer HAS to be responsible for containing the resultant E/M fields.

When this road trip (that never ends) is done, I'll take the time to write up what I've discussed in this thread. While it may not be something that will get published elsewhere, at least you'll have the benefit of my experiences.


Thanks again for ALL of your assistance with my project issues.


Regards,


Rick

ngkdc
01-24-06, 04:21 PM
Well, it was accidental, but I think I found the source of the rebooting.

U6-A is part of the ATTN reset circuitry (along with U6-B). U6-A is being biased into the linear region so will respond to toggling DTR. I believe that U6-A is VERY sensitive to induced EMI, based on some troubleshooting I had to do the other day.

I had a processor that worked fine on the bench, but failed within hours on the customer's site. Frustrating, since it took me several hours back in the office trying to get the board to fail again. The problem traced back to U6-A ... seems that when U6 got hot, it would pull the input low, causing a constant reset on the CPU (low on the reset pin). I removed R20 (4.7K ohm) and the input now stays at 3.3 volts. I needed to continue some engineering trials, and since I'm not using RS-232 when the equipment is buttoned up, losing the ATTN line didn't really cause any concern. (After looking more, it would appear that C7 or C9 may be failing, but I'm not chasing it any further at this point).

I was running my trials, and repeated the settings where I was seeing the ServoPod lock up and/or reboot. Today, however, no problems with the ServoPod. In fact, the only problem I did have was that I locked up my DSO (Bitscope BS300) several times. I still have an EMI issue, but the ServoPod didn't miss a beat!

Again, I'm not driving a little R/C servo here ... I'm generating high current pulses (300 amps @ 100 uS) and creating some rather severe turn-off transients (1000+ amps, 3-5 uS). I'm happy that I've eliminated one of the more troublesome problems (and this after writing a bunch of code to tell me EXACTLY why the system rebooted ... more COP stuff).

If this is repeatable in the field, I'll either contact NMI regarding a special part number for a modified board, or just write a work instruction to modify stock boards.

I'll keep you up to date on testing.

Regards

RMDumse
01-26-06, 01:41 AM
I still have an EMI issue, but the ServoPod didn't miss a beat! ...

If this is repeatable in the field, I'll either contact NMI regarding a special part number for a modified board, or just write a work instruction to modify stock boards.

That's great news. Yes, NMI does a great deal of business in specially configured and/or modified boards. Feel free to ask.