lc709203f - Driver for LC709203F battery fuel gauge

group lc709203f

LC709203F Battery Fuel Gauge driver.

Defines

LC709203F_REG_BEFORE_RSOC

Initialize before RSOC.

LC709203F_REG_THERMISTOR_B

Read/write thermistor B.

LC709203F_REG_INITIAL_RSOC

Initialize RSOC calculation.

LC709203F_REG_CELL_TEMPERATURE

Read/write batt temperature.

LC709203F_REG_CELL_VOLTAGE

Read batt voltage.

LC709203F_REG_CURRENT_DIRECTION

Read/write current direction.

LC709203F_REG_APA

Read/write Adjustment Pack Application.

LC709203F_REG_APT

Read/write Adjustment Pack Thermistor.

LC709203F_REG_RSOC

Read state of charge.

LC709203F_REG_CELL_ITE

Read batt indicator to empty.

LC709203F_REG_IC_VERSION

Read IC version.

LC709203F_REG_CHANGE_PARAMETER

Set the battery profile.

LC709203F_REG_ALARM_LOW_RSOC

Alarm on percent threshold.

LC709203F_REG_ALARM_LOW_VOLTAGE

Alarm on voltage threshold.

LC709203F_REG_IC_POWER_MODE

Sets sleep/power mode.

LC709203F_REG_STATUS_BIT

Temperature obtaining method.

LC709203F_REG_NUM_PARAMETER

Batt profile code.

Enums

enum lc709203f_temp_mode_t

Battery temperature source.

Values:

enumerator LC709203F_TEMP_MODE_I2C
enumerator LC709203F_TEMP_MODE_THERMISTOR
enum lc709203f_power_mode_t

Chip power state.

Values:

enumerator LC709203F_POWER_MODE_OPERATIONAL
enumerator LC709203F_POWER_MODE_SLEEP
enum lc709203f_direction_t

Values:

enumerator LC709203F_DIRECTION_AUTO
enumerator LC709203F_DIRECTION_CHARGE
enumerator LC709203F_DIRECTION_DISCHARGE
enum lc709203f_battery_profile_t

Values:

enumerator LC709203F_BATTERY_PROFILE_0
enumerator LC709203F_BATTERY_PROFILE_1

Functions

esp_err_t lc709203f_init_desc(i2c_dev_t *dev, i2c_port_t port, gpio_num_t sda_gpio, gpio_num_t scl_gpio)

Initialize device descriptor.

Parameters
  • dev[in] Device descriptor

  • port[in] I2C port number

  • sda_gpio[in] GPIO pin number for SDA

  • scl_gpio[in] GPIO pin number for SCL

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_free_desc(i2c_dev_t *dev)

Free device descriptor.

Parameters

dev[in] Device descriptor

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_before_rsoc(i2c_dev_t *dev)

Executes RSOC initialization with sampled maximum voltage when 0xAA55 is set.

Parameters

dev[in] Device descriptor

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_initial_rsoc(i2c_dev_t *dev)

Executes RSOC initialization when 0xAA55 is set.

Parameters

dev[in] Device descriptor

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_get_alarm_low_rsoc(i2c_dev_t *dev, uint8_t *rsoc)

Get alarm low rsoc (% unit)

Note

Disable alarm setting RSOC as 0 (0x0000) Enable alarm setting RSOC in

Parameters
  • dev[in] Device descriptor

  • rsoc[out] RSOC value (%)

Returns

ESP_INVALID_ARG null dev or rsoc out of range 0-100 ESP_OK on success

esp_err_t lc709203f_get_alarm_low_voltage(i2c_dev_t *dev, uint16_t *voltage)

Get alarm low voltage (mV unit)

Parameters
  • dev[in] Device descriptor

  • voltage[out] Voltage value (mV)

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_get_apa(i2c_dev_t *dev, uint8_t *apa)

Get APA (adjustment pack application)

Parameters
  • dev[in] Device descriptor

  • apa[out] Current APA value

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_get_apt(i2c_dev_t *dev, uint16_t *apt)

Get APT (adjustment pack thermistor)

Parameters
  • dev[in] Device descriptor

  • apt[out] Current APT value

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_get_battery_profile(i2c_dev_t *dev, lc709203f_battery_profile_t *profile)

Get battery profile.

Parameters
  • dev[in] Device descriptor

  • profile[out] Current profile

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_get_battery_profile_code(i2c_dev_t *dev, uint16_t *code)

Get battery profile code.

Parameters
  • dev[in] Device descriptor

  • code[out] Current profile code. 0x3001 or 0x0504 only.

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_get_cell_ite(i2c_dev_t *dev, uint16_t *ite)

Get ITE (indicator to empty) “RSOC (%) on 0-1000 scale”.

Parameters
  • dev[in] Device descriptor

  • ite[out] Current RSOC value

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_get_cell_temperature(i2c_dev_t *dev, float *temperature)

Get cell temperature in ºK.

Min. unit is 0.1K

Note

Conversion ºK -> ºC = ºK + 273 Conversion ºC -> ºK = ºK + 273 Typical values: 0ºC -> 0x0AAC 25ºC -> 0x0BA6 (default)

Parameters
  • dev[in] Device descriptor

  • temperature[out] Current temperature

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_get_cell_temperature_celsius(i2c_dev_t *dev, float *temperature)

Get cell temperature in ºC.

Parameters
  • dev[in] Device descriptor

  • temperature[out] Current temperature

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_get_cell_voltage(i2c_dev_t *dev, uint16_t *voltage)

Get cell voltage.

Parameters
  • dev[in] Device descriptor

  • voltage[out] Current voltage

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_get_direction(i2c_dev_t *dev, lc709203f_direction_t *direction)

Set current direction.

Parameters
  • dev[in] Device descriptor

  • direction[out] Current direction

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_get_ic_version(i2c_dev_t *dev, uint16_t *ic_version)

Get ID number of an IC.

Parameters
  • dev[in] Device descriptor

  • ic_version[out] IC ID number

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_get_power_mode(i2c_dev_t *dev, lc709203f_power_mode_t *mode)

Get power mode.

Parameters
  • dev[in] Device descriptor

  • mode[out] Power mode

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_get_rsoc(i2c_dev_t *dev, uint16_t *rsoc)

Get RSOC (%) on 0-100 scale.

Parameters
  • dev[in] Device descriptor

  • rsoc[out] Current RSOC value

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_get_temp_mode(i2c_dev_t *dev, lc709203f_temp_mode_t *mode)

Get temperature mode.

Parameters
  • dev[in] Device descriptor

  • mode[out] Temperature obtaining mode

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_get_thermistor_b(i2c_dev_t *dev, uint16_t *value)

Get B-constant of the thermistor to be measured.

Parameters
  • dev[in] Device descriptor

  • value[out] B-constant value

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_set_alarm_low_rsoc(i2c_dev_t *dev, uint8_t rsoc)

Set alarm low rsoc (% unit)

Note

Disable alarm setting RSOC as 0 (0x0000) Enable alarm setting RSOC in

Parameters
  • dev[in] Device descriptor

  • rsoc[in] RSOC value (%)

Returns

ESP_INVALID_ARG null dev or rsoc out of range 0-100 ESP_OK on success

esp_err_t lc709203f_set_alarm_low_voltage(i2c_dev_t *dev, uint16_t voltage)

Set alarm low voltage (mV unit)

Parameters
  • dev[in] Device descriptor

  • voltage[in] Voltage value (mV)

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_set_apa(i2c_dev_t *dev, uint8_t apa)

Set APA (adjustment pack application)

Parameters
  • dev[in] Device descriptor

  • value[in] Value to set

Returns

ESP_OK on success

esp_err_t lc709203f_set_apt(i2c_dev_t *dev, uint16_t apt)

Set APA (adjustment pack thermistor)

Parameters
  • dev[in] Device descriptor

  • value[in] Value to set

Returns

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_set_battery_profile(i2c_dev_t *dev, lc709203f_battery_profile_t profile)

Set battery profile.

Parameters
  • dev[in] Device descriptor

  • profile[in] Current profile

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_set_cell_temperature(i2c_dev_t *dev, float temperature)

Set cell temperature in ºK.

Min. unit is 0.1ºK

Note

Conversion ºK -> ºC = ºK - 273 Conversion ºC -> ºK = ºK + 273 Typical values: 0ºC -> 0x0AAC 25ºC -> 0x0BA6 (default)

Parameters
  • dev[in] Device descriptor

  • temperature[in] Temperature to set

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_set_cell_temperature_celsius(i2c_dev_t *dev, float temperature)

Set cell temperature in ºC.

Parameters
  • dev[in] Device descriptor

  • temperature[in] Temperature to set

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_set_current_direction(i2c_dev_t *dev, lc709203f_direction_t direction)

Set current direction.

Parameters
  • dev[in] Device descriptor

  • direction[in] Current direction

Returns

ESP_INVALID_ARG null dev. In I2C mode, temperature not in range 0x09E4-0x0D04 () ESP_OK on success

esp_err_t lc709203f_set_power_mode(i2c_dev_t *dev, lc709203f_power_mode_t mode)

Set power mode.

Parameters
  • dev[in] Device descriptor

  • mode[in] Power mode

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_set_temp_mode(i2c_dev_t *dev, lc709203f_temp_mode_t mode)

Set temperature mode.

Parameters
  • dev[in] Device descriptor

  • mode[in] Temperature obtaining mode

Returns

ESP_INVALID_ARG null dev ESP_OK on success

esp_err_t lc709203f_set_thermistor_b(i2c_dev_t *dev, uint16_t value)

Set B-constant of ther thermistor to be measured.

Parameters
  • dev[in] Device descriptor

  • value[in] B-constant value

Returns

ESP_INVALID_ARG null dev ESP_OK on success