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_main, I2C_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_main, ACCEL_SA0_PIN_MAIN, GPIO_OUTPUT);
err2 += gpio_pin_configure(accel_gpio_main, ACCEL_CS_PIN_MAIN, GPIO_OUTPUT);
if (err2)
{
LOG_DBG("ERROR: can not configure gpio pin");
}
gpio_pin_set(accel_gpio_main, ACCEL_SA0_PIN_MAIN, 0);
gpio_pin_set(accel_gpio_main, ACCEL_CS_PIN_MAIN, 1);
k_sleep(K_MSEC(500));
for (uint8_t i = 0x04; i <= 0x77; i++) {
k_sleep(K_MSEC(100));
if (i2c_reg_read_byte(i2c_master_device_main, i,
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