Go to the documentation of this file.
28 #ifndef SOLARENERGY2_H
29 #define SOLARENERGY2_H
35 #include "drv_digital_out.h"
36 #include "drv_digital_in.h"
37 #include "drv_i2c_master.h"
59 #define SOLARENERGY2_REG_T_HRV_PERIOD 0x00
60 #define SOLARENERGY2_REG_T_HRV_MEAS 0x01
61 #define SOLARENERGY2_REG_T_STS_PERIOD 0x02
62 #define SOLARENERGY2_REG_T_LTS_PERIOD 0x03
63 #define SOLARENERGY2_REG_V_HRV_CFG 0x04
64 #define SOLARENERGY2_REG_HRV_CHECK_LVL 0x05
65 #define SOLARENERGY2_REG_LTS_CFG 0x06
66 #define SOLARENERGY2_REG_V_BAT_MAX_HI 0x07
67 #define SOLARENERGY2_REG_V_BAT_MAX_LO 0x08
68 #define SOLARENERGY2_REG_V_BAT_MIN_HI_DIS 0x09
69 #define SOLARENERGY2_REG_V_BAT_MIN_HI_CON 0x0A
70 #define SOLARENERGY2_REG_V_BAT_MIN_LO 0x0B
71 #define SOLARENERGY2_REG_V_APL_MAX_HI 0x0C
72 #define SOLARENERGY2_REG_V_APL_MAX_LO 0x0D
73 #define SOLARENERGY2_REG_LDO_CFG 0x0E
74 #define SOLARENERGY2_REG_PWR_CFG 0x0F
75 #define SOLARENERGY2_REG_VAUX_CFG 0x10
76 #define SOLARENERGY2_REG_VAUX_GND_CFG 0x11
77 #define SOLARENERGY2_REG_MPPT_RATIO 0x12
78 #define SOLARENERGY2_REG_EXT_CFG 0x13
79 #define SOLARENERGY2_REG_T_SLEEP_VSUP_LO 0x14
80 #define SOLARENERGY2_REG_T_SLEEP_VSUP_MID 0x15
81 #define SOLARENERGY2_REG_T_SLEEP_VSUP_HI 0x16
82 #define SOLARENERGY2_REG_T_HRV_LOW_CFG 0x17
83 #define SOLARENERGY2_REG_SPI_I2C_CFG 0x18
84 #define SOLARENERGY2_REG_PWR_MGT 0x19
86 #define SOLARENERGY2_REG_SOFT_RES_WORD 0x1A
87 #define SOLARENERGY2_REG_PROTECT_KEY 0x1B
88 #define SOLARENERGY2_REG_LUX_METER_CFG 0x1C
89 #define SOLARENERGY2_REG_LUX_METER_RESULT 0x1D
90 #define SOLARENERGY2_REG_STATUS 0x22
91 #define SOLARENERGY2_REG_VLD_STATUS 0x23
93 #define SOLARENERGY2_REG_EEPROM_0 0x40
111 #define SOLARENERGY2_SET_T_HRV_PERIOD_256ms 0x00
112 #define SOLARENERGY2_SET_T_HRV_PERIOD_512ms 0x01
113 #define SOLARENERGY2_SET_T_HRV_PERIOD_1sec 0x02
114 #define SOLARENERGY2_SET_T_HRV_PERIOD_2sec 0x03
115 #define SOLARENERGY2_SET_T_HRV_PERIOD_4sec 0x04
116 #define SOLARENERGY2_SET_T_HRV_PERIOD_8sec 0x05
117 #define SOLARENERGY2_SET_T_HRV_PERIOD_16sec 0x06
118 #define SOLARENERGY2_SET_T_HRV_PERIOD_32sec 0x07
120 #define SOLARENERGY2_SET_T_HRV_MEAS_16ms 0x00
121 #define SOLARENERGY2_SET_T_HRV_MEAS_32ms 0x01
122 #define SOLARENERGY2_SET_T_HRV_MEAS_64ms 0x02
123 #define SOLARENERGY2_SET_T_HRV_MEAS_128ms 0x03
124 #define SOLARENERGY2_SET_T_HRV_MEAS_256ms 0x04
125 #define SOLARENERGY2_SET_T_HRV_MEAS_512ms 0x05
126 #define SOLARENERGY2_SET_T_HRV_MEAS_1sec 0x06
127 #define SOLARENERGY2_SET_T_HRV_MEAS_2sec 0x07
129 #define SOLARENERGY2_SET_T_STS_PERIOD_1ms 0x00
130 #define SOLARENERGY2_SET_T_STS_PERIOD_2ms 0x01
131 #define SOLARENERGY2_SET_T_STS_PERIOD_8ms 0x02
132 #define SOLARENERGY2_SET_T_STS_PERIOD_16ms 0x03
133 #define SOLARENERGY2_SET_T_STS_PERIOD_32ms 0x04
134 #define SOLARENERGY2_SET_T_STS_PERIOD_64ms 0x05
135 #define SOLARENERGY2_SET_T_STS_PERIOD_128ms 0x06
136 #define SOLARENERGY2_SET_T_STS_PERIOD_256ms 0x07
138 #define SOLARENERGY2_SET_T_LTS_PERIOD_1ms 0x00
139 #define SOLARENERGY2_SET_T_LTS_PERIOD_4ms 0x01
140 #define SOLARENERGY2_SET_T_LTS_PERIOD_16ms 0x02
141 #define SOLARENERGY2_SET_T_LTS_PERIOD_64ms 0x03
142 #define SOLARENERGY2_SET_T_LTS_PERIOD_256ms 0x04
143 #define SOLARENERGY2_SET_T_LTS_PERIOD_1sec 0x05
144 #define SOLARENERGY2_SET_T_LTS_PERIOD_4sec 0x06
145 #define SOLARENERGY2_SET_T_LTS_PERIOD_16sec 0x07
147 #define SOLARENERGY2_SET_T_HRV_LOW_PERIOD_256ms 0x00
148 #define SOLARENERGY2_SET_T_HRV_LOW_PERIOD_512ms 0x01
149 #define SOLARENERGY2_SET_T_HRV_LOW_PERIOD_1sec 0x02
150 #define SOLARENERGY2_SET_T_HRV_LOW_PERIOD_2sec 0x03
151 #define SOLARENERGY2_SET_T_HRV_LOW_PERIOD_4sec 0x04
152 #define SOLARENERGY2_SET_T_HRV_LOW_PERIOD_8sec 0x05
153 #define SOLARENERGY2_SET_T_HRV_LOW_PERIOD_16sec 0x06
154 #define SOLARENERGY2_SET_T_HRV_LOW_PERIOD_32sec 0x07
156 #define SOLARENERGY2_SET_T_LTS_LOW_PERIOD_2ms 0x00
157 #define SOLARENERGY2_SET_T_LTS_LOW_PERIOD_8ms 0x01
158 #define SOLARENERGY2_SET_T_LTS_LOW_PERIOD_32ms 0x02
159 #define SOLARENERGY2_SET_T_LTS_LOW_PERIOD_128ms 0x03
160 #define SOLARENERGY2_SET_T_LTS_LOW_PERIOD_512ms 0x04
161 #define SOLARENERGY2_SET_T_LTS_LOW_PERIOD_2sec 0x05
162 #define SOLARENERGY2_SET_T_LTS_LOW_PERIOD_8sec 0x06
163 #define SOLARENERGY2_SET_T_LTS_LOW_PERIOD_32sec 0x07
165 #define SOLARENERGY2_PROTECT_KEY_SOFT_RESET 0xE2
166 #define SOLARENERGY2_PROTECT_KEY_PROTECTED_REG 0x4B
167 #define SOLARENERGY2_PROTECT_KEY_EEPROM 0xA5
169 #define SOLARENERGY2_SET_VAUX_LDO_CFG_1_2V 0x00
170 #define SOLARENERGY2_SET_VAUX_LDO_CFG_1_55V 0x10
171 #define SOLARENERGY2_SET_VAUX_LDO_CFG_1_65V 0x20
172 #define SOLARENERGY2_SET_VAUX_LDO_CFG_1_8V 0x30
173 #define SOLARENERGY2_SET_VAUX_LDO_CFG_2_0V 0x40
174 #define SOLARENERGY2_SET_VAUX_LDO_CFG_2_2V 0x50
175 #define SOLARENERGY2_SET_VAUX_LDO_CFG_2_4V 0x60
176 #define SOLARENERGY2_SET_VAUX_LDO_CFG_2_6V 0x70
177 #define SOLARENERGY2_SET_VAUX_LDO_CFG_BIT_MASK 0x70
179 #define SOLARENERGY2_SET_ULP_LDO_CFG_1_2V 0x00
180 #define SOLARENERGY2_SET_ULP_LDO_CFG_1_55V 0x01
181 #define SOLARENERGY2_SET_ULP_LDO_CFG_1_65V 0x02
182 #define SOLARENERGY2_SET_ULP_LDO_CFG_1_8V 0x03
183 #define SOLARENERGY2_SET_ULP_LDO_CFG_2_0V 0x04
184 #define SOLARENERGY2_SET_ULP_LDO_CFG_2_2V 0x05
185 #define SOLARENERGY2_SET_ULP_LDO_CFG_2_4V 0x06
186 #define SOLARENERGY2_SET_ULP_LDO_CFG_2_6V 0x07
187 #define SOLARENERGY2_SET_ULP_LDO_CFG_BIT_MASK 0x07
189 #define SOLARENERGY2_SET_MPPT_RATIO_50 0x00
190 #define SOLARENERGY2_SET_MPPT_RATIO_60 0x01
191 #define SOLARENERGY2_SET_MPPT_RATIO_67 0x02
192 #define SOLARENERGY2_SET_MPPT_RATIO_71 0x03
193 #define SOLARENERGY2_SET_MPPT_RATIO_75 0x04
194 #define SOLARENERGY2_SET_MPPT_RATIO_78 0x05
195 #define SOLARENERGY2_SET_MPPT_RATIO_80 0x06
196 #define SOLARENERGY2_SET_MPPT_RATIO_82 0x07
197 #define SOLARENERGY2_SET_MPPT_RATIO_83 0x08
198 #define SOLARENERGY2_SET_MPPT_RATIO_85 0x09
199 #define SOLARENERGY2_SET_MPPT_RATIO_86 0x0A
200 #define SOLARENERGY2_SET_MPPT_RATIO_87 0x0B
201 #define SOLARENERGY2_SET_MPPT_RATIO_88 0x0C
202 #define SOLARENERGY2_SET_MPPT_BIT_MASK 0x0F
204 #define SOLARENERGY2_SET_HRV_CHECK_VLD_VTG 0x00
205 #define SOLARENERGY2_SET_HRV_CHECK_VLD_CUR 0x40
206 #define SOLARENERGY2_SET_HRV_MIN_VTG_GEN 0x01
208 #define SOLARENERGY2_SET_CRT_SRC_SEL_0mA 0x00
209 #define SOLARENERGY2_SET_CRT_SRC_SEL_5mA 0x01
210 #define SOLARENERGY2_SET_CRT_SRC_SEL_10mA 0x02
211 #define SOLARENERGY2_SET_CRT_SRC_SEL_15mA 0x03
212 #define SOLARENERGY2_CRT_SRC_SEL_BIT_MASK 0x03
214 #define SOLARENERGY2_V_BATT_APP_VTG_BIT_MASK 0x3F
216 #define SOLARENERGY2_SET_LTS_CFG_CONN_LTS_STS 0x04
217 #define SOLARENERGY2_SET_LTS_CFG_NORMAL_MODE 0x00
218 #define SOLARENERGY2_SET_LTS_CFG_NEVER_CHARGE 0x02
219 #define SOLARENERGY2_SET_LTS_CFG_RECHARGEABLE 0x00
220 #define SOLARENERGY2_SET_LTS_CFG_BATT_PROT_DIS 0x01
221 #define SOLARENERGY2_SET_LTS_CFG_BATT_PROT_EN 0x00
223 #define SOLARENERGY2_SET_VAUX0_CFG_STS 0x00
224 #define SOLARENERGY2_SET_VAUX0_CFG_LDO 0x01
225 #define SOLARENERGY2_SET_VAUX0_CFG_AUTO_FLT 0x02
226 #define SOLARENERGY2_SET_VAUX0_CFG_AUTO_GND 0x03
227 #define SOLARENERGY2_SET_VAUX1_CFG_STS 0x00
228 #define SOLARENERGY2_SET_VAUX1_CFG_LDO 0x04
229 #define SOLARENERGY2_SET_VAUX1_CFG_AUTO_FLT 0x08
230 #define SOLARENERGY2_SET_VAUX1_CFG_AUTO_GND 0x0C
231 #define SOLARENERGY2_SET_VAUX2_CFG_STS 0x00
232 #define SOLARENERGY2_SET_VAUX2_CFG_LDO 0x10
233 #define SOLARENERGY2_SET_VAUX2_CFG_AUTO_FLT 0x20
234 #define SOLARENERGY2_SET_VAUX2_CFG_AUTO_GND 0x30
235 #define SOLARENERGY2_SET_LDO_CFG_ULP_BIT_MASK 0x08
236 #define SOLARENERGY2_SET_LDO_CFG_VSUP_BIT_MASK 0x80
238 #define SOLARENERGY2_LUX_METER_BUSY_BIT_MASK 0x10
239 #define SOLARENERGY2_LUX_METER_BIT_MASK 0x0F
241 #define SOLARENERGY2_SET_HRV_CURRENT_LVL_15uA 0x0E
249 #define SOLARENERGY2_DEVICE_ADDRESS 0x77
267 #define SOLARENERGY2_MAP_MIKROBUS( cfg, mikrobus ) \
268 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
269 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
270 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
271 cfg.wup = MIKROBUS( mikrobus, MIKROBUS_AN ); \
272 cfg.blv = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
273 cfg.hlv = MIKROBUS( mikrobus, MIKROBUS_INT )
703 #endif // SOLARENERGY2_H
uint8_t i2c_address
Definition: solarenergy2.h:315
float v_bat_min_hi_dis
Definition: solarenergy2.h:372
uint8_t hrv_low
Definition: solarenergy2.h:338
@ SOLARENERGY2_ERROR
Definition: solarenergy2.h:326
i2c_master_t i2c
Definition: solarenergy2.h:293
uint8_t sw_vdcdc_lts_nsts
Definition: solarenergy2.h:340
err_t solarenergy2_write_eeprom(solarenergy2_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
Solar Energy 2 write EEPROM function.
pin_name_t sda
Definition: solarenergy2.h:307
pin_name_t scl
Definition: solarenergy2.h:306
pin_name_t hlv
Definition: solarenergy2.h:312
float v_apl_max_lo
Definition: solarenergy2.h:376
err_t solarenergy2_config_abs_voltage(solarenergy2_t *ctx, solarenergy2_abs_vtg_v_t abs_vtg)
Solar Energy 2 config absolute voltage function.
float v_bat_min_lo
Definition: solarenergy2.h:374
uint8_t sts_bat_max_hi
Definition: solarenergy2.h:355
float v_bat_max_hi
Definition: solarenergy2.h:370
uint8_t sw_lts_sts
Definition: solarenergy2.h:341
float v_bat_min_hi_con
Definition: solarenergy2.h:373
err_t solarenergy2_generic_read(solarenergy2_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
Solar Energy 2 I2C reading function.
err_t solarenergy2_store_config(solarenergy2_t *ctx)
Solar Energy 2 store config function.
uint32_t i2c_speed
Definition: solarenergy2.h:314
err_t solarenergy2_init(solarenergy2_t *ctx, solarenergy2_cfg_t *cfg)
Solar Energy 2 initialization function.
pin_name_t wup
Definition: solarenergy2.h:310
uint8_t lts_bat_min_lo
Definition: solarenergy2.h:354
uint8_t hrv_lux_busy
Definition: solarenergy2.h:337
err_t solarenergy2_set_mppt_ratio(solarenergy2_t *ctx, uint8_t mppt_ratio)
Solar Energy 2 set MPPT ratio function.
uint8_t sts_bat_min_lo
Definition: solarenergy2.h:360
void solarenergy2_cfg_setup(solarenergy2_cfg_t *cfg)
Solar Energy 2 configuration object setup function.
digital_in_t blv
Definition: solarenergy2.h:289
uint8_t eeprom_data_busy
Definition: solarenergy2.h:336
err_t solarenergy2_set_ldo_cfg(solarenergy2_t *ctx, uint8_t vaux_ldo, uint8_t ulp_ldo)
Solar Energy 2 set LDO config function.
digital_in_t hlv
Definition: solarenergy2.h:290
uint8_t solarenergy2_get_battery_low_state(solarenergy2_t *ctx)
Solar Energy 2 get BLV state function.
@ SOLARENERGY2_OK
Definition: solarenergy2.h:325
uint8_t lts_bat_min_hi
Definition: solarenergy2.h:353
Solar Energy 2 Click status information object.
Definition: solarenergy2.h:335
err_t solarenergy2_soft_reset(solarenergy2_t *ctx)
Solar Energy 2 soft reset function.
float v_apl_max_hi
Definition: solarenergy2.h:375
uint8_t sts_bat_max_lo
Definition: solarenergy2.h:356
Solar Energy 2 Click configuration object.
Definition: solarenergy2.h:305
err_t solarenergy2_get_status(solarenergy2_t *ctx, solarenergy2_status_t *status)
Solar Energy 2 get status function.
pin_name_t cs
Definition: solarenergy2.h:309
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
Solar Energy 2 Click return value data.
Definition: solarenergy2.h:324
digital_out_t wup
Definition: solarenergy2.h:286
err_t solarenergy2_write_reg(solarenergy2_t *ctx, uint8_t reg, uint8_t data_in)
Solar Energy 2 write register function.
Solar Energy 2 Click storage element voltage and state object.
Definition: solarenergy2.h:352
uint8_t sts_apl_max_lo
Definition: solarenergy2.h:358
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.
Solar Energy 2 Click context object.
Definition: solarenergy2.h:283
err_t solarenergy2_set_pwr_current_source(solarenergy2_t *ctx, uint8_t crt_src_sel)
Solar Energy 2 power source selection function.
uint8_t solarenergy2_get_en_hv_cell_low_state(solarenergy2_t *ctx)
Solar Energy 2 get HLV state function.
uint8_t lts_protect
Definition: solarenergy2.h:343
err_t solarenergy2_default_cfg(solarenergy2_t *ctx)
Solar Energy 2 default configuration function.
void solarenergy2_set_wup_pin(solarenergy2_t *ctx, uint8_t state)
Solar Energy 2 set WUP pin function.
uint8_t sts_apl_max_hi
Definition: solarenergy2.h:357
digital_out_t cs
Definition: solarenergy2.h:285
pin_name_t blv
Definition: solarenergy2.h:311
Solar Energy 2 Click operation battery voltage values object.
Definition: solarenergy2.h:369
uint8_t usb_on
Definition: solarenergy2.h:342
float v_bat_max_lo
Definition: solarenergy2.h:371
uint8_t slave_address
Definition: solarenergy2.h:296
uint8_t sts_bat_min_hi
Definition: solarenergy2.h:359
uint8_t bat_low
Definition: solarenergy2.h:339
err_t solarenergy2_set_sleep_vsup(solarenergy2_t *ctx, float sleep_vsup_sec)
Solar Energy 2 set sleep VSUP function.