1
0
mirror of git://projects.qi-hardware.com/ben-wpan.git synced 2024-11-17 23:40:38 +02:00
ben-wpan/prod/doc/analysis.html

126 lines
4.1 KiB
HTML

<TITLE>Production and testing: Fault analysis</TITLE>
<BODY>
<HTML>
<H1>Production and testing: Fault analysis</H1>
<!-- ====================================================================== -->
<H2>Component placement and orientation</H2>
<!-- ====================================================================== -->
<H2>Supply voltages</H2>
<!-- ====================================================================== -->
<H2>Clock frequency</H2>
The flawless performance 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>.
<P>
<!-- ---------------------------------------------------------------------- -->
<H3>Measuring the clock on atben</H3>
<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>
<TABLE>
<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>
<!-- ---------------------------------------------------------------------- -->
<H3>Measuring the clock on atusb</H3>
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>
<TABLE>
<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>
<!-- ---------------------------------------------------------------------- -->
<H3>Precision measurements</H3>
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.
<P>
<B>atrf-xtal</B> requires exclusive access to the <B>atben</B>. If a
proxy is running, it has to be removed first.
<PRE>
killall atrf-proxy
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 and the same Ben at a comparable temperature.
<P>
<TABLE>
<TR><TH align="left">Difference<TH align="left">Action
<TR><TD>&gt; +/- 50 ppm<TD>Correct operation
<TR><TD>&lt; -80 ppm<TD>Check soldering of capacitors;
check for contamination around crystal
<TR><TD>&gt; +120 ppm<TD>idem
<TR><TD>Other<TD>Divergence can be compensated by adjusting trim value
</TABLE>
<P>
<HR>
Up: <A href="index.html">Production and testing</A>&nbsp;
Prev: <A href="test.html">Functional test</A>&nbsp;
<HR>
Last update: 2011-05-18&nbsp;&nbsp;<I>Werner Almesberger</I>
<HR>
</BODY>
</HTML>