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.