Project Overview
The project
objective was to design an evaluation kit Control Panel for a pair of
cellular telephone chips, one a transmit chip and the other a receive
chip. The transmit chip takes a stream of digital data and converts it
into an RF signal. The receive chip takes an RF signal and converts it
to a digital stream representing the received signal.
The purpose
of the evaluation kit is to allow cellular design engineers to quickly
and easily verify that the chips perform to specifications in their lab,
and to experiment with and learn to understand and use the chips.
The Control
Panel software had multiple design goals. The most basic was to allow
the registers of the two chips to be easily read and written. Another
goal was to automate test sequences that require setting up, operating
and reading data from GPIB (IEEE-488) instrumentation and the digital
Stimulus and Capture boards. A script language was implemented to facilitate
test automation. The script language provides access to all registers,
GPIB instrumentation, Stimulus and Capture boards and the Matlab engine
which is used for calculations.
Hardware Overview
The transmitter
and receiver chips are mounted on an evaluation board which connects
to the PC via a standard serial port. Plugged into the evaluation board
are a Stimulus board which supplies it with a programmable data pattern,
and a Capture board which captures high-speed data from it. The Stimulus
board and the Capture board both communicate with the PC via standard
serial ports. 5 standard lab instruments that supply signals to or monitor
signals on the evaluation board are connected to the PC via an IEEE-488
(GPIB) interface. Between them, the transmitter and receiver chips are
controlled by 121 registers.
The
following diagram shows the relationship between the various boards and
test instruments used by the Control Panel.

Software Overview
The Control
Panel software is responsible for controlling the Evaluation board, the
Stimulus board and the Capture board. The software controls all of the
IEEE-488 instruments attached to the Evaluation board, as well as providing
access to the Matlab math engine. It also provides a simple scripting
language that can be used to automate repetitive or complex tests.
Register
Control
The
Control Panel provides those interested in using the parts with the ability
to easily read and write register values. Registers on these parts vary
in width from 1 bit to 11 bits, and setting some chip control values
requires writing to more than one register. The registers pages on the
Control Panel provide straight-forward access to these registers. The
software does the calculations to convert register values into numbers
more meaningful to designers, and all fields are range checked to make
sure only valid values can be written to the registers.
Here
is the Registers page for the receive chip:

Here
is the Registers page for the transmit chip:

Stimulus
Control
The transmit
chip converts a data stream to RF for transmission. To test the chip
in the lab, a high speed data stream must be provided. The Stimulus board
provides this functionality. The data stream is generated from pattern
data stored on the Stimulus board. Up to 15 different patterns may be
stored on the board. To generate output, one or more patterns are selected
to be transferred to a FIFO, which is then run to generate the data stream.
The lower
half of the screen contains the Pattern Slot Matrix, a matrix of the
patterns in flash on the Stimulus board. The upper half of the screen
provides 3 tabbed pages used to control the Stimulus board. One page
is used to manage a database of patterns, another to load patterns to
the flash on the Stimulus board, and the last to control the patterns
loaded into the FIFO and start and stop the Stimulus board output.
The Pattern
Database page allows new patterns to be added to the database, and existing
patterns to be edited or deleted. Clicking on a pattern name in the scrolling
list of patterns will cause a graphic of that pattern to be displayed.
To select a pattern for loading to the Stimulus board, drag it's name
from the list and drop it on the Pattern Slot Matrix slot to which it
should be loaded. The pattern name and it's graphic will be displayed
in the matrix.
Here
is the Pattern Database page:

The Pattern
Control page is used to load the patterns in the Pattern Slot Matrix
to the Stimulus board. It is also used to compare a pattern on the Stimulus
board with the same pattern in the database to verify correctness.
Here
is the Pattern Control page:

The FIFO
Control page is used to select the pattern(s) loaded into the FIFO to
generate the output data pattern. Depending on the size of the FIFO,
up to 8 patterns may be selected. The FIFO is represented by the FIFO
Slot Matrix, a matrix of the patterns to be loaded into the FIFO. Patterns
may be dragged from the Pattern Slot Matrix to the FIFO Matrix to select
them. When the start button is pressed, the selected patterns are loaded
from flash into the FIFO, and the FIFO starts running.
Here
is the FIFO Control page:

Capture
Control
The receiver
chip converts RF into a data stream. To test the chip in the lab, a high
speed data stream must be captured so it can be analyzed. The Capture
board provides this functionality.
The Control
Panel provides a page to read the captured data and store it in a file
for later analysis. The filename and path is selected from this page.
Here
is the Capture page:

Raw
Register Access
Since
the registers pages may massage the data before it is sent to the chip,
a means to write raw data directly to each register was needed. This
page provides this functionality. The address of the register to read
or write is entered in the upper box. Right-clicking on the box will
display a pop-up menu of the register names. Selecting a name enters
its address in the box. Once the address is entered, press the Read button
to read the register, or enter a new value in the lower box and press
the Write button to write the register.
Here
is the Raw Register page:

PDM
Control
PDM values
are used to compensate for manufacturing variations on a chip-by-chip
basis. This page allows these values to be set manually.
Here
is the PDM page:

Buffer
Control
Several
buffer and utility control settings are controlled by this page. If Auto-Update
is checked commands are sent as changes are made, otherwise the Update
button is used to send the signals to the evaluation board.
Here
is the Buffer page:
