stepdown11 2.1.0.0
stepdown11.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 STEPDOWN11_H
29#define STEPDOWN11_H
30
31#ifdef __cplusplus
32extern "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 STEPDOWN11_ADDR_BIT_READ_INPUT_REG 0x00
60#define STEPDOWN11_ADDR_BIT_READ_EEPROM 0x01
61#define STEPDOWN11_ADDR_BIT_READ_CTRL_REG 0x02
62#define STEPDOWN11_ADDR_BIT_READ_RDAC 0x03
63#define STEPDOWN11_ADDR_BIT_RDAC_DECR 0x00
64#define STEPDOWN11_ADDR_BIT_RDAC_INCR 0x01
65#define STEPDOWN11_ADDR_BIT_COPY_TO_RDAC 0x00
66#define STEPDOWN11_ADDR_BIT_COPY_TO_EEPROM 0x01
67#define STEPDOWN11_ADDR_BIT_SCALE_MODE_NORMAL 0x80
68#define STEPDOWN11_ADDR_BIT_SCALE_MODE_SHDN 0x81
69#define STEPDOWN11_ADDR_BIT_SCALE_EXIT 0x00
70#define STEPDOWN11_ADDR_BIT_SCALE_ENTER 0x01
71#define STEPDOWN11_ADDR_BIT_SW_SHDN_MODE_NORMAL 0x00
72#define STEPDOWN11_ADDR_BIT_SW_SHDN_MODE_SHDN 0x01
73 // stepdown11_reg
75
90#define STEPDOWN11_CTRL_BIT_NOP 0x00
91#define STEPDOWN11_CTRL_BIT_WRITE_RDAC 0x10
92#define STEPDOWN11_CTRL_BIT_WRITE_SHIFT_REG 0x20
93#define STEPDOWN11_CTRL_BIT_READ 0x30
94#define STEPDOWN11_CTRL_BIT_LIN_RDAC 0x40
95#define STEPDOWN11_CTRL_BIT_6_DB_RDAC 0x50
96#define STEPDOWN11_CTRL_BIT_COPY_LRDAC 0x60
97#define STEPDOWN11_CTRL_BIT_COPY_RDAC_EEPROM 0x70
98#define STEPDOWN11_CTRL_BIT_WRITE_EEPROM 0x80
99#define STEPDOWN11_CTRL_BIT_SCALE 0x90
100#define STEPDOWN11_CTRL_BIT_SW_RST 0xB0
101#define STEPDOWN11_CTRL_BIT_SW_SHDN 0xC0
102#define STEPDOWN11_CTRL_BIT_REG_CTRL 0xD0
103#define STEPDOWN11_CTRL_BIT_MASK 0xF0
104
109#define STEPDOWN11_WIPER_SEL_1 0x00
110#define STEPDOWN11_WIPER_SEL_2 0x01
111#define STEPDOWN11_WIPER_SEL_BOTH 0x08
112
117#define STEPDOWN11_S_CONF_1MHZ_SPREAD_OFF 0
118#define STEPDOWN11_S_CONF_2_2MHZ_SPREAD_OFF 4870
119#define STEPDOWN11_S_CONF_2_2MHZ_SPREAD_TRIANGLE 6040
120#define STEPDOWN11_S_CONF_2_2MHZ_SPREAD_RANDOM 7500
121
126#define STEPDOWN11_WIPER_POS_MAX 255
127#define STEPDOWN11_WIPER_POS_MIN 0
128#define STEPDOWN11_WIPER_POS_MIDDLE 127
129#define STEPDOWN11_RES_10_KOHM 10000
130#define STEPDOWN11_RES_0_KOHM 0
131#define STEPDOWN11_R_5_RESISTANCE 2700
132#define STEPDOWN11_R_9_RESISTANCE 10
133#define STEPDOWN11_VFB_VALUE 0.8f
134
139#define STEPDOWN11_ENABLE_OUTPUT 0x01
140#define STEPDOWN11_DISABLE_OUTPUT 0x00
141
147#define STEPDOWN11_DEVICE_ADDRESS_0 0x2F
148#define STEPDOWN11_DEVICE_ADDRESS_1 0x2C
149#define STEPDOWN11_DEVICE_ADDRESS_2 0x23
150#define STEPDOWN11_DEVICE_ADDRESS_3 0x20
151 // stepdown11_set
153
168#define STEPDOWN11_MAP_MIKROBUS( cfg, mikrobus ) \
169 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
170 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
171 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
172 cfg.en = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
173 cfg.pg = MIKROBUS( mikrobus, MIKROBUS_INT )
174 // stepdown11_map // stepdown11
177
182typedef struct
183{
184 // Output pins
185 digital_out_t rst;
186 digital_out_t en;
188 // Input pins
189 digital_in_t pg;
191 // Modules
192 i2c_master_t i2c;
194 // I2C slave address
198
203typedef struct
204{
205 pin_name_t scl;
206 pin_name_t sda;
208 pin_name_t rst;
209 pin_name_t en;
210 pin_name_t pg;
212 uint32_t i2c_speed;
213 uint8_t i2c_address;
216
221typedef enum
222{
225
227
244
259
273
288err_t stepdown11_generic_write ( stepdown11_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len );
289
304err_t stepdown11_generic_read ( stepdown11_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len );
305
315void stepdown11_set_en_pin ( stepdown11_t *ctx, uint8_t pin_state );
316
326
336
351err_t stepdown11_write_data ( stepdown11_t *ctx, uint8_t ctrl, uint8_t addr, uint8_t data_in );
352
367err_t stepdown11_read_data ( stepdown11_t *ctx, uint8_t addr, uint8_t mask, uint8_t *data_out );
368
383err_t stepdown11_write_rdac ( stepdown11_t *ctx, uint8_t addr, uint8_t data_in );
384
399err_t stepdown11_read_rdac ( stepdown11_t *ctx, uint8_t addr, uint8_t *data_out );
400
415err_t stepdown11_set_resistance ( stepdown11_t *ctx, uint8_t wiper_sel, float res_kohm );
416
431err_t stepdown11_get_resistance ( stepdown11_t *ctx, uint8_t wiper_sel, float *res_kohm );
432
444err_t stepdown11_set_voltage ( stepdown11_t *ctx, float v_out );
445
457err_t stepdown11_set_mode ( stepdown11_t *ctx, float sconf_mode );
458
459#ifdef __cplusplus
460}
461#endif
462#endif // STEPDOWN11_H
463 // stepdown11
465
466// ------------------------------------------------------------------------ END
err_t stepdown11_init(stepdown11_t *ctx, stepdown11_cfg_t *cfg)
Step Down 11 initialization function.
err_t stepdown11_write_rdac(stepdown11_t *ctx, uint8_t addr, uint8_t data_in)
Step Down 11 write the RDAC function.
uint8_t stepdown11_get_pg_pin(stepdown11_t *ctx)
Step Down 11 get PG pin state function.
err_t stepdown11_generic_write(stepdown11_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
Step Down 11 I2C writing function.
err_t stepdown11_set_mode(stepdown11_t *ctx, float sconf_mode)
Step Down 11 set S-CONF device configuration mode function.
void stepdown11_cfg_setup(stepdown11_cfg_t *cfg)
Step Down 11 configuration object setup function.
void stepdown11_reset_digi_pot(stepdown11_t *ctx)
Step Down 11 reset digi pot function.
err_t stepdown11_get_resistance(stepdown11_t *ctx, uint8_t wiper_sel, float *res_kohm)
Step Down 11 get the resistance function.
err_t stepdown11_write_data(stepdown11_t *ctx, uint8_t ctrl, uint8_t addr, uint8_t data_in)
Step Down 11 I2C writing function.
err_t stepdown11_read_data(stepdown11_t *ctx, uint8_t addr, uint8_t mask, uint8_t *data_out)
Step Down 11 I2C reading function.
err_t stepdown11_default_cfg(stepdown11_t *ctx)
Step Down 11 default configuration function.
err_t stepdown11_set_resistance(stepdown11_t *ctx, uint8_t wiper_sel, float res_kohm)
Step Down 11 set the resistance function.
void stepdown11_set_en_pin(stepdown11_t *ctx, uint8_t pin_state)
Step Down 11 set EN pin state function.
err_t stepdown11_generic_read(stepdown11_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
Step Down 11 I2C reading function.
err_t stepdown11_set_voltage(stepdown11_t *ctx, float v_out)
Step Down 11 set voltage output function.
err_t stepdown11_read_rdac(stepdown11_t *ctx, uint8_t addr, uint8_t *data_out)
Step Down 11 read the RDAC function.
stepdown11_return_value_t
Step Down 11 Click return value data.
Definition: stepdown11.h:222
@ STEPDOWN11_OK
Definition: stepdown11.h:223
@ STEPDOWN11_ERROR
Definition: stepdown11.h:224
Step Down 11 Click configuration object.
Definition: stepdown11.h:204
uint32_t i2c_speed
Definition: stepdown11.h:212
pin_name_t scl
Definition: stepdown11.h:205
pin_name_t en
Definition: stepdown11.h:209
pin_name_t sda
Definition: stepdown11.h:206
pin_name_t pg
Definition: stepdown11.h:210
pin_name_t rst
Definition: stepdown11.h:208
uint8_t i2c_address
Definition: stepdown11.h:213
Step Down 11 Click context object.
Definition: stepdown11.h:183
i2c_master_t i2c
Definition: stepdown11.h:192
digital_out_t en
Definition: stepdown11.h:186
digital_out_t rst
Definition: stepdown11.h:185
uint8_t slave_address
Definition: stepdown11.h:195
digital_in_t pg
Definition: stepdown11.h:189