solarenergy2  2.1.0.0
solarenergy2.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 SOLARENERGY2_H
29 #define SOLARENERGY2_H
30 
31 #ifdef __cplusplus
32 extern "C"{
33 #endif
34 
35 #include "mikrosdk_version.h"
36 
37 #ifdef __GNUC__
38 #if mikroSDK_GET_VERSION < 20800ul
39 #include "rcu_delays.h"
40 #else
41 #include "delays.h"
42 #endif
43 #endif
44 
45 #include "drv_digital_out.h"
46 #include "drv_digital_in.h"
47 #include "drv_i2c_master.h"
48 
69 #define SOLARENERGY2_REG_T_HRV_PERIOD 0x00
70 #define SOLARENERGY2_REG_T_HRV_MEAS 0x01
71 #define SOLARENERGY2_REG_T_STS_PERIOD 0x02
72 #define SOLARENERGY2_REG_T_LTS_PERIOD 0x03
73 #define SOLARENERGY2_REG_V_HRV_CFG 0x04
74 #define SOLARENERGY2_REG_HRV_CHECK_LVL 0x05
75 #define SOLARENERGY2_REG_LTS_CFG 0x06
76 #define SOLARENERGY2_REG_V_BAT_MAX_HI 0x07
77 #define SOLARENERGY2_REG_V_BAT_MAX_LO 0x08
78 #define SOLARENERGY2_REG_V_BAT_MIN_HI_DIS 0x09
79 #define SOLARENERGY2_REG_V_BAT_MIN_HI_CON 0x0A
80 #define SOLARENERGY2_REG_V_BAT_MIN_LO 0x0B
81 #define SOLARENERGY2_REG_V_APL_MAX_HI 0x0C
82 #define SOLARENERGY2_REG_V_APL_MAX_LO 0x0D
83 #define SOLARENERGY2_REG_LDO_CFG 0x0E
84 #define SOLARENERGY2_REG_PWR_CFG 0x0F
85 #define SOLARENERGY2_REG_VAUX_CFG 0x10
86 #define SOLARENERGY2_REG_VAUX_GND_CFG 0x11
87 #define SOLARENERGY2_REG_MPPT_RATIO 0x12
88 #define SOLARENERGY2_REG_EXT_CFG 0x13
89 #define SOLARENERGY2_REG_T_SLEEP_VSUP_LO 0x14
90 #define SOLARENERGY2_REG_T_SLEEP_VSUP_MID 0x15
91 #define SOLARENERGY2_REG_T_SLEEP_VSUP_HI 0x16
92 #define SOLARENERGY2_REG_T_HRV_LOW_CFG 0x17
93 #define SOLARENERGY2_REG_SPI_I2C_CFG 0x18
94 #define SOLARENERGY2_REG_PWR_MGT 0x19
95 
96 #define SOLARENERGY2_REG_SOFT_RES_WORD 0x1A
97 #define SOLARENERGY2_REG_PROTECT_KEY 0x1B
98 #define SOLARENERGY2_REG_LUX_METER_CFG 0x1C
99 #define SOLARENERGY2_REG_LUX_METER_RESULT 0x1D
100 #define SOLARENERGY2_REG_STATUS 0x22
101 #define SOLARENERGY2_REG_VLD_STATUS 0x23
102 
103 #define SOLARENERGY2_REG_EEPROM_0 0x40
104  // solarenergy2_reg
106 
121 #define SOLARENERGY2_SET_T_HRV_PERIOD_256ms 0x00
122 #define SOLARENERGY2_SET_T_HRV_PERIOD_512ms 0x01
123 #define SOLARENERGY2_SET_T_HRV_PERIOD_1sec 0x02
124 #define SOLARENERGY2_SET_T_HRV_PERIOD_2sec 0x03
125 #define SOLARENERGY2_SET_T_HRV_PERIOD_4sec 0x04
126 #define SOLARENERGY2_SET_T_HRV_PERIOD_8sec 0x05
127 #define SOLARENERGY2_SET_T_HRV_PERIOD_16sec 0x06
128 #define SOLARENERGY2_SET_T_HRV_PERIOD_32sec 0x07
129 
130 #define SOLARENERGY2_SET_T_HRV_MEAS_16ms 0x00
131 #define SOLARENERGY2_SET_T_HRV_MEAS_32ms 0x01
132 #define SOLARENERGY2_SET_T_HRV_MEAS_64ms 0x02
133 #define SOLARENERGY2_SET_T_HRV_MEAS_128ms 0x03
134 #define SOLARENERGY2_SET_T_HRV_MEAS_256ms 0x04
135 #define SOLARENERGY2_SET_T_HRV_MEAS_512ms 0x05
136 #define SOLARENERGY2_SET_T_HRV_MEAS_1sec 0x06
137 #define SOLARENERGY2_SET_T_HRV_MEAS_2sec 0x07
138 
139 #define SOLARENERGY2_SET_T_STS_PERIOD_1ms 0x00
140 #define SOLARENERGY2_SET_T_STS_PERIOD_2ms 0x01
141 #define SOLARENERGY2_SET_T_STS_PERIOD_8ms 0x02
142 #define SOLARENERGY2_SET_T_STS_PERIOD_16ms 0x03
143 #define SOLARENERGY2_SET_T_STS_PERIOD_32ms 0x04
144 #define SOLARENERGY2_SET_T_STS_PERIOD_64ms 0x05
145 #define SOLARENERGY2_SET_T_STS_PERIOD_128ms 0x06
146 #define SOLARENERGY2_SET_T_STS_PERIOD_256ms 0x07
147 
148 #define SOLARENERGY2_SET_T_LTS_PERIOD_1ms 0x00
149 #define SOLARENERGY2_SET_T_LTS_PERIOD_4ms 0x01
150 #define SOLARENERGY2_SET_T_LTS_PERIOD_16ms 0x02
151 #define SOLARENERGY2_SET_T_LTS_PERIOD_64ms 0x03
152 #define SOLARENERGY2_SET_T_LTS_PERIOD_256ms 0x04
153 #define SOLARENERGY2_SET_T_LTS_PERIOD_1sec 0x05
154 #define SOLARENERGY2_SET_T_LTS_PERIOD_4sec 0x06
155 #define SOLARENERGY2_SET_T_LTS_PERIOD_16sec 0x07
156 
157 #define SOLARENERGY2_SET_T_HRV_LOW_PERIOD_256ms 0x00
158 #define SOLARENERGY2_SET_T_HRV_LOW_PERIOD_512ms 0x01
159 #define SOLARENERGY2_SET_T_HRV_LOW_PERIOD_1sec 0x02
160 #define SOLARENERGY2_SET_T_HRV_LOW_PERIOD_2sec 0x03
161 #define SOLARENERGY2_SET_T_HRV_LOW_PERIOD_4sec 0x04
162 #define SOLARENERGY2_SET_T_HRV_LOW_PERIOD_8sec 0x05
163 #define SOLARENERGY2_SET_T_HRV_LOW_PERIOD_16sec 0x06
164 #define SOLARENERGY2_SET_T_HRV_LOW_PERIOD_32sec 0x07
165 
166 #define SOLARENERGY2_SET_T_LTS_LOW_PERIOD_2ms 0x00
167 #define SOLARENERGY2_SET_T_LTS_LOW_PERIOD_8ms 0x01
168 #define SOLARENERGY2_SET_T_LTS_LOW_PERIOD_32ms 0x02
169 #define SOLARENERGY2_SET_T_LTS_LOW_PERIOD_128ms 0x03
170 #define SOLARENERGY2_SET_T_LTS_LOW_PERIOD_512ms 0x04
171 #define SOLARENERGY2_SET_T_LTS_LOW_PERIOD_2sec 0x05
172 #define SOLARENERGY2_SET_T_LTS_LOW_PERIOD_8sec 0x06
173 #define SOLARENERGY2_SET_T_LTS_LOW_PERIOD_32sec 0x07
174 
175 #define SOLARENERGY2_PROTECT_KEY_SOFT_RESET 0xE2
176 #define SOLARENERGY2_PROTECT_KEY_PROTECTED_REG 0x4B
177 #define SOLARENERGY2_PROTECT_KEY_EEPROM 0xA5
178 
179 #define SOLARENERGY2_SET_VAUX_LDO_CFG_1_2V 0x00
180 #define SOLARENERGY2_SET_VAUX_LDO_CFG_1_55V 0x10
181 #define SOLARENERGY2_SET_VAUX_LDO_CFG_1_65V 0x20
182 #define SOLARENERGY2_SET_VAUX_LDO_CFG_1_8V 0x30
183 #define SOLARENERGY2_SET_VAUX_LDO_CFG_2_0V 0x40
184 #define SOLARENERGY2_SET_VAUX_LDO_CFG_2_2V 0x50
185 #define SOLARENERGY2_SET_VAUX_LDO_CFG_2_4V 0x60
186 #define SOLARENERGY2_SET_VAUX_LDO_CFG_2_6V 0x70
187 #define SOLARENERGY2_SET_VAUX_LDO_CFG_BIT_MASK 0x70
188 
189 #define SOLARENERGY2_SET_ULP_LDO_CFG_1_2V 0x00
190 #define SOLARENERGY2_SET_ULP_LDO_CFG_1_55V 0x01
191 #define SOLARENERGY2_SET_ULP_LDO_CFG_1_65V 0x02
192 #define SOLARENERGY2_SET_ULP_LDO_CFG_1_8V 0x03
193 #define SOLARENERGY2_SET_ULP_LDO_CFG_2_0V 0x04
194 #define SOLARENERGY2_SET_ULP_LDO_CFG_2_2V 0x05
195 #define SOLARENERGY2_SET_ULP_LDO_CFG_2_4V 0x06
196 #define SOLARENERGY2_SET_ULP_LDO_CFG_2_6V 0x07
197 #define SOLARENERGY2_SET_ULP_LDO_CFG_BIT_MASK 0x07
198 
199 #define SOLARENERGY2_SET_MPPT_RATIO_50 0x00
200 #define SOLARENERGY2_SET_MPPT_RATIO_60 0x01
201 #define SOLARENERGY2_SET_MPPT_RATIO_67 0x02
202 #define SOLARENERGY2_SET_MPPT_RATIO_71 0x03
203 #define SOLARENERGY2_SET_MPPT_RATIO_75 0x04
204 #define SOLARENERGY2_SET_MPPT_RATIO_78 0x05
205 #define SOLARENERGY2_SET_MPPT_RATIO_80 0x06
206 #define SOLARENERGY2_SET_MPPT_RATIO_82 0x07
207 #define SOLARENERGY2_SET_MPPT_RATIO_83 0x08
208 #define SOLARENERGY2_SET_MPPT_RATIO_85 0x09
209 #define SOLARENERGY2_SET_MPPT_RATIO_86 0x0A
210 #define SOLARENERGY2_SET_MPPT_RATIO_87 0x0B
211 #define SOLARENERGY2_SET_MPPT_RATIO_88 0x0C
212 #define SOLARENERGY2_SET_MPPT_BIT_MASK 0x0F
213 
214 #define SOLARENERGY2_SET_HRV_CHECK_VLD_VTG 0x00
215 #define SOLARENERGY2_SET_HRV_CHECK_VLD_CUR 0x40
216 #define SOLARENERGY2_SET_HRV_MIN_VTG_GEN 0x01
217 
218 #define SOLARENERGY2_SET_CRT_SRC_SEL_0mA 0x00
219 #define SOLARENERGY2_SET_CRT_SRC_SEL_5mA 0x01
220 #define SOLARENERGY2_SET_CRT_SRC_SEL_10mA 0x02
221 #define SOLARENERGY2_SET_CRT_SRC_SEL_15mA 0x03
222 #define SOLARENERGY2_CRT_SRC_SEL_BIT_MASK 0x03
223 
224 #define SOLARENERGY2_V_BATT_APP_VTG_BIT_MASK 0x3F
225 
226 #define SOLARENERGY2_SET_LTS_CFG_CONN_LTS_STS 0x04
227 #define SOLARENERGY2_SET_LTS_CFG_NORMAL_MODE 0x00
228 #define SOLARENERGY2_SET_LTS_CFG_NEVER_CHARGE 0x02
229 #define SOLARENERGY2_SET_LTS_CFG_RECHARGEABLE 0x00
230 #define SOLARENERGY2_SET_LTS_CFG_BATT_PROT_DIS 0x01
231 #define SOLARENERGY2_SET_LTS_CFG_BATT_PROT_EN 0x00
232 
233 #define SOLARENERGY2_SET_VAUX0_CFG_STS 0x00
234 #define SOLARENERGY2_SET_VAUX0_CFG_LDO 0x01
235 #define SOLARENERGY2_SET_VAUX0_CFG_AUTO_FLT 0x02
236 #define SOLARENERGY2_SET_VAUX0_CFG_AUTO_GND 0x03
237 #define SOLARENERGY2_SET_VAUX1_CFG_STS 0x00
238 #define SOLARENERGY2_SET_VAUX1_CFG_LDO 0x04
239 #define SOLARENERGY2_SET_VAUX1_CFG_AUTO_FLT 0x08
240 #define SOLARENERGY2_SET_VAUX1_CFG_AUTO_GND 0x0C
241 #define SOLARENERGY2_SET_VAUX2_CFG_STS 0x00
242 #define SOLARENERGY2_SET_VAUX2_CFG_LDO 0x10
243 #define SOLARENERGY2_SET_VAUX2_CFG_AUTO_FLT 0x20
244 #define SOLARENERGY2_SET_VAUX2_CFG_AUTO_GND 0x30
245 #define SOLARENERGY2_SET_LDO_CFG_ULP_BIT_MASK 0x08
246 #define SOLARENERGY2_SET_LDO_CFG_VSUP_BIT_MASK 0x80
247 
248 #define SOLARENERGY2_LUX_METER_BUSY_BIT_MASK 0x10
249 #define SOLARENERGY2_LUX_METER_BIT_MASK 0x0F
250 
251 #define SOLARENERGY2_SET_HRV_CURRENT_LVL_15uA 0x0E
252 
253 
259 #define SOLARENERGY2_DEVICE_ADDRESS 0x77
260  // solarenergy2_set
262 
277 #define SOLARENERGY2_MAP_MIKROBUS( cfg, mikrobus ) \
278  cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
279  cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
280  cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
281  cfg.wup = MIKROBUS( mikrobus, MIKROBUS_AN ); \
282  cfg.blv = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
283  cfg.hlv = MIKROBUS( mikrobus, MIKROBUS_INT )
284  // solarenergy2_map // solarenergy2
287 
292 typedef struct
293 {
294  // Output pins
295  digital_out_t cs;
296  digital_out_t wup;
298  // Input pins
299  digital_in_t blv;
300  digital_in_t hlv;
302  // Modules
303  i2c_master_t i2c;
305  // I2C slave address
306  uint8_t slave_address;
309 
314 typedef struct
315 {
316  pin_name_t scl;
317  pin_name_t sda;
319  pin_name_t cs;
320  pin_name_t wup;
321  pin_name_t blv;
322  pin_name_t hlv;
324  uint32_t i2c_speed;
325  uint8_t i2c_address;
328 
333 typedef enum
334 {
336  SOLARENERGY2_ERROR = -1
337 
339 
344 typedef struct
345 {
347  uint8_t hrv_lux_busy;
348  uint8_t hrv_low;
349  uint8_t bat_low;
351  uint8_t sw_lts_sts;
352  uint8_t usb_on;
353  uint8_t lts_protect;
356 
361 typedef struct
362 {
363  uint8_t lts_bat_min_hi;
364  uint8_t lts_bat_min_lo;
365  uint8_t sts_bat_max_hi;
366  uint8_t sts_bat_max_lo;
367  uint8_t sts_apl_max_hi;
368  uint8_t sts_apl_max_lo;
369  uint8_t sts_bat_min_hi;
370  uint8_t sts_bat_min_lo;
373 
378 typedef struct
379 {
380  float v_bat_max_hi;
381  float v_bat_max_lo;
384  float v_bat_min_lo;
385  float v_apl_max_hi;
386  float v_apl_max_lo;
389 
406 
421 
435 
450 err_t solarenergy2_generic_write ( solarenergy2_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len );
451 
466 err_t solarenergy2_generic_read ( solarenergy2_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len );
467 
482 err_t solarenergy2_write_reg ( solarenergy2_t *ctx, uint8_t reg, uint8_t data_in );
483 
499 err_t solarenergy2_write_eeprom ( solarenergy2_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len );
500 
514 
529 
544 
558 err_t solarenergy2_set_sleep_vsup ( solarenergy2_t *ctx, float sleep_vsup_sec );
559 
586 err_t solarenergy2_set_mppt_ratio ( solarenergy2_t *ctx, uint8_t mppt_ratio );
587 
618 err_t solarenergy2_set_ldo_cfg ( solarenergy2_t *ctx, uint8_t vaux_ldo, uint8_t ulp_ldo );
619 
634 
652 err_t solarenergy2_set_pwr_current_source ( solarenergy2_t *ctx, uint8_t crt_src_sel );
653 
667 
680 void solarenergy2_set_wup_pin ( solarenergy2_t *ctx, uint8_t state );
681 
695 
709 
710 #ifdef __cplusplus
711 }
712 #endif
713 #endif // SOLARENERGY2_H
714  // solarenergy2
716 
717 // ------------------------------------------------------------------------ END
solarenergy2_cfg_t::i2c_address
uint8_t i2c_address
Definition: solarenergy2.h:325
solarenergy2_abs_vtg_v_t::v_bat_min_hi_dis
float v_bat_min_hi_dis
Definition: solarenergy2.h:382
solarenergy2_status_t::hrv_low
uint8_t hrv_low
Definition: solarenergy2.h:348
SOLARENERGY2_ERROR
@ SOLARENERGY2_ERROR
Definition: solarenergy2.h:336
solarenergy2_t::i2c
i2c_master_t i2c
Definition: solarenergy2.h:303
solarenergy2_status_t::sw_vdcdc_lts_nsts
uint8_t sw_vdcdc_lts_nsts
Definition: solarenergy2.h:350
solarenergy2_write_eeprom
err_t solarenergy2_write_eeprom(solarenergy2_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
Solar Energy 2 write EEPROM function.
solarenergy2_cfg_t::sda
pin_name_t sda
Definition: solarenergy2.h:317
solarenergy2_cfg_t::scl
pin_name_t scl
Definition: solarenergy2.h:316
solarenergy2_cfg_t::hlv
pin_name_t hlv
Definition: solarenergy2.h:322
solarenergy2_abs_vtg_v_t::v_apl_max_lo
float v_apl_max_lo
Definition: solarenergy2.h:386
solarenergy2_config_abs_voltage
err_t solarenergy2_config_abs_voltage(solarenergy2_t *ctx, solarenergy2_abs_vtg_v_t abs_vtg)
Solar Energy 2 config absolute voltage function.
solarenergy2_abs_vtg_v_t::v_bat_min_lo
float v_bat_min_lo
Definition: solarenergy2.h:384
solarenergy2_bat_vtg_status_t::sts_bat_max_hi
uint8_t sts_bat_max_hi
Definition: solarenergy2.h:365
solarenergy2_abs_vtg_v_t::v_bat_max_hi
float v_bat_max_hi
Definition: solarenergy2.h:380
solarenergy2_status_t::sw_lts_sts
uint8_t sw_lts_sts
Definition: solarenergy2.h:351
solarenergy2_abs_vtg_v_t::v_bat_min_hi_con
float v_bat_min_hi_con
Definition: solarenergy2.h:383
solarenergy2_generic_read
err_t solarenergy2_generic_read(solarenergy2_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
Solar Energy 2 I2C reading function.
solarenergy2_store_config
err_t solarenergy2_store_config(solarenergy2_t *ctx)
Solar Energy 2 store config function.
solarenergy2_cfg_t::i2c_speed
uint32_t i2c_speed
Definition: solarenergy2.h:324
solarenergy2_init
err_t solarenergy2_init(solarenergy2_t *ctx, solarenergy2_cfg_t *cfg)
Solar Energy 2 initialization function.
solarenergy2_cfg_t::wup
pin_name_t wup
Definition: solarenergy2.h:320
solarenergy2_bat_vtg_status_t::lts_bat_min_lo
uint8_t lts_bat_min_lo
Definition: solarenergy2.h:364
solarenergy2_status_t::hrv_lux_busy
uint8_t hrv_lux_busy
Definition: solarenergy2.h:347
solarenergy2_set_mppt_ratio
err_t solarenergy2_set_mppt_ratio(solarenergy2_t *ctx, uint8_t mppt_ratio)
Solar Energy 2 set MPPT ratio function.
solarenergy2_bat_vtg_status_t::sts_bat_min_lo
uint8_t sts_bat_min_lo
Definition: solarenergy2.h:370
solarenergy2_cfg_setup
void solarenergy2_cfg_setup(solarenergy2_cfg_t *cfg)
Solar Energy 2 configuration object setup function.
solarenergy2_t::blv
digital_in_t blv
Definition: solarenergy2.h:299
solarenergy2_status_t::eeprom_data_busy
uint8_t eeprom_data_busy
Definition: solarenergy2.h:346
solarenergy2_set_ldo_cfg
err_t solarenergy2_set_ldo_cfg(solarenergy2_t *ctx, uint8_t vaux_ldo, uint8_t ulp_ldo)
Solar Energy 2 set LDO config function.
solarenergy2_t::hlv
digital_in_t hlv
Definition: solarenergy2.h:300
solarenergy2_get_battery_low_state
uint8_t solarenergy2_get_battery_low_state(solarenergy2_t *ctx)
Solar Energy 2 get BLV state function.
SOLARENERGY2_OK
@ SOLARENERGY2_OK
Definition: solarenergy2.h:335
solarenergy2_bat_vtg_status_t::lts_bat_min_hi
uint8_t lts_bat_min_hi
Definition: solarenergy2.h:363
solarenergy2_status_t
Solar Energy 2 Click status information object.
Definition: solarenergy2.h:345
solarenergy2_soft_reset
err_t solarenergy2_soft_reset(solarenergy2_t *ctx)
Solar Energy 2 soft reset function.
solarenergy2_abs_vtg_v_t::v_apl_max_hi
float v_apl_max_hi
Definition: solarenergy2.h:385
solarenergy2_bat_vtg_status_t::sts_bat_max_lo
uint8_t sts_bat_max_lo
Definition: solarenergy2.h:366
solarenergy2_cfg_t
Solar Energy 2 Click configuration object.
Definition: solarenergy2.h:315
solarenergy2_get_status
err_t solarenergy2_get_status(solarenergy2_t *ctx, solarenergy2_status_t *status)
Solar Energy 2 get status function.
solarenergy2_cfg_t::cs
pin_name_t cs
Definition: solarenergy2.h:319
solarenergy2_generic_write
err_t solarenergy2_generic_write(solarenergy2_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
Solar Energy 2 I2C writing function.
solarenergy2_return_value_t
solarenergy2_return_value_t
Solar Energy 2 Click return value data.
Definition: solarenergy2.h:334
solarenergy2_t::wup
digital_out_t wup
Definition: solarenergy2.h:296
solarenergy2_write_reg
err_t solarenergy2_write_reg(solarenergy2_t *ctx, uint8_t reg, uint8_t data_in)
Solar Energy 2 write register function.
solarenergy2_bat_vtg_status_t
Solar Energy 2 Click storage element voltage and state object.
Definition: solarenergy2.h:362
solarenergy2_bat_vtg_status_t::sts_apl_max_lo
uint8_t sts_apl_max_lo
Definition: solarenergy2.h:368
solarenergy2_get_bat_vtg_status
err_t solarenergy2_get_bat_vtg_status(solarenergy2_t *ctx, solarenergy2_bat_vtg_status_t *bat_vtg_status)
Solar Energy 2 get storage element status function.
solarenergy2_t
Solar Energy 2 Click context object.
Definition: solarenergy2.h:293
solarenergy2_set_pwr_current_source
err_t solarenergy2_set_pwr_current_source(solarenergy2_t *ctx, uint8_t crt_src_sel)
Solar Energy 2 power source selection function.
solarenergy2_get_en_hv_cell_low_state
uint8_t solarenergy2_get_en_hv_cell_low_state(solarenergy2_t *ctx)
Solar Energy 2 get HLV state function.
solarenergy2_status_t::lts_protect
uint8_t lts_protect
Definition: solarenergy2.h:353
solarenergy2_default_cfg
err_t solarenergy2_default_cfg(solarenergy2_t *ctx)
Solar Energy 2 default configuration function.
solarenergy2_set_wup_pin
void solarenergy2_set_wup_pin(solarenergy2_t *ctx, uint8_t state)
Solar Energy 2 set WUP pin function.
solarenergy2_bat_vtg_status_t::sts_apl_max_hi
uint8_t sts_apl_max_hi
Definition: solarenergy2.h:367
solarenergy2_t::cs
digital_out_t cs
Definition: solarenergy2.h:295
solarenergy2_cfg_t::blv
pin_name_t blv
Definition: solarenergy2.h:321
solarenergy2_abs_vtg_v_t
Solar Energy 2 Click operation battery voltage values object.
Definition: solarenergy2.h:379
solarenergy2_status_t::usb_on
uint8_t usb_on
Definition: solarenergy2.h:352
solarenergy2_abs_vtg_v_t::v_bat_max_lo
float v_bat_max_lo
Definition: solarenergy2.h:381
solarenergy2_t::slave_address
uint8_t slave_address
Definition: solarenergy2.h:306
solarenergy2_bat_vtg_status_t::sts_bat_min_hi
uint8_t sts_bat_min_hi
Definition: solarenergy2.h:369
solarenergy2_status_t::bat_low
uint8_t bat_low
Definition: solarenergy2.h:349
solarenergy2_set_sleep_vsup
err_t solarenergy2_set_sleep_vsup(solarenergy2_t *ctx, float sleep_vsup_sec)
Solar Energy 2 set sleep VSUP function.