Difference between revisions of "BeagleBoard Hardware Interfacing"

From eLinux.org
Jump to: navigation, search
m (Added Analytics)
(12 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
[[Category:BeagleBoard]]
 +
[[Category:ECE497]]
 +
<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.
 
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.
  
Line 15: Line 19:
  
 
== Powering the Beagle ==
 
== 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 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).
  
 
== Expansion Connectors ==
 
== Expansion Connectors ==
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.
+
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.  Headers and connectors are more difficult to find.  It is probably best to stick with using the main expansion header unless these signals or the additional I/O is required.  
+
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.
  
 
= Level Shifting =
 
= Level Shifting =
Line 26: Line 30:
  
 
== MAX3378 ==
 
== MAX3378 ==
The MAX3378 is a quad-input 16MBps bidirectioanl 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.
+
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 ==
 
== Single MOSFET Bidirectional Level Shifter ==
See NXP's Appnote [http://ics.nxp.com/support/documents/interface/pdf/an97055.pdf] for more information on this method.  BSS88 and BSS138 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.
+
See NXP's Appnote [http://ics.nxp.com/support/documents/interface/pdf/an97055.pdf] 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.
  
 
= I2C Devices =
 
= I2C Devices =
Some general information about I2C and a few compatabile 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.
+
Some general information about I2C and a few compatible devices can be found on [[Interfacing_with_I2C_Devices|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.
  
 
= PCB Tips =
 
= PCB Tips =
 
== OrCAD ==
 
== OrCAD ==
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.  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]].
+
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.
  
 
== Eagle ==
 
== Eagle ==
If you make an expansion board using Eagle, please put any hits or information here.
+
If you make an expansion board using Eagle, you can import DXF or GERBER files using [http://www.cadsoft.de/cgi-bin/download.pl?page=/home/cadsoft/html_public/download.htm.en&dir=eagle/userfiles/misc 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.
  
[[Category:BeagleBoard]]
+
== References ==
[[Category:ECE597]]
+
* [[Media:I2C_PWM_Hardware.pdf|Presentation on I2C, PWM and Hardware interfacing with the BeagleBoard]]

Revision as of 15:37, 17 August 2011

<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.

Commercial Options

There are several commercial boards that may work without the need to create a custom board.

A few more options can be found here.

General Notes

1.8V I/O

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).

Expansion Connectors

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.

Level Shifting

There are several options for level shifting to use 3.3V or 5V devices.

MAX3378

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 [1] 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.

I2C Devices

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.

PCB Tips

OrCAD

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.

Eagle

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.

References