e-techgarage.com — Larry's Workbench
You are here: Posts > Creating a Small Single Board Computer (SBC) - Part 1

Creating a Small Single Board Computer (SBC) – Part 1

One weekend afternoon I was wondering how much real estate a small SBC compatible with an RCM4xxx would take.  Since my main hobby is designing and building electronic circuits I sat down with my favorite schematic capture program (DipTrace) and proceeded to draw a minimal function SBC.  Now, I suppose the design I developed is not a “true” SBC since it uses a Rabbit Core Module but Rabbit has been doing the same thing for years.
The process of designing an SBC has to start with asking the questions “What should it do?” and “What are the constraints and/or design criteria?”  I wanted the board to be as small as the RCM41xx but still have a useful complement of I/O.  My initial decision has eight current sinking outputs and eight digital inputs.  The results are shown in schematic 1.  The picture below is very close to full size.  Notice that it is slightly larger than the RCM4100.  I was not able to quite make things fit the way I wanted and still keep it the same size as the RCM41xx.  The pull-down resistors on the input circuit caused me to exceed the size of the RCM by aboutOne weekend afternoon I was wondering how much real estate a small SBC compatible with an RCM4xxx would take.  Since my main hobby is designing and building electronic circuits I sat down with my favorite schematic capture program (DipTrace) and proceeded to draw a minimal function SBC.  Now, I suppose the design I developed is not a “true” SBC since it uses a Rabbit Core Module but Rabbit has been doing the same thing for years.
That is a pretty tiny computer!

That is a pretty tiny computer!

The process of designing an SBC has to start with asking the questions “What should it do?” and “What are the constraints and/or design criteria?”  I wanted the board to be as small as the RCM41xx but still have a useful complement of I/O.  My initial design has eight current sinking outputs and eight digital inputs.  The results are shown in schematic 1.  The picture below (the photograph is of my second version which allows the use of the A/D converter on the RCM4100) is very close to full size.  Notice that it is slightly larger than the RCM4100.  I was not able to quite make things fit the way I wanted and still keep it the same size as the RCM41xx.  The pull-down resistors on the input circuit caused me to exceed the size of the RCM by about 0.1”.

I elected to use FDV303 FETs for the open drain outputs.  These devices can sink up to 200ma, have a breakdown of 25V and an on resistance of 0.6 ohms at VGS=2.7V.  They provide adequate features for many real world applications.  Another possible FET is the 2N7002.  It has a higher breakdown voltage at 60V but has a higher “ON” resistance.  Both devices can be obtained for the same cost and in the same package.  If you do decide to use the 2N7002 because you need a higher voltage you will also have to change the clamp diodes since the BAT54 is rated at 30V.  Each FET has a pull down resistor (100K) on its gate to insure that it is never floating.  One of the features of the Rabbit processor is that when it comes out of reset any I/O bit which can be an input will be set as an input.  Without the presence of the resistor this condition would leave the gates floating.

Digital Output Circuit

One of the Digital Outputs

“Back EMF” is generated when an inductive load (such as a relay coil) is turned off.  This voltage will appear at the device doing the switching (the junction of Q1, D1 and K1 above) and can easily be double the voltage supplied to the inductor.  A diode on the output clamps the voltage to that of the power supply.  You can see in the schematics that the cathodes of all the clamp diodes are tied together.  This point should be connected to the highest voltage power supply that is used for the loads.
0.1”.
A small board layout for the Rabbit 4000 family

The Board Layout

The digital input circuits simply provide current limiting via the series resistors and the clamp diodes.  The diodes are needed because the Rabbit 4000 does not have internal clamps.  These two diodes prevent the voltage applied to the Rabbit from exceeding the maximum allowed input voltage and from going below ground.  I chose high speed diodes in order to prevent high frequency spikes from reaching the processor’s inputs.  The series resistor will limit the current to about 10ma with 50V applied.  The trip point of the circuit will still be close to VDD/2.  The resistors from each input to ground keep the inputs from floating when no signal is applied.

The layout of the board is fairly simple and can be done with two layers – see Fig. 1.  The circuit uses single row, right angle headers for all I/O connections.  I chose these for two reasons:

  1. Cost – they are quite inexpensive
  2. Low profile – required since the Core Module sits on top

I decided to use a linear regulator to minimize cost and board space.  A switching regulator would certainly be more efficient but would cost more and take up more room.  The power input connector is a three pin header of the same type as the I/O headers.  I added a series diode to protect against reverse voltage.  This adds a small cost but I feel is well worth it.  The same is true for the power indicating LED – not necessary but probably a good idea.

Ready to go in the palm of my hand.

Ready to go in the palm of my hand.

The total Bill of Materials cost, in high volume, I estimate to be about $5 – excluding the RCM4xxx.

Schematic 1

Schematic_1

Full Schematic

One Response

You can follow any responses to this entry through the RSS 2.0 feed.

You can leave a response, or trackback from your own site.

[...] many applications the board described in the previous article will be adequate.  If you need to communicate with the SBC you can easily use one of the Ethernet [...]

Leave a Reply