BBB-GVS
Contents
Beaglebone Black cape which provides 5V GVS connections
We love the Beaglebone Black. With all of its I/O connections it offers exciting potential for embedded/connected devices. It even has real mounting holes which let the board be used for real-world applications.
When we got our first Beaglebone Black we were excited to try it with some of our Arduino GVS (Ground/Voltage/Signal) sensors and GVS output devices but couldn't since they are all 5V sensors. Sure we could cobble together some level shifters on a breadboard but in the end we wouldn't have something that could be deployed in a real application What we really wanted was a 5V Sensor shield like the one we use for our Arduino. But there were none out there. So we designed one.
Introducing the BBB-GVS cape.
Features
- (5) 5V GPIO GVS connections (auto direction detection)
- (4) 5V GPIO/Timer GVS connections (auto direction detection)
- (2) 5V UART Tx/Rx connections (auto direction detection)
- (1) 5V PWM GVS connection
- (1) 5V I2C bus 4-pin connections (auto direction detection)
- 5V pins are all ESD protected pins with 15 kV of protection
- Cape configuration EEPROM
- (7) 3.3V GPIO connections
- (1) 3.3V UART Tx/Rx connection
- (1) 3.3V PWM GVS connection
- (7) 1.8V analog GVS connections
- Resettable Fuses on 5V and 3.3V power
- Selectable 5V source
- 3.3V and 5V power status LEDs
- Beaglebone Black form factor
Technical Overview
In a nutshell, the 3.3V digital signals of the Beaglebone Black need to be changed into 5V digital signals. There are a number of discrete ways to convert 3.3V bus to 5V signals. Some of them use MOSFETs and a couple of resistors. These work OK but there are some powerful chips out there that can do the conversion even better. We looked around and found what we think is the best 3.3V<>5V data conversion chip, Texas Instrument's TXS0108. The TXS0108 is an 8-bit, bi-directional buffer with automatic direction detection. Each and every pin can transmit and receive independently and even at the same time. The part supports both open drain and push-pull operation. The part can run as fast as 60 Mb/s in push-pull operation and 2 Mb/s in open drain. This speed is fast enough enough for microprocessor GPIO pin or even the fastest serial interfaces that a microprocessor can throw at it.
What is GVS?
GVS is great for prototyping or deploy-able products. The beauty of the GVS connection is that power and ground are provided with each I/O signal. That provides the power needed to power external sensors and output devices. Otherwise splitting the one or two power pins into separate cables ends up being a real mess.
GVS stands for Ground, Voltage and Signal. It's a 3-pin unofficial standard. It uses 0.1" pitch pins. There are a large number of GVS sensors (inputs) and devices (output) parts on ebay. The sorts of GVS sensors include:
- Buttons
- Switches
- Temperature sensors
The sorts of GVS output devices include:
- Relay modules (not always wired as GVS, but they typically require 5V).
- Buzzers
- Solenoids
- Servos (require PWM output pin)
To connect a GVS sensor to a GVS card, just use a 3-wire cable.
Other Connections
The Beaglebone Black also has I2C and UART connections. These allow various devices to be connected:
- I2C Displays
- I2C accelerometers, gyroscopes
- UART GPS modules
The Design
We wanted a sensor shield like the ones use for the Arduino. In the Arduino's case, there's a limited amount of I/O lines The Beaglebone has many more I/O lines than the Arduino. We wanted to convert as many of the signals to 5V as we could possible fit on a board the size of a mint can. In particular, we wanted to convert the I2C bus as well as the UART lines to 5V. Also, we wanted to have a mix of 3.3V and 5V GVS signals. We also wanted to allow external connection to the analog inputs as we providing the analog reference voltage to run the analog input sensors.
That translated into 2 parts which handle 8 I/O lines each. Putting these parts along with all the GVS connections we could possibly add resulted in our design.
Voltage Translators
The BBB-GVS board uses Texas Instrument TXS0108 voltage translators.
Voltage Translators Features
- No Direction-Control Signal Needed
- Max Data Rates
- 60 Mbps (Push Pull)
- 2 Mbps (Open Drain)
- 1.2 V to 3.6 V on A Port and 1.65 V to 5.5 V on
- B Port (VCCA ≤ VCCB)
- No Power-Supply Sequencing Required –
- Either VCCA or VCCB Can Be Ramped First
- Latch-Up Performance Exceeds 100 mA Per JESD 78, Class II
- ESD Protection Exceeds JESD 22 (A Port)
- 2000-V Human-Body Model (A114-B)
- 150-V Machine Model (A115-A)
- 1000-V Charged-Device Model (C101)
- IEC 61000-4-2 ESD (B Port)
- ±6-kV Air-Gap Discharge
- ±8-kV Contact Discharge
Voltage Translators Architecture
The TXS0108E can be used in level-translation applications for interfacing devices or systems operating at different interface voltages with one another. The TXS0108E is ideal for use in applications where an open-drain driver is connected to the data I/Os. The TXS0108E can also be used in applications where a push-pull driver is connected to the data I/Os, but the TXB0104 might be a better option for such push-pull applications. The TXS0108E device is a semi-buffered auto-direction-sensing voltage translator design is optimized for translation applications (e.g. MMC Card Interfaces) that require the system to start out in a low-speed open-drain mode and then switch to a higher speed push-pull mode.
To address these application requirements, a semi-buffered architecture design is used and is illustrated above (see Figure 1). Edge-rate accelerator circuitry (for both the high-to-low and low-to-high edges), a High-Ron n-channel pass-gate transistor (on the order of 300 Ω to 500 Ω) and pull-up resistors (to provide DC-bias and drive capabilities) are included to realize this solution. A direction-control signal (to control the direction of data flow from A to B or from B to A) is not needed. The resulting implementation supports both low-speed open-drain operation as well as high-speed push-pull operation.
When transmitting data from A to B ports, during a rising edge the One-Shot (OS3) turns on the PMOS transistor (P2) for a short-duration and this speeds up the low-to-high transition. Similarly, during a falling edge, when transmitting data from A to B, the One-Shot (OS4) turns on NMOS transistor (N2) for a short-duration and this speeds up the high-to-low transition. The B-port edge-rate accelerator consists of one-shots OS3 and OS4, Transistors P2 and N2 and serves to rapidly force the B port high or low when a corresponding transition is detected on the A port.
When transmitting data from B to A ports, during a rising edge the One-Shot (OS1) turns on the PMOS transistor (P1) for a short-duration and this speeds up the low-to-high transition. Similarly, during a falling edge, when transmitting data from B to A, the One-Shot (OS2) turns on NMOS transistor (N1) for a short-duration and this speeds up the high-to-low transition. The A-port edge-rate accelerator consists of one-shots OS1 and OS2, Transistors P1 and N1 components and form the edge-rate accelerator and serves to rapidly force the A port high or low when a corresponding transition is detected on the B port.
EEPROM connections
Beaglebone Black GVS Board Layout
Connectors
J1-J7 Analog Inputs
- Analog signals must be between 0 and 1.8V/
J1-J7 pin 1 = P9-34 = GND_ADC J1-J7 pin 2 = P9-32 = BDD_ADC Connector Pin Function J1-3 P9_40 AIN1 J2-3 P9_38 AIN3 J3-3 P9_36 AIN5 J4-3 P9_33 AIN4 J5-3 P9_39 AIN0 J6-3 P9_37 AIN2 J7-3 P9_35 AIN6
J8-J11 GPIO, UART1 - 3.3V
- 3.3V digital
Connector Pin Function GPIO J8-3 P9_30 SPI_D1 GPIO3_16 J9-3 P9_27 GPIO3_19 GPIO3_19 J10-3 P9_23 GPIO1_17 GPIO1_17 J11-3 P9_24 UART1_TXD GPIO0_15 J11-4 P9_26 UART1_RXD GPIO0_14
J12-J16 - UART2, I2C1, GPIOs, UART4 - 5V
- 5V digital
Connector Pin Function GPIO J12-3 P9_21 UART2TX GPIO0_3 J12-4 P9_22 UART2RX GPIO0_2 J13-3 P9_18 I2C1SDA GPIO0_12 J13-4 P9_17 I2C1SCL GPIO0_13 J14-3 P9_15 GPIO1_16 GPIO1_16 J15-3 P9_12 GPIO1_28 GPIO1_28 J16-3 P9_13 UART4TX GPIO0_31 J16-4 P9_11 UART4RX GPIO0_30
J17-J22 GPIOs, PWM2A, 3.3V
- 3.3V digital
Connector Pin Function GPIO J17-3 P8_26 GPIO1_29 GPIO1_29 J18-3 P8_19 EHRPWM2A GPIO0_22 J19-3 P8_18 GPIO2_1 GPIO2_1 J20-3 P8_17 GP1O0_27 GPIO0_27 J21-3 P8_16 GPIO1_14 GPIO1_14 J22-3 P8_15 GPIO1_15 GPIO1_15
J23 - 5VSEL
Jumper 1-2 to power BBB-GVS board from SYS_5V. (default)
Jumper 2-3 to power board from VDD_5V. VDD_5V is 5V with a maximum current of 1000mA, but only works if the BeagleBone is powered by an external power source
BBB-GVS-X3-J23.PNG
J24 - EEPROM address selection jumpers
EEPROM address A0, A1 selection jumper selectable.
Default = both installed.
J25-J29 PWM2B, GPIOs, TIMERs - 5V
5V digital
Connector Pin Function GPIO J25-3 P8_13 EHRPWM2B GPIO0_23 J26-3 P8_14 GPIO0_26 GPIO0_26 J27-3 P8_11 GPIO1_13 GPIO1_13 J28-3 P8_12 GPIO1_12 GPIO1_12 J29-3 P8_9 TIMER5 GPIO2_5
J30-J32 - TIMERs - 5V
5V digital
Connector Pin Function GPIO J30-3 P8_8 TIMER7 GPIO2_3 J31-3 P8_7 TIMER4 GPIO1_3 J32-3 P8_10 TIMER6 GPIO2_4
J33 - EEPROM Write Enable
Install jumper to enable writes. Remove jumper to disable writes (default).
Analog Port Mapping
Connector Pin Function Alternate Voltage J1-3 P9_40 AIN1 1.8V Analog J2-3 P9_38 AIN3 1.8V Analog J3-3 P9_36 AIN5 1.8V Analog J4-3 P9_33 AIN4 1.8V Analog J5-3 P9_39 AIN0 1.8V Analog J6-3 P9_37 AIN2 1.8V Analog J7-3 P9_35 AIN6 1.8V Analog
Python Analog and Digital Pin Definitions by Header J Number
J1 = "AIN1" J2 = "AIN3" J3 = "AIN5" J4 = "AIN4" J5 = "AIN0" J6 = "AIN2" J7 = "AIN6" J8 = "P9_30" J9 = "P9_27" J10 = "P9_23" J11_3 = "P9_24" J11_4 = "P9_26" J12_3 = "P9_21" J12_4 = "P9_22" J13_3 = "P9_18" J13_4 = "P9_17" J14 = "P9_15" J15 = "P9_12" J16_3 = "P9_13" J16_4 = "P9_11" J17 = "P8_26" J18 = "P8_19" J19 = "P8_18" J20 = "P8_17" J21 = "P8_16" J22 = "P8_15" J25 = "P8_13" J26 = "P8_14" J27 = "P8_11" J28 = "P8_12" J29 = "P8_9" J30 = "P8_8" J31 = "P8_7" J32 = "P8_10"