IEEE 802.15.4 subsystem
Sign in or create your account | Project List | Help
IEEE 802.15.4 subsystem Git Source Tree
Root/
1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
2 | <HTML> |
3 | <TITLE>Production and testing: Fault analysis</TITLE> |
4 | <BODY bgcolor="#ffffff" link="#000000" vlink="#404040"> |
5 | |
6 | <INCLUDE file="style.inc"> |
7 | |
8 | <PAGE_BAR title="Production and testing"> |
9 | <PAGE_ITEM href="setup.html">Software setup</PAGE_ITEM> |
10 | <PAGE_ITEM href="flash.html">Flashing</PAGE_ITEM> |
11 | <PAGE_ITEM href="test.html">Functional test</PAGE_ITEM> |
12 | <PAGE_CURR href="analysis.html">Fault analysis</PAGE_CURR> |
13 | </PAGE_BAR> |
14 | |
15 | <SECTION_BAR> |
16 | <SECTION_ITEM href="#orientation">Component orientation</SECTION_ITEM> |
17 | <SECTION_ITEM href="#voltages">Voltages</SECTION_ITEM> |
18 | <SECTION_ITEM href="#clock">Clock frequency</SECTION_ITEM> |
19 | </SECTION_BAR> |
20 | |
21 | |
22 | <!-- ====================================================================== --> |
23 | |
24 | |
25 | <SECTION ref="orientation" title="Component orientation"> |
26 | |
27 | There are several components whose footprint has a 180° or even 90° |
28 | rotational symmetry, but the component's electrical function is not symmetric. |
29 | Therefore, if such a component is incorrectly rotated, it will appear to the |
30 | casual observer to be properly placed, but it will not work. |
31 | <P> |
32 | These components are: |
33 | <UL> |
34 | <LI>the transceiver chip, |
35 | <LI>the microcontroller (<B>atusb</B> only), |
36 | <LI>the balun, and |
37 | <LI>the LED (<B>atusb</B> only) |
38 | </UL> |
39 | |
40 | |
41 | <!-- ---------------------------------------------------------------------- --> |
42 | |
43 | |
44 | <SUBSECTION title="atben components"> |
45 | |
46 | <B>atben</B> only has the transceiver and the balun. The markings on |
47 | both face towards the crystal and the antenna: |
48 | <P> |
49 | <A href="atben-compor.jpg"><IMG src="atben-compor.png"></A> |
50 | <P> |
51 | The corner next to pin 1 of the transceiver is marked with a small dot. |
52 | The picture above also shows the orientation of the text printed on |
53 | the package. The balun is marked with a square between pins 1 and 6. |
54 | |
55 | |
56 | <!-- ---------------------------------------------------------------------- --> |
57 | |
58 | |
59 | <SUBSECTION title="atusb components"> |
60 | |
61 | In <B>atusb</B>, the marking on the transceiver is on the corner between |
62 | the crystal and the antenna. The marking on the balun faces towards the |
63 | antenna. The microcontroller's "top" side faces towards the USB connector. |
64 | <P> |
65 | <A href="atusb-compor.jpg"><IMG src="atusb-compor.png"></A> |
66 | <P> |
67 | It is difficult to determine the LED's orientation by visual inspection. |
68 | An efficient approach is to touch the LED's terminals with the probes |
69 | of a multimeter set to measure resistance. The small current used for |
70 | the measurement will light the LED. |
71 | |
72 | |
73 | <!-- ====================================================================== --> |
74 | |
75 | |
76 | <SECTION ref="voltages" title="Supply voltages"> |
77 | |
78 | The transceiver has three voltage domains: |
79 | <UL> |
80 | <LI>The supply and I/O voltage, which is nominally 3.3 V in |
81 | <B>atben</B> and <B>atusb</B>, |
82 | <LI>the digital (core) supply, which is nominally 1.8 V, and |
83 | <LI>the analog (RF) supply, which is nominally 1.8 V. |
84 | </UL> |
85 | <BR> |
86 | On <B>atusb</B>, there is also the USB voltage domain at nominally 5.0 V. |
87 | <P> |
88 | Voltages should be tested in the following order: USB, then I/O, then |
89 | digital, and finally analog. The table below gives the permissible |
90 | ranges. Any voltages outside these ranges indicate a problem. |
91 | <P> |
92 | <TABLE frame="border" cellpadding="2"> |
93 | <TR><TH>Domain<TH>Nominal<TH>Minimum<TH>Maximum |
94 | <TR><TD>USB<TD>5.0 V<TD>4.5 V<TD>5.25 V |
95 | <TR><TD>I/O<TD>3.3 V<TD>3.0 V<TD>3.6 V |
96 | <TR><TD>Digital<TD>1.8 V<TD>1.7 V<TD>1.9 V |
97 | <TR><TD>Analog<TD>1.8 V<TD>1.7 V<TD>1.9 V |
98 | </TABLE> |
99 | |
100 | |
101 | <!-- ---------------------------------------------------------------------- --> |
102 | |
103 | |
104 | <SUBSECTION title="Measurement setup"> |
105 | |
106 | The measurements should be performed with a digital multimeter. |
107 | The transceiver's analog and digital supplies (1.8 V) are only |
108 | activated when sending or receiving. |
109 | To enable all voltage domains, put the transceiver in receive mode: |
110 | <PRE> |
111 | atrf-txrx |
112 | </PRE> |
113 | or |
114 | <PRE> |
115 | atrf-txrx -d net:ben |
116 | </PRE> |
117 | Exit with Ctrl-C. |
118 | <P> |
119 | To produce periodic transmissions in addition to enabling all voltage |
120 | domains, use |
121 | <PRE> |
122 | atrf-txrx -p 3 -E 0 |
123 | </PRE> |
124 | or |
125 | <PRE> |
126 | atrf-txrx -d net:ben -p 3 -E 0 |
127 | </PRE> |
128 | Again, exit with Ctrl-C. Note that the transmissions may disturb nearby |
129 | equipment operating in the 2.4 GHz band, such as 802.11 networks. This |
130 | can be prevented by shorting the antenna to ground. |
131 | <P> |
132 | In case the board does not accept commands, only the USB and I/O voltage |
133 | can be checked. If they are correct, proceed with checking the clock. |
134 | |
135 | |
136 | <!-- ---------------------------------------------------------------------- --> |
137 | |
138 | |
139 | <SUBSECTION title="Measurement points on atben"> |
140 | |
141 | The supply voltages on <B>atben</B> can be measured at the terminals of |
142 | components as shown in this table: |
143 | <P> |
144 | <TABLE frame="border" cellpadding="2"> |
145 | <TR><TH>Domain<TH>Voltage<TH>Component |
146 | <TR><TD>I/O<TD>3.3 V<TD>C3, C6 |
147 | <TR><TD>Digital<TD>1.8 V<TD>C5 |
148 | <TR><TD>Analog<TD>1.8 V<TD>C4 |
149 | </TABLE> |
150 | <P> |
151 | Ground can be accessed at the cover of the crystal. |
152 | Note that the fiducials, while looking like test points, |
153 | are not connected to anything. |
154 | <P> |
155 | This image shows the location of the measurement points: |
156 | <P> |
157 | <A href="atben-B.png"><IMG src="atben-B-small.png"></A> |
158 | |
159 | |
160 | <!-- ---------------------------------------------------------------------- --> |
161 | |
162 | |
163 | <SUBSECTION title="Measurement points on atusb"> |
164 | |
165 | The supply voltages on <B>atusb</B> can be measured at the terminals of |
166 | components as shown in this table: |
167 | <P> |
168 | <TABLE frame="border" cellpadding="2"> |
169 | <TR><TH>Domain<TH>Voltage<TH>Component |
170 | <TR><TD>USB<TD>5.0 V<TD>C1 |
171 | <TR><TD>I/O<TD>3.3 V<TD>C2, C10, C13 |
172 | <TR><TD>Digital<TD>1.8 V<TD>C12 |
173 | <TR><TD>Analog<TD>1.8 V<TD>C11 |
174 | </TABLE> |
175 | <P> |
176 | Ground can be accessed at the cover of the crystal, at the shield of the |
177 | USB connector, or at the test point P11. |
178 | Note that the fiducials are not connected to anything. |
179 | <P> |
180 | This image shows the location of the measurement points: |
181 | <P> |
182 | <A href="atusb-B.png"><IMG src="atusb-B-small.png"></A> |
183 | |
184 | |
185 | <!-- ====================================================================== --> |
186 | |
187 | |
188 | <SECTION ref="clock" title="Clock frequency"> |
189 | |
190 | The precision of the crystal oscillator is crucial for |
191 | operation. Anomalies are easy to detect with even a low-cost oscilloscope. |
192 | This can pinpoint specific problems and help to select further analysis steps. |
193 | |
194 | |
195 | <!-- ---------------------------------------------------------------------- --> |
196 | |
197 | |
198 | <SUBSECTION title="Oscillator tolerances"> |
199 | |
200 | The crystal used in <B>atben</B> and <B>atusb</B> has a nominal tolerance |
201 | of +/− 15 ppm at 22-28 C. Low-cost oscilloscopes typically have a timing |
202 | accuracy of |
203 | +/− 100 ppm, which means that only major excursions can be detected by |
204 | measuring the clock output with such an instrument. Full-speed USB only |
205 | requires an accuracy of +/− 2500 ppm. |
206 | We can therefore consider all results within a range of +/− 1000 ppm as |
207 | sufficient for an initial assessment, and perform more precise measurements |
208 | by other means. This |
209 | applies to <B>atben</B> as well as to <B>atusb</B>. |
210 | <P> |
211 | IEEE 802.15.4 requires the transceiver frequency to be accurate |
212 | within +/− 40 ppm. |
213 | |
214 | |
215 | <!-- ---------------------------------------------------------------------- --> |
216 | |
217 | |
218 | <SUBSECTION title="Measuring the clock on atben"> |
219 | |
220 | <B>atben</B> normally does not output a clock signal. A 1 MHz clock |
221 | can be enabled with the following command: |
222 | <PRE> |
223 | atrf-txrx -d net:ben -C 1 |
224 | </PRE> |
225 | This configures <B>atben</B> as a promiscuous receiver. The reception |
226 | of any IEEE 802.15.4 frame or pressing Ctrl-C will terminate the command. |
227 | <P> |
228 | The clock signal (CLKM) is available on the test pad shown on the image |
229 | on the left, and it should look roughly as shown in the screen shot on |
230 | the right: |
231 | <P> |
232 | <A href="atben-A.png"><IMG src="atben-A-small.png" align="left"></A> |
233 | |
234 | <IMG src="scope-atben-clkm.png"> |
235 | <P> |
236 | <TABLE frame="border" cellpadding="2"> |
237 | <TR><TH align="left">Clock<TH align="left">Action |
238 | <TR><TD>0 Hz<TD>Check voltages; check that the clock is enabled; |
239 | check for shorts around crystal; check connectivity of crystal |
240 | <TR><TD>0.999-1.001 MHz, ~3.3 Vpp<TD>Perform precision measurement with |
241 | atrf-xtal |
242 | <TR><TD>Other<TD>Check voltages; check for contamination around crystal |
243 | </TABLE> |
244 | <P> |
245 | |
246 | |
247 | <!-- ---------------------------------------------------------------------- --> |
248 | |
249 | |
250 | <SUBSECTION title="Measuring the clock on atusb"> |
251 | |
252 | The transceiver provides the clock for the microcontroller in <B>atusb</B>. |
253 | A clock signal is therefore always available. Immediately after reset, |
254 | the transceiver generates a 1 MHz clock. When the microcontroller comes out |
255 | of reset, it raises the transceiver's clock output to 8 MHz and then |
256 | enables USB. |
257 | <P> |
258 | The clock signal is available at the terminals of several components, |
259 | either as the direct output from the transceiver (CLKM) or after passing |
260 | a low-pass filter (CLK): |
261 | <P> |
262 | <A href="atusb-A.png"><IMG src="atusb-A-small.png"></A> |
263 | |
264 | <IMG src="scope-atusb-clkm.png"> |
265 | |
266 | <IMG src="scope-atusb-clk.png"> |
267 | <P> |
268 | The left screen shot shows the clock (CLKM) before the low-pass filter |
269 | while the right screen shows the clock (CLK) after the the low-pass |
270 | filter. |
271 | <P> |
272 | <TABLE frame="border" cellpadding="2"> |
273 | <TR><TH align="left">Clock<TH align="left">Action |
274 | <TR><TD>0 Hz<TD>Check voltages; check for shorts around crystal; check |
275 | connectivity of crystal |
276 | <TR><TD>0.999-1.001 MHz, ~3.3 Vpp<TD>Check presence of firmware; check for |
277 | shorts on SPI signals; check connectivity of SPI signals |
278 | <TR><TD>7.992-8.008 MHz, ~3.3 Vpp<TD>Perform precision measurement with |
279 | atrf-xtal (@@@) |
280 | <TR><TD>Other<TD>Check voltages; check for contamination around crystal |
281 | </TABLE> |
282 | <P> |
283 | Note that, if testing a board into which no boot loader has been flashed |
284 | yet, the clock frequency should be 1 MHz. If an unsuccessful attempt has |
285 | been made to flash the boot loader, the frequency may be 1 MHz or 8 MHz, |
286 | depending on how much code was successfully flashed. |
287 | |
288 | |
289 | <!-- ---------------------------------------------------------------------- --> |
290 | |
291 | |
292 | <SUBSECTION title="Precision measurements (atben)"> |
293 | |
294 | The clock frequency of <B>atben</B> can be measured with an accuracy |
295 | of about +/− 100 ppm using the program atrf-xtal. atrf-xtal |
296 | runs directly on the Ben and measures the duration of packet transmissions. |
297 | The transmission time depends on the bit clock which is in turn derived |
298 | from the oscillator. |
299 | <PRE> |
300 | ben# atrf-xtal 100 |
301 | </PRE> |
302 | The number reported is the number of poll loops the CPU counted. This |
303 | value should be compared to a reference count obtained with a known to |
304 | be good <B>atben</B> board on the same Ben at a comparable temperature. |
305 | <P> |
306 | <TABLE frame="border" cellpadding="2"> |
307 | <TR><TH align="left">Difference<TH align="left">Action |
308 | <TR><TD>< +/− 50 ppm<TD>Correct operation |
309 | <TR><TD>< −80 ppm<TD>Check soldering of capacitors; |
310 | check for contamination around crystal |
311 | <TR><TD>> +120 ppm<TD>idem |
312 | <TR><TD>Other<TD>Deviation can be compensated by adjusting trim value |
313 | </TABLE> |
314 | |
315 | |
316 | <!-- ---------------------------------------------------------------------- --> |
317 | |
318 | |
319 | <SUBSECTION title="Precision measurements (atusb)"> |
320 | |
321 | The clock frequency of <B>atusb</B> can be measured with an accuracy |
322 | of about +/− 1 ppm relative to the PC's NTP-disciplined clock. |
323 | <PRE> |
324 | pc# atrf-xtal 10000 |
325 | </PRE> |
326 | This measurement runs for 10−60 seconds, depending on system load. |
327 | Note that, in order to reach such a high precision, it is imperative |
328 | that the PC clock be disciplined by NTP. |
329 | <P> |
330 | <TABLE frame="border" cellpadding="2"> |
331 | <TR><TH align="left">Difference<TH align="left">Action |
332 | <TR><TD>< +/− 30 ppm<TD>Correct operation |
333 | <TR><TD>Other<TD>See the <B>atben</B> section above |
334 | </TABLE> |
335 | |
336 | |
337 | <END author="Werner Almesberger" date="<GEN_DATE>"> |
338 | </BODY> |
339 | </HTML> |
340 |