Page 2
Page 3
The following describes the design, construction, operation and use of the Multiple Target Developent System (MUTS). The MUTS consists of a Target board (Target) that can connect to a Silicon Laboratories (SL) Debug Adaptor to program the Target board with the SL Integrated Development Environment (IDE). Thus, the Target can be used as the main processor in a project but applications can be developed while the Target is connected to the IDE.
The MUTS Target board supports several Silicon Laboratories microprocessors with 32-pin LQFP phsical packages and compatible pin configurations such as the C8051F361 and C8051F310. The MUTS Target boards are used in several of our projects.
Completed Target boards, populated with a C8051F361 chip, are shown in Photo 1 (above) and in Photo 2. Photo 1 shows revision 3 of the board which, in addition to the connector for the C2 programming adapter, has a second connector for serial connections. Photo 2 shows revision 2 of the board that has only a connector for a C2 programming adapter on one end of the board. Revision 3 of the board is now shipped with all Target board orders.
The primary use of the Target board is to provide a reasonably small board that can be used to mount the processor chip, regulator, crystal, programming connector and a serial port connector. The board also provides access to all I/O ports, 3.3 Volt regulated power and the reset pin. Because of its dual-inline physical format, it can be easily plugged into a breadboard socket or plugged into tenth-inch spaced sockets mounted on a perforated project board. Thus, the Target board provides all of the facilities and connections needed for project development.
Photo 3 shows a 361 Target board plugged into a hand-wired test fixture used for in-house verification of finished Target boards. The test fixture is built with a prototyping board available from Parallax, Inc.® , as noted in the Assembly Guide. These boards, product number 45305, are inexpensive and of high quality. We recommend them for projects that will fit in a 3 by 4 inch format or on a stack of boards of this size.
Page 4
For the following, refer to Schematic 1 titled "C8051F310/361 CPU BOARD" The schematic shows the components, circuitry and pinouts for the module. Also, Schematic 2 shows the wiring of the test fixture shown in Photo 3. This schematic also shows a small LED test board that can be made to test port pins configured as push-pull.
You can download Schematic 1 & 2 as a zip file.
The Parts List provides additional information about the components used to assemble the board.
The module measures approximately 2 1/2 by 1 inches (61 by 25 mm). As shown in the schematic, signal connections are available at two single row pin headers located on the board's long edges. All processor port pins are brought out to the two edge connectors, as are power and reset. A 2X5 header is located at one end of the board for connection to the Silicon Laboratories "Debug Adapter" (the "C2" interface for the programming adaptor). The regulator is located near this adaptor socket. At the opposite end of the board is a PCB footprint for optional crystal oscillator parts.
All processor outputs are available at the two 17-pin edge connectors.
Although the detailed capabilities of the microprocessor are beyond the scope of this documentation, port pins are capable of sinking up to a maximum of 100 milliamperes when configured as push-pull outputs (also reference the Power section).
Page 5
The MUTS board was designed for use with chips manufactured by Silicon Laboratories that use a 32-pin LQFP package and also have compatible pin connections. These chips primarily include the C8051F361 and C8051C310, although there are several other chips that can be used with the board.
The board was designed to provide a complete operable microprocessor system on a module that can be powered up and used without having to wire the basic operational components such as a regulator, crystal oscillator and programming interface connector. The board's DIP format, with two 0.1 inch header rows, is well suited to connections on a solderless breadboard or socketed wiring on a perforated board as shown in Photo 3, a test fixture built on a breadboard with a module plugged into an on-board socket.
In addition to providing a convenient hardware platform, several programming files are furnished on the documentation disk that allow fast checkout of the completed module. These files are Intel hex format files that can be downloaded to the module using its C2 programming header and the Silicon Laboratories Integrated Development Environment (IDE). This provides an easy way to verify the functionality of port pins and commonly-used chip features such as the serial port and the external crystal oscillator.
To set up the completed module for operation, it is necessary only to supply it with power. Once supplied with power in the range of 5.2 to 16 Volts, the module can be programmed with the Silicon Laboratories IDE and used with your application.
The following sections describe power connections, chip programming and software test procedures.
Page 6
For boards that are factory assembled, port outputs are verified on the 310/361-DEV Test Fixture using the 361_100X.hex programming file. This is the software used to verify the 361 chip operating at 100 MHz with a crystal. Thus, users can test the assembled module, as described below.
Users assembling all or part of a MUTS board (e.g., a semi-kit) can download a programming file, such as 361_25I.hex, to their finished module using the Silicon Laboratories IDE and Debug Adaptor. When the program is loaded into the chip, it can be used to verify that the chip is functioning correctly. For example, the 361_25I.hex program verifies the operation of the processor with the internal clock and no PLL clock frequency multipication.
You can download the programming files as a zip file.
To exercise the chip options with a programming file, the serial interface is used to issue commands that exercise selected port outputs. See the Interactive Test section below for details on the use of the serial port to interactively test the 361 chip in various configurations.
For users with a documentation disk (shipped with each order), the documentation and programming files for the various board configurations with the 361 chip are contained on the disk's ./muts/software directory.
For the following, use the Silicon Labs IDE and Debug Adapter to load one of four specified files.
25 MHz with Crystal Clock -- To verify the operation of the chip using an external crystal oscillator, load the 361_25X.hex file into the chip. This checks the Target chip's operation with a 24.576 MHz external crystal oscillator and a serial port operating at 9600 baud (8 bits, no parity, one stop bit -- 8,N,1). Once loaded, the operation and checkout of the chip is as described in the Interactive Test section.
25 MHz with Internal Clock -- To verify the chip using the internal oscillator, load the 361-25I.hex. This allows you to verify the operation of the Target that uses a 24.5 MHz internal oscillator and its serial port operating at a 9600 baud.
100 MHz with Crystal Clock -- Load the 361_100X.hex file to verify the Target chip's operation using a 24.5 MHz external crystal oscillator, and a PLL-multiplied clock frequency of 100 MHz. With these settings, the serial port operates at a 38400 baud.
100 MHz with Internal Clock -- To check the Target chip's operation using the internal oscillator but with the system clock multiplied to 100 MHz, load the file 361_100I.hex.
Page 7
To use the interactive program options given above, an RS-232 level converter must be attached to port pins P0.4 (transmit output from the chip) and P0.5 (receive input from the PC). A number of inexpensive adaptors that perform this function are available on EBay, as shown in Photo 4.
Connection of the adaptor to the board varies and is beyond the scope of this document. However, the Target is designed to directly connect to the most commonly available serial adapters using a straight-through ribbon connector. Note that the Target supplies voltage to the RS-232 pin connections to run the RS-232 adaptor.
Serial Output -- The operation of the serial output of the chip can be verified without an adaptor by connecting an oscilloscope to port pin P0.4 and cycling power to the module. At startup, the module outputs a string of characters giving the version and configuration -- serial activity on this port pin should provide a basic indication that the chip has an operable serial port.
The internal oscillator for both the 310 and 361 chips is specified to be within 2% of 24.5 MHz. Thus, the serial port should work with the internal oscillator in the "25I" configuration. Operation at the PLL-multiplied internal clock frequency is less certain, but there have been no 38.4K baud serial failures with in-house tests on a limited number of chips.
SYSCLK -- For all of the programming options, the chip's SYSCLK output is routed to port pin P0.0. Observing this pin with an oscilloscope (or measuring it with a frequency counter) verifies that the chip is operating with the correct clock frequency.
For the 25 MHz crystal option, the SYSCLK output at pin P0.0 should be at the crystal frequency, as shown by Photo 5 for a 24.576 MHz crystal frequency.
If the SYSCLK does not appear at P0.0, ensure that the output is present without the crystal oscillator circuitry. This can be done by loading the 361_25I.hex programming file. This program option should work even if the crystal oscillator circuitry is inoperable (e.g., a bad crystal or incorrect capacitor values at C1 and C2). Photo 6 shows a typical SYSCLK output at P0.0 when the chip is operating with an internal clock.
Serial Connection -- If the SYSCLK output is correct and the serial port appears to be operable, the chip can be verified interactively by connecting it through an RS-232 adaptor to a serial terminal program such as PuTTY. For both of the "25 MHz" options, the connection rate is 9600 baud (8,N,1). For the "100 MHz" options, the data rate is four times higher: 38,400 baud (8,N,1).
Error Indication -- When testing interactively, you may want to connect an LED (through a limiting resistor) to port P1.1 . This port pin acts as an error indicator. The series combination of the LED and the resistor can be connected to ground to use the port pin in the "current sourcing" mode; connect the series circuit to the module's "VDD" pin to use the output in the "current sinking" mode. A red LED and a series limiting resistor of 150 Ohms work well for this connection. When an LED is connected to the P1.1, the LED will rapidly flash when a non-fatal command error is encountered.
Page 8
Note that, in the following, commands will execute when the space bar is pressed or when the "Enter" key is pressed; pressing other keys will most likely produce an error and result in a program reset. Also note that successful commands are followed by an "ok" response. Errors will either flash the error LED or reset the processor, depending on the type of the error and its severity.
Design -- Before plunging into a description of the interactive commands, it may be useful to understand the design objectives for the test program. The program is built around a command interpreter that is used for a number of our projects. The interpreter itself is rather simple, compiling to less than 600 bytes. But, this interpreter, along with a stack for temporary number storage, is sufficient to build an interactive command facility that can exercise chip ports and the serial port.
Commands -- The number of commands is deliberately limited so that the program could function as a useful tool, not another command language to learn. In the interest of simplicity, commands are defined single-characters (although multi-character equivalents can be entered).
Once you learn how to put a hexadecimal number on the stack with the "$" command, you can exercise port I/O with the "t" command and serial I/O with the "e" command. Several other commands are included as a convenience but are not strictly necessary (e.g., the "d", "f" and "r" commands). It may take a minute or so to get used to executing commands with the space bar instead of the Enter key, but we think you will find it a very convenient entry method for single character commands. Commands can also be issued in the "normal" fashion by using the Enter key.
Once connected to a terminal at the correct baud rate, the basic operation of the chip can be verified by observing the display of the version, configuration and help strings when power is applied to the Target. If this "splash" screen is observed at startup, it is likely that the chip is operating properly.
The serial port input and output can be verified by entering a "h" at the keyboard (e.g., type an "h" and press the space bar). The "h" (help) option displays the same information that is displayed when power is applied. To force a reset without cycling power, use the "r" command. Use the "f" command to flash the LED connected to P1.1 -- this flash is also used to indicate minor command errors. Note that P1.1 can also be toggled using the "t" command, as described below.
If you forget the commands, you can display all command options by entering the "help" or "h" commands. The Interactive Commands table provides a summary of other commands that can be entered interactively.
You can put a byte on the command interpreter's stack. The stack is a "first in first out" local storage area that can be used to temporarily store data to be used with commands that require a parameter (e.g., the "e" and "t" commands).
Parameter and data bytes destined for the stack are entered with the "$" command as hexadecimal digits. When the "$" command executes (i.e., when the space key is pressed) you can immediately enter two hexadecimal digits. The digits are echoed as they are entered. You can backspace during entry, but any entry error will result in a reset: when the interpreter resets, the stack is cleared and the help screen is displayed.
Thus, to enter a byte to be put on the stack, enter "$", followed by a space and two hexadecimal digits (the digit range is 1-9 and a-f). After a value is put on the stack, its correct entry is confirmed with an "ok" response from the interpreter. You can use the "s" command to display the contents of the stack -- the number of items should increase by one as each byte is entered; the last byte entered will be the one shown nearest the ">" indicator.
Page 9
Toggling Port Pins -- Once a hexadecimal number is on the stack, it can be used to toggle individual port pins with the "t" (toggle) command. To enter the port pin to be toggled, the number of the port is put on the stack, encoded as two hexadecimal digits. The first digit is the port number, the second digit is the pin number. Thus, putting the hexadecimal value of "21" on the stack, followed by the execution of the "t" command, will toggle port 2, pin 1.
An easy way to verify the toggling command is to enter a hexadecimal value of 11 to specify P1.1, the port pin attached to the error LED. Repeated entry of the "t" command will toggle the error LED. Note that port pins assigned to other functions, such as SYSCLK (P0.0), the crystal oscillator (P0.2 and P0.3) or the serial port (P0.4 and P0.5) cannot be toggled with the "t" command.
Serial Port Testing -- The "e" (emit) command exercises the serial port using data bytes on the stack. For example, entering "$" followed by "52" will put the hexadecimal value for the ASCII character "R" on the stack. Executing either the "e" or "emit" commands displays an "R" on the terminal's screen.
Stack Display -- If you have forgotton what values you have put on the stack, you can display the stack contents with the "s" command. This command displays the number of items on the stack (in hexadecimal), followed by a ">" character, followed by the values on the stack (in hexadecimal). For example, entering "$ 52 $ 77 $ 66 s" will result in a display that looks like this: 03> 66 77 52 . Note that the last item entered, the top of stack, is closest to the ">" indicator.
Duplicating Stack Items -- If you want to put several duplicate items on the stack, use the "d" or "dup" (duplicate) commands. Thus, entering "$ 52" followed by a "dup" command puts two "R" characters on the stack. This can be seen by entering the "s" command after duplicating to get a stack display of: 02> 52 52 .
Reset -- To clear items from the stack, use the "r" command to reset the processor.
Page 10
Duplicate the number on the top of the stack | |
Send (emit) the top of stack character to the serial port | |
Force an error condition (e.g., flash error LED on P1.1) | |
Display version, configuration & commands | |
Force a reset of the command interpreter | |
Display number of stack items and their values in hexadecimal | |
Toggle the port pin specified by the hex number on the top of the stack | |
Example: with $11 on the stack, each time t is entered P1.1 will toggle | |
Enter a hexadecimal number and put it on the top of the stack | |
Notes: | |
1. Commands execute when the space bar or the "Enter" key are pressed | |
2. There are hidden commands (most of these execute without error) | |
3. Unsolicited version/configuration display indicates a reset | |
4. Port pins used for SYSCLK, crystal and serial port will not toggle | |
5. An LED wired to P1.1 acts as a visual error indicator |
Page 11
An on-board 3.3 Volt regulator provides stable regulated power to the module.
Once input voltage is applied between V+ and GD, the operation of the regulator can be verified by measuring the voltage between the GD (or GND) and the VDD pin. The regulator output voltage should be close to 3.3 Volts.
Note that the module typically operates with an input voltage of 5 Volts, but the worst-case dropout specification for the regulator can be as high as 5.5 Volts. Because assembled modules are tested with a supply of 5 Volts, operation at this voltage is assured. Operation at voltages lower than this test voltage may be possible, but not guaranteed.
The maximum input voltage to the 78L33 is specified as 16 Volts. This specification varies between manufacturers, with some specifying the maximum input voltage as high as 30 Volts (e.g., STmicroelectronics). If your application requires the replacement of the regulator, correct operation of the module should be verified with one of the test programs after checking the regulator output voltage.
Maximum output current for the chip outputs is 500 milliamperes with all outputs heavily loaded, but this is not possible with the given regulator. If the application requires currents higher than the 100 mA maximum of the regulator, an external regulator should be used. To use an external regulator, solder a wire across the regulator input and output pins and apply the externally-regulated power to the "V+" pin.
The chip digital outputs, when configured for push-pull operation, are rated for a maximum current of 100 milliamperes with a maximum total chip current (including quiescent current draw) of 500 milliamperes. Chip outputs are 5 Volt tolerant.
Module quiescent current draw will vary and is approximately 10 milliamperes at 24.5 MHz and 40 milliamperes at 100 MHz. Thus, operating at 100 MHz, the quiescent power of the module is approximately 70 milliwatts with a 5 Volt input. The maximum regulator dissipation is 250 milliwatts and the maximum regulator output is 100 milliamperes. The regulator is both current and temperature limited in the event of output overload.
Page 12
For board assembly procedures and hints, refer to the Assembly Guide.
If the chip does not operate in the crystal mode, verify the crystal's specification for maximum shunt capacitance. The schematic shows two 18 pF capacitors across the crystal but this applies only to the crystals we use for assembled units or furnish for semi-kits. We have found that crystals may not oscillate if this capacitance is significantly more or less than the shunt capacitance specified by the manufacturer.
For modules assembled from a kit, we recommend testing a newly-finished board with the 361_25I.hex program before verifying the chip with a crystal oscillator program (e.g., 361_25X.hex). If the chip appears to operate correctly with an internal oscillator, the 361_25X.hex program can then be loaded to test the crystal oscillator.
Probing pins P0[2,3] with an oscilloscope will normally show whether or not the crystal is operating but oscilloscope probe capacitance may interfere with oscillation for some crystal/capacitor combinations. A better way to verify oscillator functioning is to probe P0.0, which echos the system clock -- a 24.576 MHz square wave should appear at this pin if the 24.576 MHz crystal is oscillating properly.
There is a jumper position labeled "J1" near the programming interface connector. This is connected to pin 10 of the connector and, when connected, furnishes 3.3 Volt power from the Debug adapter. This jumper is not normally installed.
Page 13
Part | |||||
R1 | RES, 10M, 1/8W, 1%, 0805 | Mouser | 140-CC501N180J-RC |
||
R2, R3, R4 | RES, 1K, 1/8W, 1%, 0805 | Digikey | 541-1.00KCCT-ND |
||
C1, C2 | CAP, 18 pF, 50 Volts, 5%, COG/NPO, 0805 | Mouser | 140-CC501N180J-RC |
||
C3 | CAP, 0.1 uF, 25 Volts, 10%, 1206 | Stock | N/A |
||
C4 | CAP, ceramic, 1 uF, 25 Volts, 20%, Y5V, 0805 | Digikey | C2012Y5V1E105Z/0.85 |
||
C5 | CAP, ceramic, 1 uF, 16 Volts, 1206 | Stock | N/A |
||
C6 | CAP, 10 uF, 10 Volts, X5R, 0805 | Digikey | 490-1709-1-ND |
||
C7 | CAP, trimmer, 4-20 pF, 100 Volts, N450, 0805 | Mouser | 81-TZ03T200E:.69B00 |
||
U1 | REG, 3.3 Volt regulator, TO-92, 100 mA, 250 mW | Digikey | 497-7288-ND |
||
U2 | IC, C8051F361 microprocessor, pre-programmed | Digikey | 336-1408-ND |
||
PCB | PCB, MUTS | ||||
PHD1,2 | HDR, 17-pin header, SIL, breakaway | FRYS | PLS-40S-P5 |
||
P3 | HDR, 10-pin (2X5) shrouded header | stock | N/A |
||
XTAL | XTAL, crystal, 24.579 MHz, HC49/US | stock | N/A |
Page 14
updated docs and software for 100 MHz options. |
||
original circuit, revision E of the schematic |