battmon4  2.0.0.0
battmon4.h
Go to the documentation of this file.
1 /****************************************************************************
2 ** Copyright (C) 2020 MikroElektronika d.o.o.
3 ** Contact: https://www.mikroe.com/contact
4 **
5 ** Permission is hereby granted, free of charge, to any person obtaining a copy
6 ** of this software and associated documentation files (the "Software"), to deal
7 ** in the Software without restriction, including without limitation the rights
8 ** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 ** copies of the Software, and to permit persons to whom the Software is
10 ** furnished to do so, subject to the following conditions:
11 ** The above copyright notice and this permission notice shall be
12 ** included in all copies or substantial portions of the Software.
13 **
14 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
16 ** OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18 ** DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
19 ** OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20 ** USE OR OTHER DEALINGS IN THE SOFTWARE.
21 ****************************************************************************/
22 
28 #ifndef BATTMON4_H
29 #define BATTMON4_H
30 
31 #ifdef __cplusplus
32 extern "C"{
33 #endif
34 
35 #include "drv_digital_out.h"
36 #include "drv_digital_in.h"
37 #include "drv_i2c_master.h"
38 
59 #define BATTMON4_REG_A 0x01
60 #define BATTMON4_REG_B 0x02
61 #define BATTMON4_REG_C 0x03
62 #define BATTMON4_REG_D 0x04
63 #define BATTMON4_REG_E 0x05
64 #define BATTMON4_REG_F 0x06
65 #define BATTMON4_REG_G 0x07
66 #define BATTMON4_REG_H 0x08
67  // battmon4_reg
69 
84 #define BATTMON4_TEMPERATURE_LSB 0.784
85 #define BATTMON4_TEMPERATURE_OFFSET 41.0
86 #define BATTMON4_TEMPERATURE_RESOLUTION 0x00FF
87 #define BATTMON4_VOLTAGE_LSB 1.465
88 #define BATTMON4_VOLTAGE_RESOLUTION 0x0FFF
89 
95 #define BATTMON4_DEVICE_ADDRESS 0x64
96  // battmon4_set
98 
113 #define BATTMON4_MAP_MIKROBUS( cfg, mikrobus ) \
114  cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
115  cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
116  cfg.bok = MIKROBUS( mikrobus, MIKROBUS_AN ); \
117  cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
118  // battmon4_map // battmon4
121 
126 typedef struct
127 {
128  // Input pins
129  digital_in_t bok;
130  digital_in_t int_pin;
132  // Modules
133  i2c_master_t i2c;
135  // I2C slave address
136  uint8_t slave_address;
138 } battmon4_t;
139 
144 typedef struct
145 {
146  pin_name_t scl;
147  pin_name_t sda;
149  pin_name_t bok;
150  pin_name_t int_pin;
152  uint32_t i2c_speed;
153  uint8_t i2c_address;
156 
161 typedef enum
162 {
164  BATTMON4_ERROR = -1
165 
167 
184 
200 
214 err_t battmon4_write_register ( battmon4_t *ctx, uint8_t reg, uint16_t data_in );
215 
229 err_t battmon4_read_register ( battmon4_t *ctx, uint8_t reg, uint16_t *data_out );
230 
243 err_t battmon4_get_die_temperature ( battmon4_t *ctx, float *temperature );
244 
258 err_t battmon4_get_batt_in_voltage ( battmon4_t *ctx, float *v_ipeak_on, float *v_ipeak_off );
259 
273 err_t battmon4_get_batt_out_voltage ( battmon4_t *ctx, float *v_ipeak_on, float *v_ipeak_off );
274 
284 
294 
295 #ifdef __cplusplus
296 }
297 #endif
298 #endif // BATTMON4_H
299  // battmon4
301 
302 // ------------------------------------------------------------------------ END
battmon4_cfg_t
BATT-MON 4 Click configuration object.
Definition: battmon4.h:145
battmon4_cfg_t::i2c_address
uint8_t i2c_address
Definition: battmon4.h:153
battmon4_get_die_temperature
err_t battmon4_get_die_temperature(battmon4_t *ctx, float *temperature)
BATT-MON 4 get die temperature function.
battmon4_t::i2c
i2c_master_t i2c
Definition: battmon4.h:133
battmon4_t::slave_address
uint8_t slave_address
Definition: battmon4.h:136
battmon4_cfg_t::int_pin
pin_name_t int_pin
Definition: battmon4.h:150
battmon4_t::bok
digital_in_t bok
Definition: battmon4.h:129
battmon4_init
err_t battmon4_init(battmon4_t *ctx, battmon4_cfg_t *cfg)
BATT-MON 4 initialization function.
battmon4_cfg_t::sda
pin_name_t sda
Definition: battmon4.h:147
battmon4_return_value_t
battmon4_return_value_t
BATT-MON 4 Click return value data.
Definition: battmon4.h:162
battmon4_get_batt_in_voltage
err_t battmon4_get_batt_in_voltage(battmon4_t *ctx, float *v_ipeak_on, float *v_ipeak_off)
BATT-MON 4 get batt in voltage function.
battmon4_cfg_t::i2c_speed
uint32_t i2c_speed
Definition: battmon4.h:152
battmon4_cfg_t::scl
pin_name_t scl
Definition: battmon4.h:146
BATTMON4_OK
@ BATTMON4_OK
Definition: battmon4.h:163
battmon4_get_int_pin
uint8_t battmon4_get_int_pin(battmon4_t *ctx)
BATT-MON 4 get int pin function.
battmon4_t
BATT-MON 4 Click context object.
Definition: battmon4.h:127
battmon4_get_bok_pin
uint8_t battmon4_get_bok_pin(battmon4_t *ctx)
BATT-MON 4 get bok pin function.
battmon4_t::int_pin
digital_in_t int_pin
Definition: battmon4.h:130
battmon4_read_register
err_t battmon4_read_register(battmon4_t *ctx, uint8_t reg, uint16_t *data_out)
BATT-MON 4 read register function.
battmon4_write_register
err_t battmon4_write_register(battmon4_t *ctx, uint8_t reg, uint16_t data_in)
BATT-MON 4 write register function.
battmon4_cfg_t::bok
pin_name_t bok
Definition: battmon4.h:149
battmon4_get_batt_out_voltage
err_t battmon4_get_batt_out_voltage(battmon4_t *ctx, float *v_ipeak_on, float *v_ipeak_off)
BATT-MON 4 get batt out voltage function.
battmon4_cfg_setup
void battmon4_cfg_setup(battmon4_cfg_t *cfg)
BATT-MON 4 configuration object setup function.
BATTMON4_ERROR
@ BATTMON4_ERROR
Definition: battmon4.h:164