BeagleBoard Hardware Interfacing
<analytics uacct="UA-119847-6" ></analytics>
This page is meant to help anyone who wants to create an expansion board to interface with the BeagleBoard. It summarizes some of the commercial options, and includes some recommendations for components for a custom board.
There are several commercial boards that may work without the need to create a custom board.
A few more options can be found here.
It is very important to remember that the I/O on the BeagleBoard is 1.8V. Level shifting must occur to interface with 3.3V or 5V devices. This is very important as these voltages will easily break pins on the BeagleBoard.
Powering the Beagle
The BeagleBoard is typically powered through the barrel connector or the MiniUSB connector. When adding an expansion board, the option is available to power the BeagleBoard from a power supply on that expansion board. The 5V pin on the expansion connector is connected to the barrel connector directly. This means that you can power the board from either one, and pass 5V through to the other. An elegant solution is to place a switcher on the expansion board to provide 5V to the BeagleBoard and any external 5V devices. This allows you to use a wide range of power supplies or wall warts while providing clean, safe 5V DC to the BeagleBoard. One simple switcher to take a look at is the TPS54x0 series (the x indicates the maximum current output; 1A, 2A, 3A, and 5A devices are available).
There are several expansion connectors available on the BeagleBoard, depending on the revision. All revisions have J3, a 0.1" spaced header. This is not populated by default, it is left up the user to decide which gender header is desired, and where is should be placed. There have been some indications that newer versions of the BeagleBoard will come populated with a female header oriented facing downward. It may be wise to design with this decision in mind to allow for future expandability when new revisions of the BeagleBoard are released.
There are two other headers available (J4 and J5). These are 0.05" spaced headers, and are usually used only for interfacing with and external LCD. Pins and connectors are more difficult to find for these headers, so it is probably best to stick with using the main expansion header unless these signals or the additional I/O are required.
There are several options for level shifting to use 3.3V or 5V devices.
The MAX3378 is a quad-input 16MBps bidirectional level shifter. It works well with I2C or GPIO. Many of the commercial expansion boards use these for level shifting. They are only available in a small TSSOP surface mount package, making it difficult to use on a breadboard or some milled boards.
Single MOSFET Bidirectional Level Shifter
See NXP's Appnote  for more information on this method. BSS88 and BSS138 MOSFETs appear to be compatible with the BeagleBoard and this design. This has not been tested with the BeagleBoard, so be sure to research this option fully before implementing it.
Some general information about I2C and a few compatible devices can be found on Interfacing with I2C Devices. Several devices listed at the bottom of the page are confirmed to work with the BeagleBoard. Note that almost any 100kHz or 400kHz I2C device will work with the BeagleBoard, it is just a matter of determining the correct address and registers on the device to read from or write to.
If you are using OrCAD to layout an expansion board, it is extremely useful to use a DXF file to align the mounting holes and the expansion headers. 0.156" holes should be used for the mounting holes. This can be done by exporting the pertinent details from the OrCAD .brd file available in the Design Documents section of the BeagleBoard site. Alternatively, a version that should be compatible with C3 and C4 can be found here: File:BeagleBoard.dxf. Make sure to check that pin 1 is aligned with pin 1 on the BeagleBoard. This will not be the case by default; a new footprint will need to be created or the connector will need to be "placed" on the bottom of the board.
If you make an expansion board using Eagle, you can import DXF or GERBER files using Eagle PCB Power Tools from Cadsoft website. It is a freeware that create a script .SCR file from your DXF or GERBER. But there is a limitation in the number of script instructions created so for importing BeagleBoard footprint you will first to select in the DXF or Gerber files what you really want.