CMP EMBEDDED.COM

Login | Register     Welcome Guest  
HOME DESIGN PRODUCTS COLUMNS E-LEARNING CONFERENCES CODE FORUMS/BLOGS NEWSLETTERS CONTACT FEATURES RSS RSS

Software techniques for comprehensive EMC testing of embedded systems



Embedded.com

Providing Automated Execution of Device Functionality
Quite often, the device under test requires user intervention or other stimulus to cause it to execute all of the major blocks of its functionality that might be influenced by EMI. Especially for radiated susceptibility testing in an RF anechoic chamber, it is not always possible to provide these stimuli.

In these situations, one solution is to create a special EMC test build that automatically sequences the unit under test through these major blocks of functionality without the normal stimuli. In this situation especially, the ability to log or visually indicate the progression through functional blocks is critical. If the device fails, you need clues as to what it was doing when the failure occurred.

Figure 4. Spectrum of MCU clock

Minimizing Emissions
Lastly, let's address how the embedded software engineer can influence minimizing the emissions of the product. In some of these techniques, we truly are minimizing the emissions, but in most cases we are further spreading the emissions over the frequency spectrum so that the average peak energy at any specific frequency is minimized.

Let's consider a system that has a switching power supply. Despite the Hardware Engineers best efforts, the emissions at its switching frequency might exceed the standards limits.  (Figure 4, above) Many switching power supply control ICs can be driven by an external clock.

You can drive the clock input of the switching power supply control IC with a clock output of the microcontroller. At the frequencies that most switching power supplies operate at, the emissions are measured in 9kHz bands.

If you implement a frequency hopping scheme for the clock output frequency that spans some multiple of the emissions measurement bandwidth (for instance 3X or 27kHz), the amplitude of that very strong peak is spread to lower amplitudes in the wider band (Figure 5, below).

Figure 5. Spectrum after clock dithering

Most switching power supply control ICs with clock inputs can easily withstand that frequency variance. This is commonly known as spread spectrum clocking (SSC), or clock dithering. This scheme lowers the average value of the peaks of the currents even though the total amount of energy in the waveforms is the same as before.

Software is required to implement this spread spectrum clocking scheme. If your microcontroller has an internal DMA feature, it is possible that this scheme can be implemented with little or no impact on processing bandwidth.

Just configure a DMA channel to continually loop through clock frequency register reload values stored in a constant array. Note also that after reset, the switching power supply control IC can run off its own internal oscillator until the software configures the switching of the micro's output clock.

The spread spectrum clocking can also be extended to synchronous communications busses where your microcontroller is the master of the bus. Consider an SPI bus (a TI McBSP for instance) that can be configured to use an external signal to drive the baud clock.

A microcontroller timer output can be connected as the drive source for the baud clock. This timer output can then be configured for a spread spectrum clocking scheme. As long as the frequency variance on the baud clock stays within the frequency range specification, and doesn't cause setup or hold time issues, data communications should occur without issue, and the peak emissions will be reduced.

Some microcontrollers that provide parallel address/data busses for access to external components provide programmability of the edge rates of the control signals. In these cases, using the slowest required edge rate will minimize the emissions.

When using a serial communications link to transfer data between ICs, or especially if off board, care should be taken to minimize the rate of communications packets. Limit link activity to the least that is required. During the formal EMC emissions testing, the emissions are monitored on an average basis. By limiting the link activity, the average is lowered. I've personally seen this be the difference between passing and failing a test!

Another way to minimize emissions is to disable any microcontroller internal or external clocks that are not being used. Many times internal peripherals will have individual clock enables.

If the peripheral is not used, disable the clock! It will minimize emissions and reduce power consumption too. Many microcontrollers have external clocked outputs that can be disabled too. The ALE output of 8051 family is a good example. Another example is a CLKOUT output of the system clock. If you're not using it, disable it.

Another thing to do is architect your code to utilize blocking tasks (if using an OS) or to utilize interrupt wakeups (for non-OS) to run tasks rather than just having idle loops spinning in the background.

This architecture enables you to better utilize low power processor modes during the idle time between the bursts of activity. This may allow you to shut down a noisy high speed crystal more often, or even allow you to reduce your clock frequency because these designs make better use of processing bandwidth. Usually low power and low emissions go hand in hand.

Joe Brotz is a Senior Design Engineer with Plexus Technology Group in Neenah Wisconsin. He has over 20 years of experience in embedded software design on products ranging from safety light curtains to medical devices. Joe has a BS in Electrical and Computer Engineering from Marquette University. He can be reached at joe.brotz@plexus.com.

1 | 2 | 3 | 4 | 5

Rate this article: Low High
Current rating
  • .
Embedded.com Career Center
Looking for a new job?
SEARCH JOBS

Browse all jobs

SPONSOR
RECENT JOB POSTINGS





 :