PCA9517 I2c Translator A Perfect Companion For Raspberry Pi Hardware Add-ons

The rig pictured above works as an Internet connected temperature sensor which sends [Zaion] an email with a graph of the change over time. This in itself is interesting, but one part in particular caught our eye. He’s using an i2c temperature sensor , and we think the PCA9517 Level-Translating I2C Bus Repeater that makes it possible is a perfect match for the RPi.

This is a Texas Instruments part. You can find more about it from the company’s product page. The key words in the name of the chip are ‘Level-Translating’. This has two bus connections, each with variable voltage levels. On side A the bus can be 0.9V to 5.5V. On side B the bus range is 2.7V to 5.5V. Since the Raspberry Pi I/O pins operate at 3.3V this could connect to the B side, give you the ability to interface with i2c parts rated for lower or higher voltages. This is especially handy for folks who started with the Arduino and own mostly 5V compliant prototyping hardware.

The part comes in a SOIC package, which you can easily hand solder and will costs around $1 depending on the supplier.

10 thoughts on “PCA9517 I2c Translator A Perfect Companion For Raspberry Pi Hardware Add-ons

  1. The PCA9517 chip seems nice, but it’s not actually serving any function here.

    No voltage translation is necessary, as the temperature sensor also operates at 3.3V.

    As for the long bus length and high capacitance, I2C is inherently tolerant of that; all you have to do is clock the data slower. With one temperature sample every 20 seconds, a lower clock speed is hardly a limitation.

  2. I hate to break it to you guys, but i’ve been doing i2c with 5v and just wiring it on, and it hasn’t done any damage that i’ve noticed. They saaay you shouldn’t, but I have my doubts…

  3. Shouldn’t 3.3V i2c work just fine with 5V parts?
    i2c pins are open collector, so their only connection to +V is the pull-up resistor.

    For _most_ parts, input high is considered around 0.6*Vcc, so for a 5V part that’s around 3.0V.

    That means you can pull your whole i2c bus to the 3.3V supply of the Pi, and use both 3.3V and 5V parts just fine (but don’t do it the other way round, that could be bad)

    1. I haven’t tried it, but sounds reasonable. I’d expect it could require lower clock rates, as logic high would be near the top of the RC charge curve; where R is the pull-up resistor and C is the bus capacitance.

      1. I should have mentioned I’m doing exactly this with my Pi and a 5V attiny and LCD.

        You’re probably right about clock speed (I honestly have no idea what I’m running at), the attiny I’m using registers high a little over 2V, so should be fine at reasonably high speeds

    1. Maybe you have a power issue. Do you use a powered hub? I had to short the usb fuses and add a capacitor in order to get it work. Please check the voltage on the wifi dongle if it drop below 5V during connection/trasmission.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.