Interfacing Beagle Bone to 5V hardware

Hi I am currently designing a robotics platform that incorporates the
Beagle Bone. I have been doing a ton of research and I need to clarify
a few things. What I currently have for a plan is to use a TxB0108
level shifter to convert from 3.3V to 5V. How should I go about
attaching the Txb0108 to the expantion headers. I am thinking anyboard
with 2 2x22 headers that has jumpers from gpio pins directly to the A
inputs on the txb0108. Should I use any pull down resistors? if so how
much resistance should I use? Also if I understand correctly I just
have to put the gpio pins I am using in mode7 and then I can write a
piece of code that sets the gpio pin on the expansion port to high or
low. However I based that off of existing beagle board code as there
is not much beagle bone code that I could find. I did notice however
that the naming of the gpio pins is different on the beagle board and
bone. I'm confused on say how p8 pin 15 is named gpio1_15. is this
just one gpio pin or is it multiplexed with others? What is the
significance of the two numbers?

So. Can I assume that you plan to make all the signals you use just GPIO pins?
How many inputs?
How many outputs?
Are some of the bi-directional?
It would help to understand what you are trying to do.
If they are one direction, you can use level translating buffers instead of the TxB0108

As to a pullup or down, that is your call. What do you need the default state to be?

The significance of the numbers is they are labeled the way they are labeled in the datasheet of the processor and the schematic. There are groups of GPIO pins and then 16 pins within each group. To reference the datasheet, you need to know the signal names Or, you can use the PROC pin numbers n the SRM which correlate to the processor pin numbers.


Thank you very much for your clarity and quick response. I am using 8
GPIO pins that in my schematic connect with no resistors to A1-A8 of a
Txb0108 Bi-directional level shifter with auto-direction sensing. B1-
B6 go to an L298 motor controller and B7,B8 act as a pulse to control
2 5v servos. I chose a bi-directional level shifter so that later I
have the choice to use it for more than just output. I noticed that on
page 2 of the txb0108 datasheet it states that when the output-enable
(OE) input is low, all outputs are placed in the high-impedance state.
If I understand correctly high impedance state means it would need a
pull down resistor to keep it low when it is supposed to be. So I have
OE set to high so I don't need pull down resistors on my outputs. For
the motor controller I intend on using 25khz pwm so I don't have to
hear an annoying 1000hz tone. Im want my default state to be off but
do I even need that?

I am not sure I have a complete picture of what you want to do. You propose a solution and you ask if the solution will work. But you have not clearly stated the problem. As I read this, you want to spin two motors.

If I just think about level shfiting the control pins, what you propose will work. As to pullups or pulldowns, pull it to the level that turns it off.



I think I will pass on reading this one.


Looks like Shellcode to me… :wink:

If you only need to output a signal to a 5V peripheral, just try it directly.

Most 5V stuff acknowledges a “high” from about 3V to 5V and a “low” from 0V to some 2V. Outputting 0V and 3.3V could just work without needing to shift up the signal.

Note: apparently the 3.3V GPIOs of the Beagleboard cannot source current (GPIOs are signal only)… am I right?

I guess the 3.3V GPIO inputs of the Beaglebone are not 5V-tolerant (like, for example, those “” things).

BB signals are not even 3.3V tolerant. You must use level shifters to
interface anything what doesn't work with 1.8V logic. I used simple
MOSFET-based level shifters for i2c and they worked fine. You just
have to use transistors with low enough threshold voltage.


BeagleBone is 3.3V. The other two versions are not.


Good point. I was thinking about BeagleBoards.


They can run together for sure!