Production and testing: Fault analysis

Component placement and orientation

Supply voltages

The transceiver has three voltage domains:
On atusb, there is also the USB voltage domain at nominally 5.0 V.

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.

DomainNominalMinimumMaximum
USB5.0 V4.5 V5.25 V
I/O3.3 V3.0 V3.6 V
Digital1.8 V1.7 V1.9 V
Analog1.8 V1.7 V1.9 V

Measurement setup

The measurements should be performed either with a digital multimeter. To enable all voltage domains, put the transceiver in receive mode:
atrf-txrx
or
atrf-txrx -d net:ben
Exit with Ctrl-C.

To produce periodic transmissions in addition to enabling all voltage domains, use

atrf-txrx -p 3 -E 0
or
atrf-txrx -d net:ben -p 3 -E 0
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.

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.

Measurement points on atben

Measurement points on atusb

Clock frequency

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.

The crystal used in atben and atusb 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 atben as well as to atusb.

Measuring the clock on atben

atben normally does not output a clock signal. A 1 MHz clock can be enabled with the following command:
atrf-txrx -d net:ben -C 1
This configures atben as a promiscuous receiver. The reception of any IEEE 802.15.4 frame or pressing Ctrl-C will terminate the command.

ClockAction
0 HzCheck voltages; check that the clock is enabled; check for shorts around crystal; check connectivity of crystal
0.999-1.001 MHz, ~3.3 VppPerform precision measurement with atrf-xtal
OtherCheck voltages; check for contamination around crystal

Measuring the clock on atusb

The transceiver provides the clock for the microcontroller in atusb. 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.

ClockAction
0 HzCheck voltages; check for shorts around crystal; check connectivity of crystal
0.999-1.001 MHz, ~3.3 VppCheck presence of firmware; check for shorts on SPI signals; check connectivity of SPI signals
7.992-8.008 MHz, ~3.3 VppPerform precision measurement with atrf-xtal
OtherCheck voltages; check for contamination around crystal

Precision measurements

The clock frequency of atben can be measured with an accuracy of about +/- 100 ppm using the program atrf-xtal. atrf-xtal 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.

atrf-xtal requires exclusive access to the atben. If a proxy is running, it has to be removed first.

killall atrf-proxy
atrf-xtal 100
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 atben board and the same Ben at a comparable temperature.

DifferenceAction
> +/- 50 ppmCorrect operation
< -80 ppmCheck soldering of capacitors; check for contamination around crystal
> +120 ppmidem
OtherDivergence can be compensated by adjusting trim value


Up: Production and testing  Prev: Functional test 
Last update: 2011-05-18  Werner Almesberger