mirror of
git://projects.qi-hardware.com/ben-wpan.git
synced 2024-11-05 18:42:47 +02:00
254 lines
8.4 KiB
Plaintext
254 lines
8.4 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">
|
|
|
|
|
|
<!-- ====================================================================== -->
|
|
|
|
|
|
<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 of 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>
|
|
<P>
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<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 are not connected to ground.
|
|
<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 ground.
|
|
<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
|
|
and pinpoint specific problems and help to select further analysis steps.
|
|
<P>
|
|
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, and perform more precise measurements by other means. This
|
|
applies to <B>atben</B> as well as to <B>atusb</B>.
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<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 here:
|
|
<P>
|
|
<A href="atben-A.png"><IMG src="atben-A-small.png"></A>
|
|
<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
|
|
<B>atrf-xtal</B>
|
|
<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 microcontrolled 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>
|
|
<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
|
|
<B>atrf-xtal</B>
|
|
<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">
|
|
|
|
The clock frequency of <B>atben</B> can be measured with an accuracy
|
|
of about +/− 100 ppm using the program <B>atrf-xtal</B>. <B>atrf-xtal</B>
|
|
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>
|
|
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>Divergence can be compensated by adjusting trim value
|
|
</TABLE>
|
|
|
|
<P>
|
|
<HR>
|
|
Last update: 2011-05-27 <I>Werner Almesberger</I>
|
|
<HR>
|
|
</BODY>
|
|
</HTML>
|