introduction - switchdoc labs blog€¦ · introduction this board is an inexpensive grove i2c...

16
Grove Digital Extender 0059-GRVDE-DSBT/SF Product Specification Introduction This board is an inexpensive Grove I2C controlled 8 pin GPIO Extender Board for the Raspberry Pi, Arduino and the ESP8266. It has 8 Grove Digital Connectors and 3 Grove I2C connectors (which form an I2C Hub). We are always running out of GPIOs on the Raspberry Pi. We wanted a clean way of adding more GPIO ports (Digital Grove ports) and we decided this was the way to do it. 8 Digital Grove ports (and a bonus 2 extra Grove I2C) is the way to do it in style. This board connects to the I2C bus on the Raspberry Pi and adds 8 additional 3.3V GPIOs to the Pi. You can also make them 5V GPIO pins if you wish. The Grove Digital Extender board is an easy to use I2C controlled board that provides 8 Grove Digital I/O ports. Features and Benefits: 8 Grove Digital Connectors I2C controlled 3 total Grove I2C Connectors (2 spare) 8 GPIO pins 3.3V and 5V compatible Buffered LEDS located on D0 and D2 All pins can interrupt the computer Digital Grove pins are by default 3.3V or 5.0V depending on VDD Optional Two bank power supply allows two banks of 4 GPIO pins to have 5V or 3.3V Can program GPIO pins to make up to 3 pin logic gates (PLD) Software drivers for Arduino and Raspberry Pi Included Low Cost Quantity Discounts Available Immediate Availability ______________________________________________________________________________________ SwitchDoc Labs, LLC, 20089 E Glenbrook Ave,, Liberty Lake, Washington 99016 - [email protected] Version 1.1 - Page of 1 16

Upload: others

Post on 01-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction - SwitchDoc Labs Blog€¦ · Introduction This board is an inexpensive Grove I2C controlled 8 pin GPIO Extender Board for the Raspberry Pi, Arduino and the ESP8266

Grove Digital Extender

0059-GRVDE-DSBT/SF

P r o d u c t S p e c i f i c a t i o n

IntroductionThis board is an inexpensive Grove I2C controlled 8 pin GPIO Extender Board for the Raspberry Pi, Arduino and the ESP8266. It has 8 Grove Digital Connectors and 3 Grove I2C connectors (which form an I2C Hub).

We are always running out of GPIOs on the Raspberry Pi.   We wanted a clean way of adding more GPIO ports (Digital Grove ports) and we decided this was the way to do it.  8 Digital Grove ports (and a bonus 2 extra Grove I2C) is the way to do it in style.    This board connects to the I2C bus on the Raspberry Pi and adds 8 additional 3.3V GPIOs to the Pi.  You can also make them 5V GPIO pins if you wish.  

The Grove Digital Extender board is an easy to use I2C controlled board that provides 8 Grove Digital I/O ports.

Features and Benefits:

• 8 Grove Digital Connectors • I2C controlled • 3 total Grove I2C Connectors (2 spare) • 8 GPIO pins • 3.3V and 5V compatible • Buffered LEDS located on D0 and D2 • All pins can interrupt the computer • Digital Grove pins are by default 3.3V or 5.0V

depending on VDD • Optional Two bank power supply allows two

banks of 4 GPIO pins to have 5V or 3.3V

• Can program GPIO pins to make up to 3 pin logic gates (PLD)

• Software drivers for Arduino and Raspberry Pi Included

• Low Cost • Quantity Discounts Available • Immediate Availability

______________________________________________________________________________________ SwitchDoc Labs, LLC, 20089 E Glenbrook Ave,, Liberty Lake, Washington 99016 - [email protected]

Version 1.1 - Page � of �1 16

Page 2: Introduction - SwitchDoc Labs Blog€¦ · Introduction This board is an inexpensive Grove I2C controlled 8 pin GPIO Extender Board for the Raspberry Pi, Arduino and the ESP8266

Grove Digital Extender

0059-GRVDE-DSBT/SF

P r o d u c t S p e c i f i c a t i o n

How To UseThe Grove Digital Extender is a eight-channel, flexible 8 Grove Digital / Connector GPIO extender controlled by an I2C bus. The Grove Digital Extender board uses a 3.3V / 5V SX1502 8 channel GPIO extender.

The default I2C Address is 0x21.

To use the 8GPIO board, you connect up the I2C bus to an Arduino, ESP8266 or Raspberry Pi. The 8 GPIO pins are split into two banks, A and B. Each bank can be set to be 3.3V or 5.0V compatible.

Board Compatibliity

Board Raspberry Pi Arduino ESP8266

Digital Grove Extender X X X

______________________________________________________________________________________ SwitchDoc Labs, LLC, 20089 E Glenbrook Ave,, Liberty Lake, Washington 99016 - [email protected]

Version 1.1 - Page � of �2 16

Page 3: Introduction - SwitchDoc Labs Blog€¦ · Introduction This board is an inexpensive Grove I2C controlled 8 pin GPIO Extender Board for the Raspberry Pi, Arduino and the ESP8266

Grove Digital Extender

0059-GRVDE-DSBT/SF

P r o d u c t S p e c i f i c a t i o n

LEDs on the Grove Digital Extender

D0 - Buffered Green LED

D1 - Buffered White LED

VDDM Power LED

______________________________________________________________________________________ SwitchDoc Labs, LLC, 20089 E Glenbrook Ave,, Liberty Lake, Washington 99016 - [email protected]

Version 1.1 - Page � of �3 16

Page 4: Introduction - SwitchDoc Labs Blog€¦ · Introduction This board is an inexpensive Grove I2C controlled 8 pin GPIO Extender Board for the Raspberry Pi, Arduino and the ESP8266

Grove Digital Extender

0059-GRVDE-DSBT/SF

P r o d u c t S p e c i f i c a t i o n

What are Grove Connectors?

A Grove connector is a four pin standardized size connector used to plug into the Pi2Grover base unit and Grove devices and modules. These standardized connectors (common to all types of Grove Connectors) are the key to making this system work. They are keyed to prevent plugging them in backwards, and the four types of connectors (see below) are all designed so that if you plug the wrong type of device into the wrong type of base unit, there is no problem. They just won’t work. This is a good thing. Less smoke, more prototyping!

The Four Types of Grove ConnectorsBelow are some of the specifics of each of the four types of connectors. First of all, physically all of them are the same. Exactly. The differences are in the signal types that are provided. Now, note. You will never short out power and ground by mis-plugging one type of Grove connector in the other. However, it is possible to plug a 3.3V Grove Module into a 5.0V Grove connector and damage the device. The same could happen with an output coming back from a Grove button or switch for example into another output. While you do need to be careful and think about what you are doing, it is a lot less risky than soldering or using just jumpers to wire up devices to your Pi or Arduino.

Generically, all of the Grove connectors are wired the same: Signal 1, Signal 2, Power, Ground.

Grove Digital A digital Grove connector consists of the standard four lines coming into the Grove plug. The two signal lines are generically called D0 and D1. Most modules only use D0, but some do (like the LED Bar Grove display) use both. Often base units will have the first connector called D0 and the second called D1 and they will be wired D0/D1 and then D1/D2, etc.

______________________________________________________________________________________ SwitchDoc Labs, LLC, 20089 E Glenbrook Ave,, Liberty Lake, Washington 99016 - [email protected]

Version 1.1 - Page � of �4 16

Page 5: Introduction - SwitchDoc Labs Blog€¦ · Introduction This board is an inexpensive Grove I2C controlled 8 pin GPIO Extender Board for the Raspberry Pi, Arduino and the ESP8266

Grove Digital Extender

0059-GRVDE-DSBT/SF

P r o d u c t S p e c i f i c a t i o n

Examples of Grove Digital modules are: Switch Modules, the Fan Module, and the LED Module.

Grove Analog (Note: The Grove Digital Extender has no Analog Connectors. Grove Analog is supplied by the Grove 4Channel 16 bit ADC Module) An Grove Analog connector consists of the standard four lines coming into the Grove plug. The two signal lines are generically called A0 and D0. Most modules only use A0. Often base units will have the first connector called A0 and the second called A1 and they will be wired A0/A1 and then A1/A2, etc.

Examples of Grove Analog modules are: Potentiometer, Voltage Divider and the Grove Air Quality Sensor.

Grove Digital

Pin 1 D0 Primary Digital Input/Output

Pin 2 D1 Secondary Digital Input/Output

Pin 3 VCC Power for Grove Module (5V or 3.3V)

Pin 4 GND Ground

Grove Analog

Pin 1 A0 Primary Analog Input

Pin 2 A1 Secondary Analog Input

Pin 3 VCC Power for Grove Module (5V or 3.3V)

Pin 4 GND Ground

______________________________________________________________________________________ SwitchDoc Labs, LLC, 20089 E Glenbrook Ave,, Liberty Lake, Washington 99016 - [email protected]

Version 1.1 - Page � of �5 16

Page 6: Introduction - SwitchDoc Labs Blog€¦ · Introduction This board is an inexpensive Grove I2C controlled 8 pin GPIO Extender Board for the Raspberry Pi, Arduino and the ESP8266

Grove Digital Extender

0059-GRVDE-DSBT/SF

P r o d u c t S p e c i f i c a t i o n

Grove UART (No Grove UART on the Grove Digital Extender)

The Grove UART module is a specialized version of a Grove Digital Module. It uses both Pin 1 and Pin 2 for the serial input and transmit. The Grove UART plug is labeled from the base unit point of view. In other words, Pin 1 is the RX line (which the base unit uses to receive data, so it is an input) where Pin 2 is the TX line (which the base unit uses to transmit data to the Grove module).

Examples of Grove UART modules are: XBee Wireless Sockets, 125KHz RFID Reader

Grove UART

Pin 1 RX Serial Receive (from base point of view)

Pin 2 TX Serial Transmit (from base point of view)

Pin 3 VCC Power for Grove Module (5V or 3.3V)

Pin 4 GND Ground

______________________________________________________________________________________ SwitchDoc Labs, LLC, 20089 E Glenbrook Ave,, Liberty Lake, Washington 99016 - [email protected]

Version 1.1 - Page � of �6 16

Page 7: Introduction - SwitchDoc Labs Blog€¦ · Introduction This board is an inexpensive Grove I2C controlled 8 pin GPIO Extender Board for the Raspberry Pi, Arduino and the ESP8266

Grove Digital Extender

0059-GRVDE-DSBT/SF

P r o d u c t S p e c i f i c a t i o n

Grove I2C There are many types of I2C Grove sensors available. Most are 5V/3.3V devices, but there are a few that are only 3.3V or 5.0V. You need to check the specifications.

The Grove I2C connector has the standard layout. Pin 1 is the SCL signal and Pin 2 is the SDA signal. Power and Ground are the same as the other connectors. This is another special version of the Grove Digital Connector. In fact, often the I2C bus on a controller (like the ESP8266, Raspberry Pi and the Arduino) just uses Digital I/O pins to implement the I2C bus. The pins on the Raspberry Pi and Arduino are special with hardware support for the I2C bus. The ESP8266 is purely software.

Grove I2C

Pin 1 SCL I2C Clock

Pin 2 SDA I2C Data

Pin 3 VCC Power for Grove Module (5V or 3.3V)

Pin 4 GND Ground

______________________________________________________________________________________ SwitchDoc Labs, LLC, 20089 E Glenbrook Ave,, Liberty Lake, Washington 99016 - [email protected]

Version 1.1 - Page � of �7 16

Page 8: Introduction - SwitchDoc Labs Blog€¦ · Introduction This board is an inexpensive Grove I2C controlled 8 pin GPIO Extender Board for the Raspberry Pi, Arduino and the ESP8266

Grove Digital Extender

0059-GRVDE-DSBT/SF

P r o d u c t S p e c i f i c a t i o n

Grove Digital Extender Interface Pinout

Pin Headers

______________________________________________________________________________________ SwitchDoc Labs, LLC, 20089 E Glenbrook Ave,, Liberty Lake, Washington 99016 - [email protected]

Version 1.1 - Page � of �8 16

Page 9: Introduction - SwitchDoc Labs Blog€¦ · Introduction This board is an inexpensive Grove I2C controlled 8 pin GPIO Extender Board for the Raspberry Pi, Arduino and the ESP8266

Grove Digital Extender

0059-GRVDE-DSBT/SF

P r o d u c t S p e c i f i c a t i o n

Wiring Lists for Non Grove Pin Headers

Raspberry Pi (A/B/A+/B+/Pi 2/Pi 3)

Signal Name Raspberry Pi A/B/A+/B+/Pi 2 Grove Digital Extender

GND GND (GPIO/6) GND (JP1/1)

Power 3.3V (GPIO/1) VDDM (JP1/2)

SDA I2C1_SDA (GPIO/3) SDA (JP1/3)

SCL I2C1_SCL (GPIO/5) SCL (JP1/4)

______________________________________________________________________________________ SwitchDoc Labs, LLC, 20089 E Glenbrook Ave,, Liberty Lake, Washington 99016 - [email protected]

Version 1.1 - Page � of �9 16

Page 10: Introduction - SwitchDoc Labs Blog€¦ · Introduction This board is an inexpensive Grove I2C controlled 8 pin GPIO Extender Board for the Raspberry Pi, Arduino and the ESP8266

Grove Digital Extender

0059-GRVDE-DSBT/SF

P r o d u c t S p e c i f i c a t i o n

Arduino Uno

Ardunio Mega 2560

Theory of Operation

SX1502 IC

For more complete information, see the full SX1502 Specification at: http://www.semtech.com/images/datasheet/sx150x.pdf.

The Grove Digital Extender board uses a Semtech SX1502 8 GPIO I2C IC to supply the 8 Grove Digital on the board.

Signal Name Arduino Uno Grove Digital Extender

GND GND (POWER/GND) GND (JP1/1)

Power 5.0V (POWER/5V) VDDM(JP1/2)

SDA ADC4/SDA (ANALOG IN/A4) SDA (JP1/3)

SCL ADC5/SCL (ANALOG IN/A5) SCL (JP1/4)

Signal Name Arduino Mega 2560 Grove Digital Extender

GND GND (POWER/GND) GND (JP1/1)

Power 5.0V (POWER/5V) VDDM (JP1/2)

SDA SDA (COMMUNICATIONS 20) SDA (JP1/3)

SCL SCL (COMMUNICATIONS 21) SCL (JP1/4)

______________________________________________________________________________________ SwitchDoc Labs, LLC, 20089 E Glenbrook Ave,, Liberty Lake, Washington 99016 - [email protected]

Version 1.1 - Page � of �10 16

Page 11: Introduction - SwitchDoc Labs Blog€¦ · Introduction This board is an inexpensive Grove I2C controlled 8 pin GPIO Extender Board for the Raspberry Pi, Arduino and the ESP8266

Grove Digital Extender

0059-GRVDE-DSBT/SF

P r o d u c t S p e c i f i c a t i o n

The SX1502 is a complete ultra low voltage General Purpose parallel Input/Output (GPIO) expanders ideal for low power handheld battery powered equipment. It allows easy serial expansion of I/O through a standard I2C interface. GPIO devices can provide additional control and monitoring when the microcontroller or chipset has insufficient I/O ports, or in systems where serial communication and control from a remote location is advantageous.

These devices can also act as a level shifter to connect a microcontroller running at one voltage level to a component running at a different voltage level. The core is operating as low as 1.2V while the I/O banks can operate between 1.2V and 5.5V independent of the core voltage and each other.

Each GPIO is programmable via 8-bit configuration registers. Data registers, direction registers, pull- up/pull-down registers, interrupt mask registers and interrupt registers allow the system master to allow the system master to program and configure 8 GPIOs using a 2 wire standard 400kHz I C interface.

PLD (Programmable Logic Device)

The SX1502 offers a unique fully programmable logic functions like a PLD to give more flexibility and reduce external logic gates used for standard applications. Pins IO4-IO7 are available for PLD use on the 8GPIO board.

______________________________________________________________________________________ SwitchDoc Labs, LLC, 20089 E Glenbrook Ave,, Liberty Lake, Washington 99016 - [email protected]

Version 1.1 - Page � of �11 16

Page 12: Introduction - SwitchDoc Labs Blog€¦ · Introduction This board is an inexpensive Grove I2C controlled 8 pin GPIO Extender Board for the Raspberry Pi, Arduino and the ESP8266

Grove Digital Extender

0059-GRVDE-DSBT/SF

P r o d u c t S p e c i f i c a t i o n

Since the whole truth table is fully programmable, the SX1502 can implement combinatory functions ranging from the basic AND/OR gates to the most complicated ones with up to four 3-to1 PLDs or two 3-to-2 PLDs which can also be externally cascaded if needed.

In all cases, any IO not configured for PLD functionality retains its GPIO functionality while I/Os used by the PLD have their direction automatically set accordingly.

Please note that while RegDir corresponding bits are ignored for PLD operation they may still be set to input to access unused PLD inputs as normal GPI (PLD truth table can define some inputs to have no effect on PLD output) and/or generate interrupt based on any of the PLD inputs or outputs bits.

For more information, check out the SX1502 specification from Semtech.

Operating Values

Pin LocationsPhysical dimensions of board: 63 mm x 48 mm x 10mm(max).

I/O Key:

I - Digital Input

Min Normal Max Unit

VDDM Supply Voltage

1.2 5.5 V

VCC1/VCC2 IO Supply Voltage

1.2 5.5 V

IOH GPIO Output High Source Current

8 at VCC1/VCC2 > 2V

0.3 at VCC1/VCC2 < 2V

mA

IOL GPIO Output High Source Current

12 at VCC1/VCC2 > 2V 6 at VCC1/VCC2 < 2V

mA

______________________________________________________________________________________ SwitchDoc Labs, LLC, 20089 E Glenbrook Ave,, Liberty Lake, Washington 99016 - [email protected]

Version 1.1 - Page � of �12 16

Page 13: Introduction - SwitchDoc Labs Blog€¦ · Introduction This board is an inexpensive Grove I2C controlled 8 pin GPIO Extender Board for the Raspberry Pi, Arduino and the ESP8266

Grove Digital Extender

0059-GRVDE-DSBT/SF

P r o d u c t S p e c i f i c a t i o n

O - Digital Output A - Analog

Pin Functions

JP1 - Computer Side Pins Input / Output Control Lines for Grove Digital Extender

JP2 - Auxiliary VDDM Pins Auxiliary VDDM pins

NAME PIN I/O DESCRIPTION

GND JP1 / 1 A GND

VDDM JP1 / 2 A Power for the Grove Digital Extender. Use 3.3V with Raspberry Pi and 5.0V with Arduino

SDA JP1 / 3 I/O Serial bus data line; open-drain input/output.

SCL JP1 / 4 I Serial bus clock line; open-drain input.

NINT JP1 / 5 O Outgoing Interrupt Line; 0 = Interrupt; open-drain output

NRES JP1 / 6 I Reset SX1502; open-drain input

ADDR JP1 / 7 I 8GPIOB I2C Address Select - 0x21 if tied to VDDM, 0x20 if tied to GND. Default 0x21

GND JP1 / 8 A GND

NAME PIN I/O DESCRIPTION

VDDM JP3 / 1 A Tied to VDDM input on JP2 (JP1 / 2)

______________________________________________________________________________________ SwitchDoc Labs, LLC, 20089 E Glenbrook Ave,, Liberty Lake, Washington 99016 - [email protected]

Version 1.1 - Page � of �13 16

Page 14: Introduction - SwitchDoc Labs Blog€¦ · Introduction This board is an inexpensive Grove I2C controlled 8 pin GPIO Extender Board for the Raspberry Pi, Arduino and the ESP8266

Grove Digital Extender

0059-GRVDE-DSBT/SF

P r o d u c t S p e c i f i c a t i o n

JP3 - Bank A/B Power Supplies VCC1/VCC2 Power Supplies

JP4 - GPIO Pins

GPIO Pins

JP5 - Auxiliary GND Pins Auxiliary GND pins

VDDM JP3 / 2 A Tied to VDDM input on JP2 (JP1 / 2)

NAME PIN I/O DESCRIPTION

VCC1 JP3 / 1 A Supply for SX1502 IO pins 0-3. Default tied to VDDM, but can be tied to 3.3V or 5.0V to provide level translation. To change you MUST cut SJ2

VCC2 JP3 / 2 A Supply for SX1502 IO pins 4-7. Default tied to VDDM, but can be tied to 3.3V or 5.0V to provide level translation. To change you MUST cut SJ2

NAME PIN I/O DESCRIPTION

IO0 JP4 / 1 D GPIO Pin 0

IO1 JP4 / 2 D GPIO Pin 1

IO2 JP4 / 3 D GPIO Pin 2

IO3 JP4 / 4 D GPIO Pin 3

IO4 JP4 / 5 D GPIO Pin 4

IO5 JP4 / 6 D GPIO Pin 5

IO6 JP4 / 7 D GPIO Pin 6

IO7 JP4 / 8 D GPIO Pin 7

NAME PIN I/O DESCRIPTION

GND JP4 / 1 A GND

GND JP4 / 2 A GND

______________________________________________________________________________________ SwitchDoc Labs, LLC, 20089 E Glenbrook Ave,, Liberty Lake, Washington 99016 - [email protected]

Version 1.1 - Page � of �14 16

Page 15: Introduction - SwitchDoc Labs Blog€¦ · Introduction This board is an inexpensive Grove I2C controlled 8 pin GPIO Extender Board for the Raspberry Pi, Arduino and the ESP8266

Grove Digital Extender

0059-GRVDE-DSBT/SF

P r o d u c t S p e c i f i c a t i o n

Jumpers

SJ1Default closed - Cut SJ1 to supply a different voltage to VCC2 (Bank D4-D7). Supply VCC2 voltage at JP3 pin 2

SJ2Default closed - Cut SJ2 to supply a different voltage to VCC1 (Bank D0-D3). Supply VCC1 voltage at JP3 pin 1

SJ3Default closed - Cut SJ3 and solder SJ4 to change I2C Address to 0x23 from the default 0x21SJ4 Default open - Cut SJ3 and solder SJ4 to change I2C Address to 0x23 from the default 0x21

Software for Arduino and Raspberry PiSwitchDoc Labs developed this pure Python Raspberry Pi library for this Grove Digital Extender as well as developing the Arduino C++ driver.

The Python Raspberry Pi software is located on the SwitchDoc Labs github under https://github.com/switchdoclabs/SDL_Pi_GroveDigitalExtender

Arduino drivers are located on github under https://github.com/switchdoclabs/SDL_Arduino_GroveDigitalExtender

The first test on the Raspberry Pi should always be “i2cdetect -y 1” which should show you the Grove Digital Extender at the default address of 0x21.

A similar test can be run on the Arduino (I2CTest - http://playground.arduino.cc/Main/I2cScanner).

GND JP4 / 3 A GND

GND JP4 / 4 A GND

______________________________________________________________________________________ SwitchDoc Labs, LLC, 20089 E Glenbrook Ave,, Liberty Lake, Washington 99016 - [email protected]

Version 1.1 - Page � of �15 16

Page 16: Introduction - SwitchDoc Labs Blog€¦ · Introduction This board is an inexpensive Grove I2C controlled 8 pin GPIO Extender Board for the Raspberry Pi, Arduino and the ESP8266

Grove Digital Extender

0059-GRVDE-DSBT/SF

P r o d u c t S p e c i f i c a t i o n

Running the test results from the Grove Digital Extender are below on the Raspberry Pi:

pi@RPi3:~/SDL_Pi_GroveDigitalExtender $ sudo python SDL_Pi_GroveDigitalExtender_Test.py

Test SDL_Pi_GroveDigitalExtender Version 1.0 - SwitchDoc Labs

Sample uses 0x21 I2C Address Program Started at:2016-05-15 00:20:02

----------------- setDirect channel = 0x1 oldDirectionReg= 0xff newDirectionReg= 0xfe setDirect channel = 0x4 oldDirectionReg= 0xfe newDirectionReg= 0xfa ('GPIO Value =', 1) ---------------- ++++++++++++++ ('GPIO Value =', 0) ----------------

++++++++++++++ ('GPIO Value =', 0) ----------------

Next, here are the results of the Grove Digital Extender test on the Arduino. This test blinks the D0 and D2 LEDs:

-------------------------- SDL_Arduino_GroveDigitalExtender_Test Version 1.1 ---------------- ++++++++++++++ GPIO Value =1 ---------------- ----------------

______________________________________________________________________________________ SwitchDoc Labs, LLC, 20089 E Glenbrook Ave,, Liberty Lake, Washington 99016 - [email protected]

Version 1.1 - Page � of �16 16