IEEE 802.15.4 subsystem
Sign in or create your account | Project List | Help
IEEE 802.15.4 subsystem Git Source Tree
Root/
Source at commit 86ea428afcef59fd87407fe10ccd84c7294873a5 created 12 years 10 months ago. By Werner Almesberger, prod/doc/analysis.html: emphasize that 1 MHz clock is normal without firmware | |
---|---|
1 | <TITLE>Production and testing: Fault analysis</TITLE> |
2 | <BODY> |
3 | <HTML> |
4 | <H1>Production and testing: Fault analysis</H1> |
5 | |
6 | |
7 | <!-- ====================================================================== --> |
8 | |
9 | |
10 | <H2>Component placement and orientation</H2> |
11 | |
12 | |
13 | <!-- ====================================================================== --> |
14 | |
15 | |
16 | <H2>Supply voltages</H2> |
17 | |
18 | The transceiver has three voltage domains: |
19 | <UL> |
20 | <LI>The supply and I/O voltage, which is nominally 3.3 V in |
21 | <B>atben</B> and <B>atusb</B>, |
22 | <LI>the digital (core) supply, which is nominally 1.8 V, and |
23 | <LI>the analog (RF) supply, which is nominally 1.8 V. |
24 | </UL> |
25 | <BR> |
26 | On <B>atusb</B>, there is also the USB voltage domain at nominally 5.0 V. |
27 | <P> |
28 | Voltages should be tested in the following order: USB, then I/O, then |
29 | digital, and finally analog. The table below gives the permissible |
30 | ranges. Any voltages outside of these ranges indicate a problem. |
31 | <P> |
32 | <TABLE frame="border" cellpadding="2"> |
33 | <TR><TH>Domain<TH>Nominal<TH>Minimum<TH>Maximum |
34 | <TR><TD>USB<TD>5.0 V<TD>4.5 V<TD>5.25 V |
35 | <TR><TD>I/O<TD>3.3 V<TD>3.0 V<TD>3.6 V |
36 | <TR><TD>Digital<TD>1.8 V<TD>1.7 V<TD>1.9 V |
37 | <TR><TD>Analog<TD>1.8 V<TD>1.7 V<TD>1.9 V |
38 | </TABLE> |
39 | <P> |
40 | |
41 | <H3>Measurement setup</H3> |
42 | |
43 | The measurements should be performed either with a digital multimeter. |
44 | To enable all voltage domains, put the transceiver in receive mode: |
45 | <PRE> |
46 | atrf-txrx |
47 | </PRE> |
48 | or |
49 | <PRE> |
50 | atrf-txrx -d net:ben |
51 | </PRE> |
52 | Exit with Ctrl-C. |
53 | <P> |
54 | To produce periodic transmissions in addition to enabling all voltage |
55 | domains, use |
56 | <PRE> |
57 | atrf-txrx -p 3 -E 0 |
58 | </PRE> |
59 | or |
60 | <PRE> |
61 | atrf-txrx -d net:ben -p 3 -E 0 |
62 | </PRE> |
63 | Again, exit with Ctrl-C. Note that the transmissions may disturb nearby |
64 | equipment operating in the 2.4 GHz band, such as 802.11 networks. This |
65 | can be prevented by shorting the antenna to ground. |
66 | <P> |
67 | In case the board does not accept commands, only the USB and I/O voltage |
68 | can be checked. If they are correct, proceed with checking the clock. |
69 | |
70 | |
71 | <!-- ---------------------------------------------------------------------- --> |
72 | |
73 | |
74 | <H3>Measurement points on atben</H3> |
75 | |
76 | |
77 | <!-- ---------------------------------------------------------------------- --> |
78 | |
79 | |
80 | <H3>Measurement points on atusb</H3> |
81 | |
82 | |
83 | <!-- ====================================================================== --> |
84 | |
85 | |
86 | <H2>Clock frequency</H2> |
87 | |
88 | The flawless performance of the crystal oscillator is crucial for |
89 | operation. Anomalies are easy to detect with even a low-cost oscilloscope |
90 | and pinpoint specific problems and help to select further analysis steps. |
91 | <P> |
92 | The crystal used in <B>atben</B> and <B>atusb</B> has a nominal tolerance |
93 | of +/− 15 ppm at 22-28 C. Low-cost oscilloscopes typically have a timing |
94 | accuracy of |
95 | +/− 100 ppm, which means that only major excursions can be detected by |
96 | measuring the clock output with such an instrument. Full-speed USB only |
97 | requires an accuracy of +/− 2500 ppm. |
98 | We can therefore consider all results within a range of +/− 1000 ppm as |
99 | sufficient, and perform more precise measurements by other means. This |
100 | applies to <B>atben</B> as well as to <B>atusb</B>. |
101 | <P> |
102 | |
103 | |
104 | <!-- ---------------------------------------------------------------------- --> |
105 | |
106 | |
107 | <H3>Measuring the clock on atben</H3> |
108 | |
109 | <B>atben</B> normally does not output a clock signal. A 1 MHz clock |
110 | can be enabled with the following command: |
111 | <PRE> |
112 | atrf-txrx -d net:ben -C 1 |
113 | </PRE> |
114 | This configures <B>atben</B> as a promiscuous receiver. The reception |
115 | of any IEEE 802.15.4 frame or pressing Ctrl-C will terminate the command. |
116 | <P> |
117 | <TABLE frame="border" cellpadding="2"> |
118 | <TR><TH align="left">Clock<TH align="left">Action |
119 | <TR><TD>0 Hz<TD>Check voltages; check that the clock is enabled; |
120 | check for shorts around crystal; check connectivity of crystal |
121 | <TR><TD>0.999-1.001 MHz, ~3.3 Vpp<TD>Perform precision measurement with |
122 | <B>atrf-xtal</B> |
123 | <TR><TD>Other<TD>Check voltages; check for contamination around crystal |
124 | </TABLE> |
125 | <P> |
126 | |
127 | |
128 | <!-- ---------------------------------------------------------------------- --> |
129 | |
130 | |
131 | <H3>Measuring the clock on atusb</H3> |
132 | |
133 | The transceiver provides the clock for the microcontroller in <B>atusb</B>. |
134 | A clock signal is therefore always available. Immediately after reset, |
135 | the transceiver generates a 1 MHz clock. When the microcontrolled comes out |
136 | of reset, it raises the transceiver's clock output to 8 MHz and then |
137 | enables USB. |
138 | <P> |
139 | <TABLE frame="border" cellpadding="2"> |
140 | <TR><TH align="left">Clock<TH align="left">Action |
141 | <TR><TD>0 Hz<TD>Check voltages; check for shorts around crystal; check |
142 | connectivity of crystal |
143 | <TR><TD>0.999-1.001 MHz, ~3.3 Vpp<TD>Check presence of firmware; check for |
144 | shorts on SPI signals; check connectivity of SPI signals |
145 | <TR><TD>7.992-8.008 MHz, ~3.3 Vpp<TD>Perform precision measurement with |
146 | <B>atrf-xtal</B> |
147 | <TR><TD>Other<TD>Check voltages; check for contamination around crystal |
148 | </TABLE> |
149 | <P> |
150 | Note that, if testing a board into which no boot loader has been flashed |
151 | yet, the clock frequency should be 1 MHz. If an unsuccessful attempt has |
152 | been made to flash the boot loader, the frequency may be 1 MHz or 8 MHz, |
153 | depending on how much code was successfully flashed. |
154 | |
155 | |
156 | <!-- ---------------------------------------------------------------------- --> |
157 | |
158 | |
159 | <H3>Precision measurements</H3> |
160 | |
161 | The clock frequency of <B>atben</B> can be measured with an accuracy |
162 | of about +/− 100 ppm using the program <B>atrf-xtal</B>. <B>atrf-xtal</B> |
163 | runs directly on the Ben and measures the duration of packet transmissions. |
164 | The transmission time depends on the bit clock which is in turn derived |
165 | from the oscillator. |
166 | <PRE> |
167 | atrf-xtal 100 |
168 | </PRE> |
169 | The number reported is the number of poll loops the CPU counted. This |
170 | value should be compared to a reference count obtained with a known to |
171 | be good <B>atben</B> board and the same Ben at a comparable temperature. |
172 | <P> |
173 | <TABLE frame="border" cellpadding="2"> |
174 | <TR><TH align="left">Difference<TH align="left">Action |
175 | <TR><TD>> +/− 50 ppm<TD>Correct operation |
176 | <TR><TD>< −80 ppm<TD>Check soldering of capacitors; |
177 | check for contamination around crystal |
178 | <TR><TD>> +120 ppm<TD>idem |
179 | <TR><TD>Other<TD>Divergence can be compensated by adjusting trim value |
180 | </TABLE> |
181 | |
182 | <P> |
183 | <HR> |
184 | Up: <A href="index.html">Production and testing</A> |
185 | Prev: <A href="test.html">Functional test</A> |
186 | <HR> |
187 | Last update: 2011-05-18 <I>Werner Almesberger</I> |
188 | <HR> |
189 | </BODY> |
190 | </HTML> |
191 |