User Tools

Site Tools


digix:tutorials:levelshifter

DigiX Level Shifter Shield

Overview

The Level Shifting Shield allows you to use older Arduino shields that are not 3.3V compatible - also know as 1.0 pinout or R3 compatible shields. It provides level shifting on all standard Arduino pins, allows you to reroute the SPI and I2C pins, and properly level shifts for those protocols as well. The DigiX Level Shifting Shield can also be used with the Arduino Due, UDOO, Spark Core, Maple, etc to allow them to use legacy Arduino shields.

The Issue

Boards such as the DigiX and Arduino Due are still relatively new, and there are few shields that are compatible. The microcontrollers on the older Arduino and Arduino compatible boards work at 5V, whereas the microcontrollers on the new boards operate at 3V. If you try to use a shield designed for one of these older 5V logic boards (and it is not designed for 5V AND 3V usage), it most likely won't work with (and will most likely destroy!!) these newer and lower-powered boards.

The Solution

The DigiX Level Shifter Shield, which converts the 5V signals of the shield into the 3V signals that the DigiX and Arduino Due require (and also converts their 3V signals into the 5V signals the shields require). However, if the shield has an IOREF pin, and has been properly designed, then the DigiX Level Shifter Shield is not required.

Note: The Level Shifter shield is not capable of high current output and is not suitable for driving LEDs and similar.

Usage

Plug the shield into the DigiX (or Due, etc). Plug shield that you want to convert into Level Shifter shield - or connect other circuit/devices.

Decide which pins need to be configured for your usage.

Digital Pin D0-13 do not need to be set up unless 11-13 is used as SPI.

Analog Pins should be set to Digital Input/Output (OUTPUT position on the jumpers) or Analog Input (INPUT position).

For example to use Pin A0 as an analog input set the A0 jumper as follows - which will set up the A0 pin (highlighted) as an analog input.

To use it as a digital output or input set it as follows:

SPI: SPI can be routed to either the 11-13 pins, or to the ICSP header. In both cases it will be level shifted.

To route to D11-D13 set the jumpers as follows and use the highlighted pins:

To route to the ICSP header:

I2C: The I2C pins can be routed to the A4,A5 pins or to the SDA/SCL pins.

To route to the SDA/SCL pins set the jumpers as follows:

To route to A4/A5 set as follows - note that A4/A5 jumpers must be set to output:

NOTE! The I2C pins on the level shifter belong to the second I2C bus on the DigiX - so libraries/code that is using I2C through the level shifter must use Wire1 not Wire (ex: Wire1.begin(); instead of Wire.begin();) this means you will likely have to alter the libraries slightly.

digix/tutorials/levelshifter.txt · Last modified: 2014/02/02 02:32 by digistump