I2C device unable to read/write to the device. Getting a return value of -5

I am experiencing an issue with the I2C device on the nRF5340(our custom board) where it is unable to read/write to the sensor, resulting in a return value of -5.(EIO)

Details:

  • SDK Version: v2.6.1
  • Custom Board : nrf5340-nrf7002
  • Temperature sensor : SHT302x

Build Configuration in vs code:  board = nrf7002dk-nrf5340-cpuapp-ns

  • prj.conf:

          CONFIG_I2C=y

          CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
          
           CONFIG_PSA_WANT_ALG_HMAC=y

I2C project file

#include <zephyr/sys/printk.h>
#include <stdio.h>
#include <string.h>
#include <zephyr/drivers/i2c.h>
#include <zephyr/kernel.h>

#define I2C_INST DT_NODELABEL(arduino_i2c)
#define DEVICE_ADDRESS 0x44
#define DEVICE_ID_COMMAND_MSB 0x37
#define DEVICE_ID_COMMAND_LSB 0x80

const struct device *const i2c = DEVICE_DT_GET(I2C_INST);

int main(void)
{
	
	bool retValue = false;
	printk("Hello World! %s\n", CONFIG_BOARD);
	static const unsigned char string[] = "Hello world!";
	int len = strlen((const unsigned char *) &string);

	if (!device_is_ready(i2c)) {
		printk("i2c is not ready!\n");
	} else {
		printk("i2c is ready\n");
	}

	uint8_t command[2] = {0};
	command[0] = DEVICE_ID_COMMAND_MSB;
	command[1] = DEVICE_ID_COMMAND_LSB;

	uint8_t command2[2] = {0};

	int transferedData = 0;

	transferedData = i2c_write_read(i2c, 0x44, &command, 2, &command2, 3);
	printk("transferedData %d\n", transferedData);

	return 0;
}

Parents Reply Children
No Data
Related