1
0
mirror of git://projects.qi-hardware.com/ben-wpan.git synced 2024-12-29 21:18:38 +02:00
ben-wpan/prod/doc/analysis.hmac

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&deg; or even 90&deg;
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 +/&minus; 15 ppm at 22-28 C. Low-cost oscilloscopes typically have a timing
accuracy of
+/&minus; 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 +/&minus; 2500 ppm.
We can therefore consider all results within a range of +/&minus; 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 +/&minus; 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>
&nbsp;
<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>
&nbsp;
<IMG src="scope-atusb-clkm.png">
&nbsp;
<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 +/&minus; 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>&lt; +/&minus; 50 ppm<TD>Correct operation
<TR><TD>&lt; &minus;80 ppm<TD>Check soldering of capacitors;
check for contamination around crystal
<TR><TD>&gt; +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 +/&minus; 1 ppm relative to the PC's NTP-disciplined clock.
<PRE>
pc# atrf-xtal 10000
</PRE>
This measurement runs for 10&minus;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>&lt; +/&minus; 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>