This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

How to use GPIO pins on 3.3V ?

I am trying to communicate with PN7150 from nRF52840 DK using I2C pins.

PN7150 needs 3.3V and nRF52840 is supplying 2.9V.

I am able to read PN7150 on Arduino Mega but I fail when trying to read through nRF52840.

I believe the problem is due to nRF52840 supplying less than 3.3V.

How can I change output voltage on nRF52840 DK ?

Thank You

Parents
  • I believe the problem is due to nRF52840 supplying less than 3.3V

    That's possible, but I'd have thought that 2.9 should generally be close enough to 3.3 for most cases.

    What have you done to confirm that it is actually the low voltage that's causing the problem(s) ?

  • I tried scanning PN7150 on Arduino Mega supplying voltage through Arduino's 3.3V pin. Everything worked fine.

    I tried scanning other devices on nRF52840 such as SSD1306 OLED. They also showed up fine.

    For some reason I am having trouble scanning for PN7150.

  • Still not entirely conclusive that it's the voltage.

    Have you looked at the lines with an oscilloscope to see what's going on?

    Check out the nRF52840 Product Specification for details of its power supply restrictions & requirements.

    Check out the nRF52840 DK User Guide and Schematics for details of the power supply arrangements on the board.

    I2C voltage translators are available ...

  • I don't have access to an oscilloscope. I am currently reading User Guide and Schematics.

    I was wondering if there was a method to increase the output voltage on nRF52840 DK with help of some code ? Maybe I can try that first before moving to other options.

  • I was wondering if there was a method to increase the output voltage on nRF52840 DK with help of some code ?

    No - that'll be a hardware change.

  • The nRF52840 absolute maximum voltage on an IO pin is VDD + 0.3V

    https://infocenter.nordicsemi.com/topic/ps_nrf52840/abs_max_ratings.html?cp=3_0_0_8

    So, if your VDD is 2.9V, that's 3.2V max.

    Since I2C is open-drain, you could disconnect the pullups from the DK's VDD, and pull up to 3.2V instead.

    It might be easier to use different pins - rather than try to remove pullups ...

  • I think it's actually possible by using the nRF52840 in high voltage mode and changing the UICR REGOUT0 register to output 3,3 V on VDD. This changes all GPIO ports to 3,3 V.

    infocenter.nordicsemi.com/index.jsp

Reply Children