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 5c5a93686b7e8985872ed451f53933f5303eba1c created 7 years 1 month ago. By Stefan Schmidt, atusb/fw: update changelog for 0.3 firmware release | |
|---|---|
| 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 | |
