belimawr
Posts: 3
Joined: Mon Aug 12, 2013 11:15 am

SPI with logic level converter does not seems to work well.

Sat Nov 16, 2013 10:57 pm

I got a Humble Pi prototyping board and build a 10-channels logic level converter using this schematic: Image

The level converter is connected directly to all communication pins: SPI, I2C, UART and a few other GPIOs.

Everything seems to be working well (I tested the channels with a multimeter and it is working, as well as I tested the I2C using na MPC23008) .

However when I try to use my nRF24L01+ connecting it on the 3.3V side (the 5V side I'm going to use to programme some AVRs later on) I can communicate with it, but the data is getting corrupted and the nRF24L01+ receives the wrong settings...

When I remove the Humble Pi with the level converter and connect my nRF24L01+ directly to the GPIOs it works perfectly.

What might be the problem? Is it because the SPI pins now have a 10K pull-up resistor?

What kind of tests can I do to figure out the problem?


I'm using an Raspberry Pi Model A bought from CPC Farnell less than one month ago with Raspbian.

techpaul
Posts: 1512
Joined: Sat Jul 14, 2012 6:40 pm
Location: Reading, UK
Contact: Website

Re: SPI with logic level converter does not seems to work we

Wed Nov 20, 2013 4:10 pm

Use chips like TI TXB0108 for SPI, UART and GPIO generally, then TI TXS0104 for I2C lines they have to be done differently for best performance.

For example boards see Some GPIO boards with all lines 5V translated

These devices work well and can provide isolation if you have an external 5V power source, so if either side power drops the two sides are isolated.
Just another techie on the net - For GPIO boards see http:///www.facebook.com/pcservicesreading
or http://www.pcserviceselectronics.co.uk/pi/

User avatar
Gert van Loo
Posts: 2487
Joined: Tue Aug 02, 2011 7:27 am
Contact: Website

Re: SPI with logic level converter does not seems to work we

Thu Nov 21, 2013 8:02 pm

You may have a dynamic problem.
The only way to find out is to put a scope on it whilst using it.

Return to “Interfacing (DSI, CSI, I2C, etc.)”