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

How can I read the value from Fuel Gauge to nRF9160 using the i2c_scanner sample?

Hi All 

I am using nRF9160 and read a value from Fuel Gauge IC (LC709203f) via I2C so I use i2c_scaneer sample

so I just a little bit confused what should I change in this I2C_Scanner sample

this is the address of fuel gauge ic read 0x16 and writes address is 0x17

I attach this code

#include <nrf9160.h>
#include <zephyr.h>
#include <misc/printk.h>
#include <i2c.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>


#include <gpio.h>

#define I2C_ACCEL_WRITE_ADDR 0x16
#define I2C_ACCEL_READ_ADDR 0x17

struct device * i2c_accel;
uint8_t WhoAmI = 0u;


//static struct device  *led_port;

#ifdef CONFIG_SOC_NRF9160
#define I2C_DEV "I2C_3"
#else
#define I2C_DEV "I2C_1"
#endif


void main(void)
{
	struct device *i2c_dev;
	
	k_sleep(500);

	printk("Starting i2c scanner...\n");

	i2c_dev = device_get_binding(I2C_DEV);
	if (!i2c_dev) {
		printk("I2C: Device driver not found.\n");
		return;
	}
	
	uint8_t error = 0u;
	
	i2c_configure(i2c_dev, I2C_SPEED_SET(I2C_SPEED_STANDARD));


	printk("Value of NRF_TWIM3_NS->PSEL.SCL: %d \n",NRF_TWIM3_NS->PSEL.SCL);
	printk("Value of NRF_TWIM3_NS->PSEL.SDA: %d \n",NRF_TWIM3_NS->PSEL.SDA);
	printk("Value of NRF_TWIM3_NS->FREQUENCY: %d \n",NRF_TWIM3_NS->FREQUENCY);
	printk("26738688 -> 100k\n");
	
	u8_t i = 0x17;
	
		struct i2c_msg msgs[1];
		u8_t dst = 1;

		/* Send the address to read from */
		msgs[0].buf = &dst;
		msgs[0].len = 1U;
		msgs[0].flags = I2C_MSG_WRITE | I2C_MSG_STOP;
		
		error = i2c_transfer(i2c_dev, &msgs[0], 1, i);
		if (error == 0) {
			printk("0x%2x FOUND\n", i);
		}
		else {
			//printk("error %d \n", error);
		}
		
}
it is overlay file


&i2c3 {
	status = "ok";
	sda-pin = < 30 >;
	scl-pin = < 31 >;
    clock-frequency = <I2C_BITRATE_STANDARD>;  
};
prj.config


CONFIG_TRUSTED_EXECUTION_NONSECURE=y
#CONFIG_SERIAL=y
#CONFIG_UART_INTERRUPT_DRIVEN=y
CONFIG_I2C=y
CONFIG_I2C_NRFX=y
CONFIG_I2C_3=y
CONFIG_I2C_3_NRF_TWIM=y

CONFIG_NEWLIB_LIBC=y


#CONFIG_LOG=y
#CONFIG_I2C_LOG_LEVEL_DBG=y
#CONFIG_LOG_BACKEND_UART=y
#CONFIG_I2C_INIT_PRIORITY=60

Parents Reply Children
Related