This is an old revision of the document!
Table of Contents
Level conversion
When interfacing between two devices such as a Raspberry Pi with 3V3 I/O and a PICMicro running at 5V voltage level conversion is necessary. A simple method to do this on a breadboard is to use a pre-built adapter.
Two of the more popular types found at places like eBay are two channel bi-directional I2C level converters and four channel general purpose converters.
I2C converter
These devices contain two mosfets with pull-ups resistors in the arrangement specified by the Philips I2C interfacing application note (link below).
They also have an additional component which is a 3V3 LDO voltage regulator. This addition is to allow a 5V device to directly interface with a 3V3 device and also power it.
The LDO has only been tested to drive an LED and it's not known whether the LDOs present are genuine and can be relied upon.
Although marketed for I2C they can be used for anything that demands two channels of bi-directional voltage level conversion.
Pinout
3V3 OUTPUT BVCC AVCC 5V INPUT 3V3 CLOCK BSCL ASCL 5V CLOCK 3V3 DATA BSDA ASDA 5V DATA GROUND BGND AGND GROUND
There is a speed impact when using these device which have a slow rise time. For example, when using Pickle Microchip PIC ICSP it was found that raising the SLEEP configuration value to 8 was necessary.