nRF52840DK SPI Issues

I was in the process of evaluating a driver when I noticed I2C communication was not working as expected.  I put a probe on the relevant pins and noticed the Voltage on my SCL pin looks like it is misconfigured or being pulled down by something.

SPI Bus Capture

I am using the nRF52840DK for testing and ran this without nothing attached to verify none of my wiring was the cause.  The overlay file I am using is very simple it is just:

&arduino_i2c {
	status = "okay";
	bmp585@47 {
		compatible = "bosch,bmp585";
		int-gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>;
		status = "okay";
		reg = <0x47>;
	};

	clock-frequency = <I2C_BITRATE_STANDARD>;
};

This means that my I2C bus should be: SCL = P0.26 & SDA = P0.27.  If anyone has seen this behavior before or has any suggestions let me know.

Parents
  • Are either of those pins used for the NFC? It's caught me out before - you need to disable with the relevant fuse flag.

    Potential daft question is the pin connected to anything - is that driving it low?

    I don't know what that config abstraction means but I2C requires pull-ups and disconnected GPIO_HIGH driver. GPIO_ACTIVE_HIGH suggests it's driven high which is wrong?

Reply
  • Are either of those pins used for the NFC? It's caught me out before - you need to disable with the relevant fuse flag.

    Potential daft question is the pin connected to anything - is that driving it low?

    I don't know what that config abstraction means but I2C requires pull-ups and disconnected GPIO_HIGH driver. GPIO_ACTIVE_HIGH suggests it's driven high which is wrong?

Children
  • Neither of those pins should be used for NFC as the nRF52840DK has NFC pins on P0.09 & P0.10.

    For this test I have nothing connected for this exact reason to make sure nothing is pulled up.

    The line I believe you are referencing is:

    int-gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>;

    This line is used to configure the interrupt pin of the BMP585 device.  The I2C pins you are referencing are defined behind the abstraction you mentioned.  You can see the actual definitions here.

Related