Go to the documentation of this file.
39 #ifdef PREINIT_SUPPORTED
43 #ifdef MikroCCoreVersion
44 #if MikroCCoreVersion >= 1
49 #include "drv_digital_out.h"
50 #include "drv_digital_in.h"
51 #include "drv_i2c_master.h"
73 #define BUCKNBOOST_REG_PGOOD1_6 0x00
74 #define BUCKNBOOST_REG_STATUS 0x01
75 #define BUCKNBOOST_REG_FAULT 0x02
81 #define BUCKNBOOST_REG_STBY_CTRL 0x03
82 #define BUCKNBOOST_REG_EN 0x04
83 #define BUCKNBOOST_REG_OUT1 0x05
84 #define BUCKNBOOST_REG_OUT2 0x06
85 #define BUCKNBOOST_REG_OUT3 0x07
86 #define BUCKNBOOST_REG_OUT4 0x08
87 #define BUCKNBOOST_REG_OUT5 0x09
88 #define BUCKNBOOST_REG_OUT6 0x0A
89 #define BUCKNBOOST_REG_STBY_OUT1 0x0B
90 #define BUCKNBOOST_REG_STBY_OUT2 0x0C
91 #define BUCKNBOOST_REG_STBY_OUT3 0x0D
92 #define BUCKNBOOST_REG_STBY_OUT4 0x0E
93 #define BUCKNBOOST_REG_STBY_OUT5 0x0F
94 #define BUCKNBOOST_REG_STBY_OUT6 0x10
95 #define BUCKNBOOST_REG_SEQ1 0x11
96 #define BUCKNBOOST_REG_SEQ2 0x12
97 #define BUCKNBOOST_REG_SEQ3 0x13
98 #define BUCKNBOOST_REG_SEQ4 0x14
99 #define BUCKNBOOST_REG_SEQ5 0x15
100 #define BUCKNBOOST_REG_SEQ6 0x16
101 #define BUCKNBOOST_REG_DELAY_CTRL 0x17
102 #define BUCKNBOOST_REG_SS1_2 0x18
103 #define BUCKNBOOST_REG_SS3_4 0x19
104 #define BUCKNBOOST_REG_SS5_6 0x1A
105 #define BUCKNBOOST_REG_ILIMIT_1_2 0x1B
106 #define BUCKNBOOST_REG_ILIMIT_3_4 0x1C
107 #define BUCKNBOOST_REG_ILIMIT_5_6 0x1D
108 #define BUCKNBOOST_REG_STBY_ILIMIT_1_2 0x1E
109 #define BUCKNBOOST_REG_STBY_ILIMIT_3_4 0x1F
110 #define BUCKNBOOST_REG_STBY_ILIMIT_5_6 0x20
111 #define BUCKNBOOST_REG_PORUP_PGOOD_MASK123 0x21
112 #define BUCKNBOOST_REG_PORDN_PGOOD_MASK456 0x22
113 #define BUCKNBOOST_REG_PULLDN1_6 0x23
119 #define BUCKNBOOST_CMD_SAVECONFIG 0x66
120 #define BUCKNBOOST_CMD_RESET 0x6A
121 #define BUCKNBOOST_CMD_RELOAD 0x6B
122 #define BUCKNBOOST_CMD_REBOOT 0x6C
123 #define BUCKNBOOST_CMD_SEQUENCE 0x6D
141 #define BUCKNBOOST_CURRENT_LIMIT_1100mA 0x0F
142 #define BUCKNBOOST_CURRENT_LIMIT_1600mA 0x0E
143 #define BUCKNBOOST_CURRENT_LIMIT_2100mA 0x0D
144 #define BUCKNBOOST_CURRENT_LIMIT_2600mA 0x0C
145 #define BUCKNBOOST_CURRENT_LIMIT_3100mA 0x0B
146 #define BUCKNBOOST_CURRENT_LIMIT_3600mA 0x0A
147 #define BUCKNBOOST_CURRENT_LIMIT_4100mA 0x09
148 #define BUCKNBOOST_CURRENT_LIMIT_4600mA 0x08
149 #define BUCKNBOOST_CURRENT_LIMIT_5100mA 0x07
150 #define BUCKNBOOST_CURRENT_LIMIT_5600mA 0x06
151 #define BUCKNBOOST_CURRENT_LIMIT_6100mA 0x05
152 #define BUCKNBOOST_CURRENT_LIMIT_6600mA 0x04
153 #define BUCKNBOOST_CURRENT_LIMIT_7100mA 0x03
154 #define BUCKNBOOST_CURRENT_LIMIT_7600mA 0x02
155 #define BUCKNBOOST_CURRENT_LIMIT_8100mA 0x01
156 #define BUCKNBOOST_CURRENT_LIMIT_8600mA 0x00
162 #define BUCKNBOOST_WAKE_UP 0x00
163 #define BUCKNBOOST_STANDBY 0x01
169 #define BUCKNBOOST_ENABLE 0x01
170 #define BUCKNBOOST_DISABLE 0x00
176 #define BUCKNBOOST_NORMAL_MODE_ALL 0x40
182 #define BUCKNBOOST_OUTPUT_CH_1 0x01
183 #define BUCKNBOOST_OUTPUT_CH_2 0x02
184 #define BUCKNBOOST_OUTPUT_CH_3 0x03
185 #define BUCKNBOOST_OUTPUT_CH_4 0x04
186 #define BUCKNBOOST_OUTPUT_CH_5 0x05
187 #define BUCKNBOOST_OUTPUT_CH_6 0x06
193 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_800mV 0x32
194 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_850mV 0x31
195 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_900mV 0x30
196 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_950mV 0x2F
197 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_1000mV 0x2E
198 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_1050mV 0x2D
199 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_1100mV 0x2C
200 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_1150mV 0x2B
201 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_1200mV 0x2A
202 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_1250mV 0x29
203 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_1300mV 0x28
204 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_1350mV 0x27
205 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_1400mV 0x26
206 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_1450mV 0x25
207 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_1500mV 0x24
208 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_1550mV 0x23
209 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_1600mV 0x22
210 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_1650mV 0x21
211 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_1700mV 0x20
212 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_1750mV 0x1F
213 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_1800mV 0x1E
214 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_1850mV 0x1D
215 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_1900mV 0x1C
216 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_1950mV 0x1B
217 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_2000mV 0x1A
218 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_2050mV 0x19
219 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_2100mV 0x18
220 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_2150mV 0x17
221 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_2200mV 0x16
222 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_2250mV 0x15
223 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_2300mV 0x14
224 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_2350mV 0x13
225 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_2400mV 0x12
226 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_2450mV 0x11
227 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_2500mV 0x10
228 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_2550mV 0x0F
229 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_2600mV 0x0E
230 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_2650mV 0x0D
231 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_2700mV 0x0C
232 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_2750mV 0x0B
233 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_2800mV 0x0A
234 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_2850mV 0x09
235 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_2900mV 0x08
236 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_2950mV 0x07
237 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_3000mV 0x06
238 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_3050mV 0x05
239 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_3100mV 0x04
240 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_3150mV 0x03
241 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_3200mV 0x02
242 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_3250mV 0x01
243 #define BUCKNBOOST_BUCK_OUTPUT_VOLTAGE_3300mV 0x00
249 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_7000mV 0x23
250 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_7200mV 0x22
251 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_7400mV 0x21
252 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_7600mV 0x20
253 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_7800mV 0x1F
254 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_8000mV 0x1E
255 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_8200mV 0x1D
256 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_8400mV 0x1C
257 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_8600mV 0x1B
258 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_8800mV 0x1A
259 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_9000mV 0x19
260 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_9200mV 0x18
261 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_9400mV 0x17
262 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_9600mV 0x16
263 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_9800mV 0x15
264 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_10000mV 0x14
265 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_10200mV 0x13
266 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_10400mV 0x12
267 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_10600mV 0x11
268 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_10800mV 0x10
269 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_11000mV 0x0F
270 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_11200mV 0x0E
271 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_11400mV 0x0D
272 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_11600mV 0x0C
273 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_11800mV 0x0B
274 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_12000mV 0x0A
275 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_12200mV 0x09
276 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_12400mV 0x08
277 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_12600mV 0x07
278 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_12800mV 0x06
279 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_13000mV 0x05
280 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_13200mV 0x04
281 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_13400mV 0x03
282 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_13600mV 0x02
283 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_13800mV 0x01
284 #define BUCKNBOOST_BOOST_OUTPUT_VOLTAGE_14000mV 0x00
290 #define BUCKNBOOST_PGOOD1_MASK 0x01
291 #define BUCKNBOOST_PGOOD2_MASK 0x02
292 #define BUCKNBOOST_PGOOD3_MASK 0x04
293 #define BUCKNBOOST_PGOOD4_MASK 0x08
294 #define BUCKNBOOST_PGOOD5_MASK 0x10
295 #define BUCKNBOOST_PGOOD6_MASK 0x20
296 #define BUCKNBOOST_PGOOD_ALL_MASK 0x3F
302 #define BUCKNBOOST_EEPROM_READY_MASK 0x01
303 #define BUCKNBOOST_EEPROM_CONFIG_MASK 0x02
304 #define BUCKNBOOST_EEPROM_CALIB_MASK 0x04
305 #define BUCKNBOOST_EEPROM_READ_MASK 0x40
306 #define BUCKNBOOST_EEPROM_WRITE_MASK 0x80
307 #define BUCKNBOOST_EEPROM_ALL_MASK 0xC7
313 #define BUCKNBOOST_FAULT_REG1OC_MASK 0x01
314 #define BUCKNBOOST_FAULT_REG2OC_MASK 0x02
315 #define BUCKNBOOST_FAULT_REG3OC_MASK 0x04
316 #define BUCKNBOOST_FAULT_REG4OC_MASK 0x08
317 #define BUCKNBOOST_FAULT_REG5OC_MASK 0x10
318 #define BUCKNBOOST_FAULT_REG6OC_MASK 0x20
319 #define BUCKNBOOST_FAULT_OT_MASK 0x80
320 #define BUCKNBOOST_FAULT_ALL_MASK 0xBF
327 #define BUCKNBOOST_DEV_ADDR 0x30
345 #define BUCKNBOOST_MAP_MIKROBUS( cfg, mikrobus ) \
346 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
347 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
348 cfg.en = MIKROBUS( mikrobus, MIKROBUS_CS ); \
349 cfg.por = MIKROBUS( mikrobus, MIKROBUS_RST ); \
350 cfg.stb = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
351 cfg.pg = MIKROBUS( mikrobus, MIKROBUS_INT )
785 #endif // BUCKNBOOST_H
err_t bucknboost_get_status(bucknboost_t *ctx, bucknboost_status_t *st_data)
Buck n Boost get status data function.
pin_name_t stb
Definition: bucknboost.h:393
err_t bucknboost_init(bucknboost_t *ctx, bucknboost_cfg_t *cfg)
Buck n Boost initialization function.
digital_out_t stb
Definition: bucknboost.h:365
uint8_t power_good
Definition: bucknboost.h:418
void bucknboost_device_enable(bucknboost_t *ctx, uint8_t state)
Buck n Boost enable device function.
Buck n Boost Click buck config data structure.
Definition: bucknboost.h:429
err_t bucknboost_set_boost_out_voltage(bucknboost_t *ctx, uint8_t data_in)
Buck n Boost set boost output voltage function.
i2c_master_t i2c
Definition: bucknboost.h:374
uint8_t i2c_address
Definition: bucknboost.h:397
err_t bucknboost_default_cfg(bucknboost_t *ctx)
Buck n Boost default configuration function.
err_t bucknboost_get_eeprom_status(bucknboost_t *ctx, uint8_t *data_out)
Buck n Boost get eeprom status function.
err_t bucknboost_generic_read(bucknboost_t *ctx, uint8_t reg, uint8_t *rx_buf, uint8_t rx_len)
Buck n Boost I2C reading function.
@ BUCKNBOOST_ERROR
Definition: bucknboost.h:408
err_t bucknboost_read_byte(bucknboost_t *ctx, uint8_t reg, uint8_t *data_out)
Buck n Boost read single byte function.
@ BUCKNBOOST_OK
Definition: bucknboost.h:407
err_t bucknboost_send_cmd(bucknboost_t *ctx, uint8_t cmd)
Buck n Boost send command function.
uint8_t bucknboost_check_por(bucknboost_t *ctx)
Buck n Boost check power on reset function.
err_t bucknboost_set_all_buck_out_voltage(bucknboost_t *ctx, uint8_t data_in)
Buck n Boost set all bucks output voltage function.
err_t bucknboost_generic_write(bucknboost_t *ctx, uint8_t reg, uint8_t *tx_buf, uint8_t tx_len)
Buck n Boost I2C writing function.
Buck n Boost Click status data structure.
Definition: bucknboost.h:417
uint8_t eeprom_status
Definition: bucknboost.h:419
digital_in_t pg
Definition: bucknboost.h:370
pin_name_t por
Definition: bucknboost.h:392
uint8_t out_vol_normal_mode
Definition: bucknboost.h:432
pin_name_t sda
Definition: bucknboost.h:389
err_t bucknboost_read_oc_fault(bucknboost_t *ctx, uint8_t *data_out)
Buck n Boost read overcurrent fault function.
uint8_t bucknboost_check_power_good(bucknboost_t *ctx)
Buck n Boost check power good function.
err_t bucknboost_check_overc_fault_status(bucknboost_t *ctx, uint8_t ch_num, uint8_t *data_out)
Buck n Boost check overcurrent fault status function.
uint8_t slave_address
Definition: bucknboost.h:378
Buck n Boost Click context object.
Definition: bucknboost.h:361
uint32_t i2c_speed
Definition: bucknboost.h:396
pin_name_t en
Definition: bucknboost.h:391
digital_in_t por
Definition: bucknboost.h:369
void bucknboost_pin_standby_mode(bucknboost_t *ctx, uint8_t state)
Buck n Boost set STB pin mode function.
Buck n Boost Click configuration object.
Definition: bucknboost.h:387
err_t bucknboost_get_power_good_status(bucknboost_t *ctx, uint8_t *data_out)
Buck n Boost get power good status function.
uint8_t out_enable
Definition: bucknboost.h:431
bucknboost_return_value_t
Buck n Boost Click return value data.
Definition: bucknboost.h:406
uint8_t out_standby
Definition: bucknboost.h:430
err_t bucknboost_reg_standby_mode(bucknboost_t *ctx, uint8_t state)
Buck n Boost set standby mode function.
err_t bucknboost_check_power_good_status(bucknboost_t *ctx, uint8_t ch_num, uint8_t *data_out)
Buck n Boost check power good status function.
err_t bucknboost_update_cfg_out(bucknboost_t *ctx, uint8_t ch_num, bucknboost_cfg_buck_t b_data)
Buck n Boost update configuration of the output registers function.
err_t bucknboost_set_buck_out_voltage(bucknboost_t *ctx, uint8_t ch_num, uint8_t data_in)
Buck n Boost set buck output voltage function.
digital_out_t en
Definition: bucknboost.h:364
err_t bucknboost_get_overcurrent_fault_status(bucknboost_t *ctx, uint8_t *data_out)
Buck n Boost get overcurrent fault status function.
err_t bucknboost_write_byte(bucknboost_t *ctx, uint8_t reg, uint8_t data_in)
Buck n Boost Write single byte function.
uint8_t overcurrent_fault
Definition: bucknboost.h:420
pin_name_t pg
Definition: bucknboost.h:394
uint8_t out_vol_stby_mode
Definition: bucknboost.h:433
pin_name_t scl
Definition: bucknboost.h:388
void bucknboost_cfg_setup(bucknboost_cfg_t *cfg)
Buck n Boost configuration object setup function.