buckboost4 2.1.0.0
buckboost4.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 BUCKBOOST4_H
29#define BUCKBOOST4_H
30
31#ifdef __cplusplus
32extern "C"{
33#endif
34
39#ifdef PREINIT_SUPPORTED
40#include "preinit.h"
41#endif
42
43#ifdef MikroCCoreVersion
44 #if MikroCCoreVersion >= 1
45 #include "delays.h"
46 #endif
47#endif
48
49#include "drv_digital_out.h"
50#include "drv_digital_in.h"
51#include "drv_i2c_master.h"
52
73#define BUCKBOOST4_REG_REF_MSB 0x00
74#define BUCKBOOST4_REG_REF_LSB 0x01
75#define BUCKBOOST4_REG_IOUT_LIMIT 0x02
76#define BUCKBOOST4_REG_VOUT_SR 0x03
77#define BUCKBOOST4_REG_VOUT_FS 0x04
78#define BUCKBOOST4_REG_CDC 0x05
79#define BUCKBOOST4_REG_MODE 0x06
80#define BUCKBOOST4_REG_STATUS 0x07
81
82 // buckboost4_reg
83
98#define BUCKBOOST4_VREF_MV_MIN 45.0f
99#define BUCKBOOST4_VREF_MV_MAX 1200.0f
100#define BUCKBOOST4_VREF_MV_STEP 0.5645f
101
106#define BUCKBOOST4_IOUT_LIMIT_CT_DIS 0x00
107#define BUCKBOOST4_IOUT_LIMIT_CT_EN 0x01
108#define BUCKBOOST4_IOUT_LIMIT_CLTV_MIN 0.0f
109#define BUCKBOOST4_IOUT_LIMIT_CLTV_MAX 63.5f
110#define BUCKBOOST4_IOUT_LIMIT_CLTV_STEP 0.5f
111
116#define BUCKBOOST4_VOUT_SR_OCP_DELAY_128_US 0x00
117#define BUCKBOOST4_VOUT_SR_OCP_DELAY_3_S 0x01
118#define BUCKBOOST4_VOUT_SR_OCP_DELAY_6_S 0x02
119#define BUCKBOOST4_VOUT_SR_OCP_DELAY_12_S 0x03
120#define BUCKBOOST4_VOUT_SR_OCP_DELAY_BIT_MASK 0xCF
121
126#define BUCKBOOST4_VOUT_SR_SR_MV_US_1_25 0x00
127#define BUCKBOOST4_VOUT_SR_SR_MV_US_2_5 0x01
128#define BUCKBOOST4_VOUT_SR_SR_MV_US_5 0x02
129#define BUCKBOOST4_VOUT_SR_SR_MV_US_10 0x03
130#define BUCKBOOST4_VOUT_SR_SR_BIT_MASK 0xFC
131
136#define BUCKBOOST4_VOUT_FS_FB_EXT 0x80
137#define BUCKBOOST4_VOUT_FS_INTFB_0_2256 0x00
138#define BUCKBOOST4_VOUT_FS_INTFB_0_1128 0x01
139#define BUCKBOOST4_VOUT_FS_INTFB_0_0752 0x02
140#define BUCKBOOST4_VOUT_FS_INTFB_0_0564 0x03
141#define BUCKBOOST4_VOUT_FS_INTFB_BIT_MASK 0xFC
142
147#define BUCKBOOST4_MODE_OE_EN 0x80
148#define BUCKBOOST4_MODE_FSWDBL_DIS 0x00
149#define BUCKBOOST4_MODE_FSWDBL_EN 0x01
150#define BUCKBOOST4_MODE_HICCUP_DIS 0x00
151#define BUCKBOOST4_MODE_HICCUP_EN 0x01
152#define BUCKBOOST4_MODE_DISCHG_DIS 0x00
153#define BUCKBOOST4_MODE_DISCHG_EN 0x01
154#define BUCKBOOST4_MODE_FPWM_DIS 0x00
155#define BUCKBOOST4_MODE_FPWM_EN 0x01
156#define BUCKBOOST4_MODE_BIT_MASK 0x8D
157
162#define BUCKBOOST4_VOUT_LIM_MIN 0.8f
163#define BUCKBOOST4_VOUT_LIM_5_V 5.0f
164#define BUCKBOOST4_VOUT_LIM_10_V 10.0f
165#define BUCKBOOST4_VOUT_LIM_15_V 15.0f
166#define BUCKBOOST4_VOUT_LIM_20_V 20.0f
167#define BUCKBOOST4_VOUT_LIM_MAX 21.286f
168#define BUCKBOOST4_INTFB_STEP_MAX 0.2256f
169#define BUCKBOOST4_CONVERT_V_TO_MV 1000.0f
170
176#define BUCKBOOST4_DEVICE_ADDRESS_0 0x75
177#define BUCKBOOST4_DEVICE_ADDRESS_1 0x74
178
179 // buckboost4_set
180
195#define BUCKBOOST4_MAP_MIKROBUS( cfg, mikrobus ) \
196 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
197 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
198 cfg.en = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
199 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
200
201 // buckboost4_map
202 // buckboost4
203
208typedef struct
209{
210 // Output pins
211 digital_out_t en;
213 // Input pins
214 digital_in_t int_pin;
216 // Modules
217 i2c_master_t i2c;
219 // I2C slave address
223
228typedef struct
229{
230 pin_name_t scl;
231 pin_name_t sda;
233 pin_name_t en;
234 pin_name_t int_pin;
236 uint32_t i2c_speed;
237 uint8_t i2c_address;
240
251
268
283
297
312err_t buckboost4_generic_write ( buckboost4_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len );
313
328err_t buckboost4_generic_read ( buckboost4_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len );
329
340
351
365err_t buckboost4_set_vref ( buckboost4_t *ctx, float vref_mv );
366
381err_t buckboost4_current_limit_cfg ( buckboost4_t *ctx, uint8_t cl_en, float cltv_mv );
382
397err_t buckboost4_set_ocp_delay ( buckboost4_t *ctx, uint8_t ocp_delay );
398
412err_t buckboost4_set_slew_rate ( buckboost4_t *ctx, uint8_t slew_rate );
413
427
441err_t buckboost4_set_int_fb_ratio ( buckboost4_t *ctx, uint8_t int_fb_ratio );
442
456
470
487err_t buckboost4_set_mode ( buckboost4_t *ctx, uint8_t fswdbl, uint8_t hiccup,
488 uint8_t dischg, uint8_t fpwm );
489
503err_t buckboost4_get_status ( buckboost4_t *ctx, uint8_t *status );
504
518err_t buckboost4_set_vout ( buckboost4_t *ctx, float vout_v );
519
533
534#ifdef __cplusplus
535}
536#endif
537#endif // BUCKBOOST4_H
538
539 // buckboost4
540
541// ------------------------------------------------------------------------ END
buckboost4_return_value_t
Buck-Boost 4 Click return value data.
Definition buckboost4.h:246
@ BUCKBOOST4_OK
Definition buckboost4.h:247
@ BUCKBOOST4_ERROR
Definition buckboost4.h:248
err_t buckboost4_get_status(buckboost4_t *ctx, uint8_t *status)
Buck-Boost 4 get status function.
err_t buckboost4_set_int_fb_ratio(buckboost4_t *ctx, uint8_t int_fb_ratio)
Buck-Boost 4 set the internal feedback ratio function.
void buckboost4_cfg_setup(buckboost4_cfg_t *cfg)
Buck-Boost 4 configuration object setup function.
void buckboost4_disable_device(buckboost4_t *ctx)
Buck-Boost 4 disable the device function.
err_t buckboost4_output_disable(buckboost4_t *ctx)
Buck-Boost 4 disable output voltage function.
err_t buckboost4_generic_read(buckboost4_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
Buck-Boost 4 I2C reading function.
err_t buckboost4_output_enable(buckboost4_t *ctx)
Buck-Boost 4 enable output voltage function.
err_t buckboost4_current_limit_cfg(buckboost4_t *ctx, uint8_t cl_en, float cltv_mv)
Buck-Boost 4 current limit config function.
err_t buckboost4_set_vref(buckboost4_t *ctx, float vref_mv)
Buck-Boost 4 set internal reference voltage function.
err_t buckboost4_default_cfg(buckboost4_t *ctx)
Buck-Boost 4 default configuration function.
void buckboost4_enable_device(buckboost4_t *ctx)
Buck-Boost 4 enable the device function.
uint8_t buckboost4_fault_indicator(buckboost4_t *ctx)
Buck-Boost 4 check fault indicator function.
err_t buckboost4_init(buckboost4_t *ctx, buckboost4_cfg_t *cfg)
Buck-Boost 4 initialization function.
err_t buckboost4_set_ocp_delay(buckboost4_t *ctx, uint8_t ocp_delay)
Buck-Boost 4 sets the output overcurrent response time function.
err_t buckboost4_en_ext_output_vtg(buckboost4_t *ctx)
Buck-Boost 4 enable external output voltage feedback function.
err_t buckboost4_set_vout(buckboost4_t *ctx, float vout_v)
Buck-Boost 4 set the output voltage function.
err_t buckboost4_set_slew_rate(buckboost4_t *ctx, uint8_t slew_rate)
Buck-Boost 4 sets the slew rate for output voltage change function.
err_t buckboost4_set_mode(buckboost4_t *ctx, uint8_t fswdbl, uint8_t hiccup, uint8_t dischg, uint8_t fpwm)
Buck-Boost 4 set mode function.
err_t buckboost4_generic_write(buckboost4_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
Buck-Boost 4 I2C writing function.
Buck-Boost 4 Click configuration object.
Definition buckboost4.h:229
uint32_t i2c_speed
Definition buckboost4.h:236
pin_name_t scl
Definition buckboost4.h:230
pin_name_t en
Definition buckboost4.h:233
pin_name_t int_pin
Definition buckboost4.h:234
pin_name_t sda
Definition buckboost4.h:231
uint8_t i2c_address
Definition buckboost4.h:237
Buck-Boost 4 Click context object.
Definition buckboost4.h:209
digital_in_t int_pin
Definition buckboost4.h:214
i2c_master_t i2c
Definition buckboost4.h:217
digital_out_t en
Definition buckboost4.h:211
uint8_t slave_address
Definition buckboost4.h:220