General Purpose Microcontroller Circuit
General Purpose Microcontroller Circuit
By Tony Costantino
Abstract: The goal of this project is create a general-purpose microcontroller board with multiple I/O and
the ability to upload code and transmit/receive data via a USB link. The board should of course be small
so that it can be place in a chassis with other circuit boards and take up as little space as possible. The
board should also be highly reconfigurable, not only for the microcontroller but for the USB interface as
well. This is where my design will differ from most of the commercially available microcontroller boards.
Design Process: For the microcontroller we choose the Propeller P8X32A by Parallax with 8 independent
cores controlled by a central hub. This device was chosen for its ability to perform several different tasks
in simultaneously without interruption.
Figure 1: Schematic of microcontroller board. The microcontroller is the large square symbol on the left and the FT2232H is
the large rectangular symbol on the right.
For the USB interface I chose the FT2232H from FTDI. This chip has 2 channels which can be
configured as UART, FIFO, JTAG, SPI, I2C, bit-bang, and USB flash card read/write. The board is
designed in such a way that the user can configure the FT2232H to do any of these things by simply
placing a few jumper wires. This high degree of reconfigurability enables the user to expand the
functioning of the board and adapt to new design challenges as they arise.
Figure 1 shows the schematic of the microcontroller board drawn in Capture CIS (OrCAD). The
microcontroller chip and FT2232H can be seen as the largest symbols on the left side and right side of the
figure respectively. Notice that nearly all of the pins on both chips are connected to headers which will let
us change functionality of the board using jumper wires.
The PCB design was done in Allegro (OrCAD) and uploaded to oshpark.com for fabrication.
Care was taken in the layout to keep the traces short, ovoid overlap of signal lines, and minimize the area.
The final board measures about 2”x3” (roughly the size of a credit card). Images of the PCB are generated
automatically upon uploading designs to oshpark.com. These are shown below in Figure 2.
Figure 2: Microcontroller PCB layout top (left side) and bottom (right side).
Testing Results: After the boards were received by mail, they were then populated and tested (see Table
1 for the complete list of components). Figure 3 shows the completed circuit boards. Notice the jumper
wires in blue and red used to configure the communication scheme between the microcontroller and the
FT2232H. Here we used the UART configuration for both reprogramming the microcontroller and to
send/receive data via USB link.
Testing shows that the microcontroller and FT2232H function as expected. The microcontroller
can be reprogrammed from a computer connected to the board’s USB port. Only one mistake was found
with the design. The so called “brown-out enable” (pin 6 on the microcontroller) should have been
connected to either power or ground but was left floating. This was easily remedied by creating an
intentional solder bridge to the neighboring pin (pin 5 ground). This can be seen upon close examination
of Figure 3.
Figure 3: Completed circuit board. Notice the jumper wires in blue and red to configure the communication scheme between
the microcontroller and the FT2232H as UART.
The microcontroller board is currently being using in 2 different projects. One, for controlling 2
ADCs used to log data from temperature sensors. The another for taking in cell simulation data from a
computer and sending it to a DAC for the purpose of imitating optical action potentials (OAPs).
Table 1: List of components by schematic reference designation.
PCB $10.08
Total: $41.16
*The header pins used here are the breakaway type. They were purchased in groups of 36 for $0.56 each,
for a cost of $0.02 per pin.