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

error i2c nrf9160

Hi,

I am using nrf9160 to communicate with LIS2DHTR.

I use I2C_2

In file nrf9160dk_nrf9160_common.dts in ncs\v1.4.0\zephyr\boards\arm\nrf9160dk_nrf9160

&i2c2 { 
       compatible = "nordic,nrf-twim";
       status = "okay";
       sda-pin = <11>;
       scl-pin = <12>;
};

my prj.conf

# I2C
CONFIG_I2C=y
CONFIG_I2C_NRFX=y
CONFIG_I2C_2=y

my project:

uint8_t id;
        i2c_master_device_main = device_get_binding(DEV_NAME_I2C_2);
        if (i2c_master_device_main == NULL) {
                LOG_ERR("Failed to get pointer to device DEV_NAME_I2C_2");
        }
        i2c_configure(i2c_master_device_mainI2C_SPEED_SET(I2C_SPEED_FAST));
        accel_gpio_main = device_get_binding("GPIO_0");
        if (accel_gpio_main == NULL)
        {
                LOG_DBG("ERROR: can not get GPIO_0 bindings");
        }
        uint8_t err2;
        /*Set output SA0 = 0 -- > address accel = 0x18*/
        err2 += gpio_pin_configure(accel_gpio_mainACCEL_SA0_PIN_MAIN, GPIO_OUTPUT);
        err2 += gpio_pin_configure(accel_gpio_mainACCEL_CS_PIN_MAIN, GPIO_OUTPUT);
        if (err2)
        {
                LOG_DBG("ERROR: can not configure gpio pin");
        }
        gpio_pin_set(accel_gpio_mainACCEL_SA0_PIN_MAIN0);
        gpio_pin_set(accel_gpio_mainACCEL_CS_PIN_MAIN1);
        k_sleep(K_MSEC(500));

        for (uint8_t i = 0x04i <= 0x77i++) {

                k_sleep(K_MSEC(100));
                if (i2c_reg_read_byte(i2c_master_device_maini,
                        0x0F, &id) < 0) {
                        LOG_ERR("Failed to read chip ID.");
                }
                else LOG_DBG("id = %x"id);
        }
But when i run, it happens error
Please help me, thanks
Related