mirror of
git://projects.qi-hardware.com/ben-wpan.git
synced 2024-12-23 17:25:30 +02:00
340 lines
11 KiB
Plaintext
340 lines
11 KiB
Plaintext
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<HTML>
|
|
<TITLE>Production and testing: Fault analysis</TITLE>
|
|
<BODY bgcolor="#ffffff" link="#000000" vlink="#404040">
|
|
|
|
<INCLUDE file="style.inc">
|
|
|
|
<PAGE_BAR title="Production and testing">
|
|
<PAGE_ITEM href="setup.html">Software setup</PAGE_ITEM>
|
|
<PAGE_ITEM href="flash.html">Flashing</PAGE_ITEM>
|
|
<PAGE_ITEM href="test.html">Functional test</PAGE_ITEM>
|
|
<PAGE_CURR href="analysis.html">Fault analysis</PAGE_CURR>
|
|
</PAGE_BAR>
|
|
|
|
<SECTION_BAR>
|
|
<SECTION_ITEM href="#orientation">Component orientation</SECTION_ITEM>
|
|
<SECTION_ITEM href="#voltages">Voltages</SECTION_ITEM>
|
|
<SECTION_ITEM href="#clock">Clock frequency</SECTION_ITEM>
|
|
</SECTION_BAR>
|
|
|
|
|
|
<!-- ====================================================================== -->
|
|
|
|
|
|
<SECTION ref="orientation" title="Component orientation">
|
|
|
|
There are several components whose footprint has a 180° or even 90°
|
|
rotational symmetry, but the component's electrical function is not symmetric.
|
|
Therefore, if such a component is incorrectly rotated, it will appear to the
|
|
casual observer to be properly placed, but it will not work.
|
|
<P>
|
|
These components are:
|
|
<UL>
|
|
<LI>the transceiver chip,
|
|
<LI>the microcontroller (<B>atusb</B> only),
|
|
<LI>the balun, and
|
|
<LI>the LED (<B>atusb</B> only)
|
|
</UL>
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="atben components">
|
|
|
|
<B>atben</B> only has the transceiver and the balun. The markings on
|
|
both face towards the crystal and the antenna:
|
|
<P>
|
|
<A href="atben-compor.jpg"><IMG src="atben-compor.png"></A>
|
|
<P>
|
|
The corner next to pin 1 of the transceiver is marked with a small dot.
|
|
The picture above also shows the orientation of the text printed on
|
|
the package. The balun is marked with a square between pins 1 and 6.
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="atusb components">
|
|
|
|
In <B>atusb</B>, the marking on the transceiver is on the corner between
|
|
the crystal and the antenna. The marking on the balun faces towards the
|
|
antenna. The microcontroller's "top" side faces towards the USB connector.
|
|
<P>
|
|
<A href="atusb-compor.jpg"><IMG src="atusb-compor.png"></A>
|
|
<P>
|
|
It is difficult to determine the LED's orientation by visual inspection.
|
|
An efficient approach is to touch the LED's terminals with the probes
|
|
of a multimeter set to measure resistance. The small current used for
|
|
the measurement will light the LED.
|
|
|
|
|
|
<!-- ====================================================================== -->
|
|
|
|
|
|
<SECTION ref="voltages" title="Supply voltages">
|
|
|
|
The transceiver has three voltage domains:
|
|
<UL>
|
|
<LI>The supply and I/O voltage, which is nominally 3.3 V in
|
|
<B>atben</B> and <B>atusb</B>,
|
|
<LI>the digital (core) supply, which is nominally 1.8 V, and
|
|
<LI>the analog (RF) supply, which is nominally 1.8 V.
|
|
</UL>
|
|
<BR>
|
|
On <B>atusb</B>, there is also the USB voltage domain at nominally 5.0 V.
|
|
<P>
|
|
Voltages should be tested in the following order: USB, then I/O, then
|
|
digital, and finally analog. The table below gives the permissible
|
|
ranges. Any voltages outside these ranges indicate a problem.
|
|
<P>
|
|
<TABLE frame="border" cellpadding="2">
|
|
<TR><TH>Domain<TH>Nominal<TH>Minimum<TH>Maximum
|
|
<TR><TD>USB<TD>5.0 V<TD>4.5 V<TD>5.25 V
|
|
<TR><TD>I/O<TD>3.3 V<TD>3.0 V<TD>3.6 V
|
|
<TR><TD>Digital<TD>1.8 V<TD>1.7 V<TD>1.9 V
|
|
<TR><TD>Analog<TD>1.8 V<TD>1.7 V<TD>1.9 V
|
|
</TABLE>
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Measurement setup">
|
|
|
|
The measurements should be performed with a digital multimeter.
|
|
The transceiver's analog and digital supplies (1.8 V) are only
|
|
activated when sending or receiving.
|
|
To enable all voltage domains, put the transceiver in receive mode:
|
|
<PRE>
|
|
atrf-txrx
|
|
</PRE>
|
|
or
|
|
<PRE>
|
|
atrf-txrx -d net:ben
|
|
</PRE>
|
|
Exit with Ctrl-C.
|
|
<P>
|
|
To produce periodic transmissions in addition to enabling all voltage
|
|
domains, use
|
|
<PRE>
|
|
atrf-txrx -p 3 -E 0
|
|
</PRE>
|
|
or
|
|
<PRE>
|
|
atrf-txrx -d net:ben -p 3 -E 0
|
|
</PRE>
|
|
Again, exit with Ctrl-C. Note that the transmissions may disturb nearby
|
|
equipment operating in the 2.4 GHz band, such as 802.11 networks. This
|
|
can be prevented by shorting the antenna to ground.
|
|
<P>
|
|
In case the board does not accept commands, only the USB and I/O voltage
|
|
can be checked. If they are correct, proceed with checking the clock.
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Measurement points on atben">
|
|
|
|
The supply voltages on <B>atben</B> can be measured at the terminals of
|
|
components as shown in this table:
|
|
<P>
|
|
<TABLE frame="border" cellpadding="2">
|
|
<TR><TH>Domain<TH>Voltage<TH>Component
|
|
<TR><TD>I/O<TD>3.3 V<TD>C3, C6
|
|
<TR><TD>Digital<TD>1.8 V<TD>C5
|
|
<TR><TD>Analog<TD>1.8 V<TD>C4
|
|
</TABLE>
|
|
<P>
|
|
Ground can be accessed at the cover of the crystal.
|
|
Note that the fiducials, while looking like test points,
|
|
are not connected to anything.
|
|
<P>
|
|
This image shows the location of the measurement points:
|
|
<P>
|
|
<A href="atben-B.png"><IMG src="atben-B-small.png"></A>
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Measurement points on atusb">
|
|
|
|
The supply voltages on <B>atusb</B> can be measured at the terminals of
|
|
components as shown in this table:
|
|
<P>
|
|
<TABLE frame="border" cellpadding="2">
|
|
<TR><TH>Domain<TH>Voltage<TH>Component
|
|
<TR><TD>USB<TD>5.0 V<TD>C1
|
|
<TR><TD>I/O<TD>3.3 V<TD>C2, C10, C13
|
|
<TR><TD>Digital<TD>1.8 V<TD>C12
|
|
<TR><TD>Analog<TD>1.8 V<TD>C11
|
|
</TABLE>
|
|
<P>
|
|
Ground can be accessed at the cover of the crystal, at the shield of the
|
|
USB connector, or at the test point P11.
|
|
Note that the fiducials are not connected to anything.
|
|
<P>
|
|
This image shows the location of the measurement points:
|
|
<P>
|
|
<A href="atusb-B.png"><IMG src="atusb-B-small.png"></A>
|
|
|
|
|
|
<!-- ====================================================================== -->
|
|
|
|
|
|
<SECTION ref="clock" title="Clock frequency">
|
|
|
|
The precision of the crystal oscillator is crucial for
|
|
operation. Anomalies are easy to detect with even a low-cost oscilloscope.
|
|
This can pinpoint specific problems and help to select further analysis steps.
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Oscillator tolerances">
|
|
|
|
The crystal used in <B>atben</B> and <B>atusb</B> has a nominal tolerance
|
|
of +/− 15 ppm at 22-28 C. Low-cost oscilloscopes typically have a timing
|
|
accuracy of
|
|
+/− 100 ppm, which means that only major excursions can be detected by
|
|
measuring the clock output with such an instrument. Full-speed USB only
|
|
requires an accuracy of +/− 2500 ppm.
|
|
We can therefore consider all results within a range of +/− 1000 ppm as
|
|
sufficient for an initial assessment, and perform more precise measurements
|
|
by other means. This
|
|
applies to <B>atben</B> as well as to <B>atusb</B>.
|
|
<P>
|
|
IEEE 802.15.4 requires the transceiver frequency to be accurate
|
|
within +/− 40 ppm.
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Measuring the clock on atben">
|
|
|
|
<B>atben</B> normally does not output a clock signal. A 1 MHz clock
|
|
can be enabled with the following command:
|
|
<PRE>
|
|
atrf-txrx -d net:ben -C 1
|
|
</PRE>
|
|
This configures <B>atben</B> as a promiscuous receiver. The reception
|
|
of any IEEE 802.15.4 frame or pressing Ctrl-C will terminate the command.
|
|
<P>
|
|
The clock signal (CLKM) is available on the test pad shown on the image
|
|
on the left, and it should look roughly as shown in the screen shot on
|
|
the right:
|
|
<P>
|
|
<A href="atben-A.png"><IMG src="atben-A-small.png" align="left"></A>
|
|
|
|
<IMG src="scope-atben-clkm.png">
|
|
<P>
|
|
<TABLE frame="border" cellpadding="2">
|
|
<TR><TH align="left">Clock<TH align="left">Action
|
|
<TR><TD>0 Hz<TD>Check voltages; check that the clock is enabled;
|
|
check for shorts around crystal; check connectivity of crystal
|
|
<TR><TD>0.999-1.001 MHz, ~3.3 Vpp<TD>Perform precision measurement with
|
|
atrf-xtal
|
|
<TR><TD>Other<TD>Check voltages; check for contamination around crystal
|
|
</TABLE>
|
|
<P>
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Measuring the clock on atusb">
|
|
|
|
The transceiver provides the clock for the microcontroller in <B>atusb</B>.
|
|
A clock signal is therefore always available. Immediately after reset,
|
|
the transceiver generates a 1 MHz clock. When the microcontroller comes out
|
|
of reset, it raises the transceiver's clock output to 8 MHz and then
|
|
enables USB.
|
|
<P>
|
|
The clock signal is available at the terminals of several components,
|
|
either as the direct output from the transceiver (CLKM) or after passing
|
|
a low-pass filter (CLK):
|
|
<P>
|
|
<A href="atusb-A.png"><IMG src="atusb-A-small.png"></A>
|
|
|
|
<IMG src="scope-atusb-clkm.png">
|
|
|
|
<IMG src="scope-atusb-clk.png">
|
|
<P>
|
|
The left screen shot shows the clock (CLKM) before the low-pass filter
|
|
while the right screen shows the clock (CLK) after the the low-pass
|
|
filter.
|
|
<P>
|
|
<TABLE frame="border" cellpadding="2">
|
|
<TR><TH align="left">Clock<TH align="left">Action
|
|
<TR><TD>0 Hz<TD>Check voltages; check for shorts around crystal; check
|
|
connectivity of crystal
|
|
<TR><TD>0.999-1.001 MHz, ~3.3 Vpp<TD>Check presence of firmware; check for
|
|
shorts on SPI signals; check connectivity of SPI signals
|
|
<TR><TD>7.992-8.008 MHz, ~3.3 Vpp<TD>Perform precision measurement with
|
|
atrf-xtal (@@@)
|
|
<TR><TD>Other<TD>Check voltages; check for contamination around crystal
|
|
</TABLE>
|
|
<P>
|
|
Note that, if testing a board into which no boot loader has been flashed
|
|
yet, the clock frequency should be 1 MHz. If an unsuccessful attempt has
|
|
been made to flash the boot loader, the frequency may be 1 MHz or 8 MHz,
|
|
depending on how much code was successfully flashed.
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Precision measurements (atben)">
|
|
|
|
The clock frequency of <B>atben</B> can be measured with an accuracy
|
|
of about +/− 100 ppm using the program atrf-xtal. atrf-xtal
|
|
runs directly on the Ben and measures the duration of packet transmissions.
|
|
The transmission time depends on the bit clock which is in turn derived
|
|
from the oscillator.
|
|
<PRE>
|
|
ben# atrf-xtal 100
|
|
</PRE>
|
|
The number reported is the number of poll loops the CPU counted. This
|
|
value should be compared to a reference count obtained with a known to
|
|
be good <B>atben</B> board on the same Ben at a comparable temperature.
|
|
<P>
|
|
<TABLE frame="border" cellpadding="2">
|
|
<TR><TH align="left">Difference<TH align="left">Action
|
|
<TR><TD>< +/− 50 ppm<TD>Correct operation
|
|
<TR><TD>< −80 ppm<TD>Check soldering of capacitors;
|
|
check for contamination around crystal
|
|
<TR><TD>> +120 ppm<TD>idem
|
|
<TR><TD>Other<TD>Deviation can be compensated by adjusting trim value
|
|
</TABLE>
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Precision measurements (atusb)">
|
|
|
|
The clock frequency of <B>atusb</B> can be measured with an accuracy
|
|
of about +/− 1 ppm relative to the PC's NTP-disciplined clock.
|
|
<PRE>
|
|
pc# atrf-xtal 10000
|
|
</PRE>
|
|
This measurement runs for 10−60 seconds, depending on system load.
|
|
Note that, in order to reach such a high precision, it is imperative
|
|
that the PC clock be disciplined by NTP.
|
|
<P>
|
|
<TABLE frame="border" cellpadding="2">
|
|
<TR><TH align="left">Difference<TH align="left">Action
|
|
<TR><TD>< +/− 30 ppm<TD>Correct operation
|
|
<TR><TD>Other<TD>See the <B>atben</B> section above
|
|
</TABLE>
|
|
|
|
|
|
<END author="Werner Almesberger" date="<GEN_DATE>">
|
|
</BODY>
|
|
</HTML>
|