RASPI-PLUS-GVS
Contents
3.3V/5V Sensor Conn Card for Raspberry Pi A+/B+
Board Design This board is modeled on the Arduino Sensor Shields, also known as GVS shields. Arduino Sensor Shields bring out the pins of the Arduino to GVS (set of Ground, Voltage and Signal) pins.
Unfortunately, the Raspberry Pi can't work with the same GVS cards as the Arduino since the Raspberry Pi has 3.3V I/O.
The RASPI-PLUS-GVS card allows the Raspberry Pi to communicate with the same 5V sensors by performing voltage translation from the 3.3V of the Raspberry Pi to 5V.
Features
- 3.3V to 5V bidirectional voltage translators on Raspberry Pi GPIO lines
- (7) 5V GPIO lines on GVS connectors
- (2) 5V SPI interfaces (5 lines which can be )
- (1) 5V UART interface
- (1) 5V I2C interface
- GPIO_4 enables/disables the voltage translators
- (9) 3.3V GPIO interfaces
- Optional Power Supply which can power the GVS connectors
- Raspberry Pi Model A+/B+ card form factor
Voltage Translators
The RASPI-PLUS-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
Datasheet
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.
Power Supply
The RASPI-PLUS-GVS offers flexible power supply options. The 5V for the GVS Connnectors and translators can come either from the Raspberry Pi or from the 5V power supply.
A three pin header and jumpers are used to select the voltage source(s).
Installing a jumper from pins 2 to 3 allow the Raspberry Pi to power the GVC connectors and voltage translators.
Installing a jumper from 3 to 4 powers the GVS connections from the 5V power supply.
Resettable Fuses
The board has two Resettable Fuses. One of the fuses connects to the 5V lines to/from the Raspberry Pi. The other fuse is on the output of the on-board regulator. The 3.3V has no fuses.
Connectors
Raspberry Pi B Plus GPIO Connector Bplus-gpio-edited.png
J1 - 5V I2C bus GND 5V SDA SCL J2 - 5V UART I/F GND 5V TX Rx J3 - 5V IO_18 GVS GND 5V GPIO_18 J4 - 5V IO_17 GVS GND 5V GPIO_17 J5 - 5V IO_27 GVS GND 5V GPIO_27 J6 - 5V IO_23 GVS GND 5V GPIO_23 J7 - 5V IO_22 GVS GND 5V GPIO_22 J8 - 5V IO_24 GVS GND 5V GPIO_24 J9 - 5V IO_25 GVS GND 5V GPIO_25 J10 - 5V SPI0 (Serial Peripheral Interface) GND 5V MOSI MISO SCK CE0 J11 - 5V SPI1 (Serial Peripheral Interface) GND 5V MOSI MISO SCK CE1 J12 - 3.3V IO_5 GVS GND 3.3V GPIO_5 J13 - 3.3V IO_6 GVS GND 3.3V GPIO_6 J14 - 3.3V IO_13 GVS GND 3.3V GPIO_13 J15 - 3.3V IO_19 GVS GND 3.3V GPIO_19 J16 - 3.3V IO_26 GVS GND 3.3V GPIO_26 J17 - 3.3V IO_21 GVS GND 3.3V GPIO_21 J18 - 3.3V IO_12 GVS GND 3.3V GPIO_12 J19 - 3.3V IO_16 GVS GND 3.3V GPIO_16 J20 - 3.3V IO_20 GVS GND 3.3V GPIO_20 2.1mm DC Power Jack - 7-9 VDC Shell - Ground Center - Power (7-9 VDC) J21 - Power Select Jumper(s) 1-2 = Power 5V GVS from regulator 2-3 = Power 5V GVS from Raspberry Pi
Board Layout
RASPI-PLUS-GVS Factory Acceptance Test Connect LED-Test or LED-TEST-2 card to GPS lines (all except UART lines) Load test software from GitHub Enter cd ~/RasPi/RasPi-Plus-GVS sudo python ./blinkLEDs.py
LED Order blinkLED(J12) blinkLED(J13) blinkLED(J14) blinkLED(J15) blinkLED(J16) blinkLED(J17) blinkLED(J18) blinkLED(J19) blinkLED(J20) blinkLED(J3) blinkLED(J4) blinkLED(J5) blinkLED(J6) blinkLED(J7) blinkLED(J8) blinkLED(J9) blinkLED(J1_3) blinkLED(J1_4) blinkLED(J2_3) blinkLED(J2_4) blinkLED(J10_3) blinkLED(J10_4) blinkLED(J10_5) blinkLED(J10_6) blinkLED(J11_6)
Drivers/Example Code
- Github repo - Driver code