Cellular Transmitter & Receiver Chip Control Panel



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: