nRF54L15 I2C on NFC pins not working

Hello,

I am able to reproduce this issue in a blank project where CONFIG_I2C=y and CONFIG_I2C_SHELL=y (and dependencies) are configured on an nRF54L15.

When I use P1.3 and P1.2 for SDA and SCL respectively, there are no signal assertions on the PCA10156 nRF54L15 DK. The pins work ok as manually asserted GPIOs, but not for I2C. I am sending a test I2C write via `i2c write i2c30 0x6b 0x00 1`. If I switch to pins P1.4 and P1.5, I can see the data on a scope.

I have ensured the following:

1) NFC is disabled and the pins are configured for GPIO

&uicr {
    nfct-pins-as-gpios;
};

&nfct {
    status = "disabled";
};

2) I2C is configured for the pins

/* Enable the I2C bus */
&i2c30 {
    status = "okay";
    clock-frequency = <I2C_BITRATE_STANDARD>; /* start at 100 kHz */
    pinctrl-0 = <&i2c30_default>;
    pinctrl-1 = <&i2c30_sleep>;
    pinctrl-names = "default", "sleep";
};

&pinctrl {
    i2c30_default: i2c30_default {
        group1 {
            psels = <NRF_PSEL(TWIM_SDA, 1, 3)>,
                    <NRF_PSEL(TWIM_SCL, 1, 2)>;
        };
    };

    i2c30_sleep: i2c30_sleep {
        group1 {
            psels = <NRF_PSEL(TWIM_SDA, 1, 3)>,
                    <NRF_PSEL(TWIM_SCL, 1, 2)>;
            low-power-enable;
        };
    };
};

3) I have bridged R33 and R34 on the DK to ensure the GPIO headers are connected to the pins.

Please let me know if there is some additional configuration that must be completed to use I2C on P1.2 and P1.3.

Thanks.

Parents
  • There seem to be some port limitations, like using I2C20 + UART20 + limitations on what pins are available based on domain.

    I was specifically not aware that P1 usage for I2C was not possible with I2C30. I moved it to I2C21 (to keep standard USB UART functional) and found the rise times were problematic. I had to also remove R21 and R22 on the devkit, to disconnect the NFC capacitors. They were 300 pF and I2C should be fine up to 400 pF on 100 KHz but it seemed to be problematic for the nRF54L15.

    Now it's working fine on P1.2 and P1.3, and detecting other I2C devices on the bus.

Reply
  • There seem to be some port limitations, like using I2C20 + UART20 + limitations on what pins are available based on domain.

    I was specifically not aware that P1 usage for I2C was not possible with I2C30. I moved it to I2C21 (to keep standard USB UART functional) and found the rise times were problematic. I had to also remove R21 and R22 on the devkit, to disconnect the NFC capacitors. They were 300 pF and I2C should be fine up to 400 pF on 100 KHz but it seemed to be problematic for the nRF54L15.

    Now it's working fine on P1.2 and P1.3, and detecting other I2C devices on the bus.

Children
No Data
Related