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
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 STEPDOWN11_ADDR_BIT_READ_INPUT_REG 0x00
70 #define STEPDOWN11_ADDR_BIT_READ_EEPROM 0x01
71 #define STEPDOWN11_ADDR_BIT_READ_CTRL_REG 0x02
72 #define STEPDOWN11_ADDR_BIT_READ_RDAC 0x03
73 #define STEPDOWN11_ADDR_BIT_RDAC_DECR 0x00
74 #define STEPDOWN11_ADDR_BIT_RDAC_INCR 0x01
75 #define STEPDOWN11_ADDR_BIT_COPY_TO_RDAC 0x00
76 #define STEPDOWN11_ADDR_BIT_COPY_TO_EEPROM 0x01
77 #define STEPDOWN11_ADDR_BIT_SCALE_MODE_NORMAL 0x80
78 #define STEPDOWN11_ADDR_BIT_SCALE_MODE_SHDN 0x81
79 #define STEPDOWN11_ADDR_BIT_SCALE_EXIT 0x00
80 #define STEPDOWN11_ADDR_BIT_SCALE_ENTER 0x01
81 #define STEPDOWN11_ADDR_BIT_SW_SHDN_MODE_NORMAL 0x00
82 #define STEPDOWN11_ADDR_BIT_SW_SHDN_MODE_SHDN 0x01
83  // stepdown11_reg
85 
100 #define STEPDOWN11_CTRL_BIT_NOP 0x00
101 #define STEPDOWN11_CTRL_BIT_WRITE_RDAC 0x10
102 #define STEPDOWN11_CTRL_BIT_WRITE_SHIFT_REG 0x20
103 #define STEPDOWN11_CTRL_BIT_READ 0x30
104 #define STEPDOWN11_CTRL_BIT_LIN_RDAC 0x40
105 #define STEPDOWN11_CTRL_BIT_6_DB_RDAC 0x50
106 #define STEPDOWN11_CTRL_BIT_COPY_LRDAC 0x60
107 #define STEPDOWN11_CTRL_BIT_COPY_RDAC_EEPROM 0x70
108 #define STEPDOWN11_CTRL_BIT_WRITE_EEPROM 0x80
109 #define STEPDOWN11_CTRL_BIT_SCALE 0x90
110 #define STEPDOWN11_CTRL_BIT_SW_RST 0xB0
111 #define STEPDOWN11_CTRL_BIT_SW_SHDN 0xC0
112 #define STEPDOWN11_CTRL_BIT_REG_CTRL 0xD0
113 #define STEPDOWN11_CTRL_BIT_MASK 0xF0
114 
119 #define STEPDOWN11_WIPER_SEL_1 0x00
120 #define STEPDOWN11_WIPER_SEL_2 0x01
121 #define STEPDOWN11_WIPER_SEL_BOTH 0x08
122 
127 #define STEPDOWN11_S_CONF_1MHZ_SPREAD_OFF 0
128 #define STEPDOWN11_S_CONF_2_2MHZ_SPREAD_OFF 4870
129 #define STEPDOWN11_S_CONF_2_2MHZ_SPREAD_TRIANGLE 6040
130 #define STEPDOWN11_S_CONF_2_2MHZ_SPREAD_RANDOM 7500
131 
136 #define STEPDOWN11_WIPER_POS_MAX 255
137 #define STEPDOWN11_WIPER_POS_MIN 0
138 #define STEPDOWN11_WIPER_POS_MIDDLE 127
139 #define STEPDOWN11_RES_10_KOHM 10000
140 #define STEPDOWN11_RES_0_KOHM 0
141 #define STEPDOWN11_R_5_RESISTANCE 2700
142 #define STEPDOWN11_R_9_RESISTANCE 10
143 #define STEPDOWN11_VFB_VALUE 0.8f
144 
149 #define STEPDOWN11_ENABLE_OUTPUT 0x01
150 #define STEPDOWN11_DISABLE_OUTPUT 0x00
151 
157 #define STEPDOWN11_DEVICE_ADDRESS_0 0x2F
158 #define STEPDOWN11_DEVICE_ADDRESS_1 0x2C
159 #define STEPDOWN11_DEVICE_ADDRESS_2 0x23
160 #define STEPDOWN11_DEVICE_ADDRESS_3 0x20
161  // stepdown11_set
163 
178 #define STEPDOWN11_MAP_MIKROBUS( cfg, mikrobus ) \
179  cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
180  cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
181  cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
182  cfg.en = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
183  cfg.pg = MIKROBUS( mikrobus, MIKROBUS_INT )
184  // stepdown11_map // stepdown11
187 
192 typedef struct
193 {
194  // Output pins
195  digital_out_t rst;
196  digital_out_t en;
198  // Input pins
199  digital_in_t pg;
201  // Modules
202  i2c_master_t i2c;
204  // I2C slave address
205  uint8_t slave_address;
207 } stepdown11_t;
208 
213 typedef struct
214 {
215  pin_name_t scl;
216  pin_name_t sda;
218  pin_name_t rst;
219  pin_name_t en;
220  pin_name_t pg;
222  uint32_t i2c_speed;
223  uint8_t i2c_address;
226 
231 typedef enum
232 {
234  STEPDOWN11_ERROR = -1
235 
237 
254 
269 
283 
298 err_t stepdown11_generic_write ( stepdown11_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len );
299 
314 err_t stepdown11_generic_read ( stepdown11_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len );
315 
325 void stepdown11_set_en_pin ( stepdown11_t *ctx, uint8_t pin_state );
326 
336 
346 
361 err_t stepdown11_write_data ( stepdown11_t *ctx, uint8_t ctrl, uint8_t addr, uint8_t data_in );
362 
377 err_t stepdown11_read_data ( stepdown11_t *ctx, uint8_t addr, uint8_t mask, uint8_t *data_out );
378 
393 err_t stepdown11_write_rdac ( stepdown11_t *ctx, uint8_t addr, uint8_t data_in );
394 
409 err_t stepdown11_read_rdac ( stepdown11_t *ctx, uint8_t addr, uint8_t *data_out );
410 
425 err_t stepdown11_set_resistance ( stepdown11_t *ctx, uint8_t wiper_sel, float res_kohm );
426 
441 err_t stepdown11_get_resistance ( stepdown11_t *ctx, uint8_t wiper_sel, float *res_kohm );
442 
454 err_t stepdown11_set_voltage ( stepdown11_t *ctx, float v_out );
455 
467 err_t stepdown11_set_mode ( stepdown11_t *ctx, float sconf_mode );
468 
469 #ifdef __cplusplus
470 }
471 #endif
472 #endif // STEPDOWN11_H
473  // stepdown11
475 
476 // ------------------------------------------------------------------------ END
stepdown11_read_rdac
err_t stepdown11_read_rdac(stepdown11_t *ctx, uint8_t addr, uint8_t *data_out)
Step Down 11 read the RDAC function.
stepdown11_write_rdac
err_t stepdown11_write_rdac(stepdown11_t *ctx, uint8_t addr, uint8_t data_in)
Step Down 11 write the RDAC function.
stepdown11_cfg_t::sda
pin_name_t sda
Definition: stepdown11.h:216
stepdown11_init
err_t stepdown11_init(stepdown11_t *ctx, stepdown11_cfg_t *cfg)
Step Down 11 initialization function.
STEPDOWN11_OK
@ STEPDOWN11_OK
Definition: stepdown11.h:233
stepdown11_cfg_t::i2c_speed
uint32_t i2c_speed
Definition: stepdown11.h:222
stepdown11_generic_read
err_t stepdown11_generic_read(stepdown11_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
Step Down 11 I2C reading function.
stepdown11_cfg_t::en
pin_name_t en
Definition: stepdown11.h:219
stepdown11_read_data
err_t stepdown11_read_data(stepdown11_t *ctx, uint8_t addr, uint8_t mask, uint8_t *data_out)
Step Down 11 I2C reading function.
STEPDOWN11_ERROR
@ STEPDOWN11_ERROR
Definition: stepdown11.h:234
stepdown11_set_en_pin
void stepdown11_set_en_pin(stepdown11_t *ctx, uint8_t pin_state)
Step Down 11 set EN pin state function.
stepdown11_get_pg_pin
uint8_t stepdown11_get_pg_pin(stepdown11_t *ctx)
Step Down 11 get PG pin state function.
stepdown11_cfg_t::rst
pin_name_t rst
Definition: stepdown11.h:218
stepdown11_t::i2c
i2c_master_t i2c
Definition: stepdown11.h:202
stepdown11_reset_digi_pot
void stepdown11_reset_digi_pot(stepdown11_t *ctx)
Step Down 11 reset digi pot function.
stepdown11_cfg_setup
void stepdown11_cfg_setup(stepdown11_cfg_t *cfg)
Step Down 11 configuration object setup function.
stepdown11_cfg_t
Step Down 11 Click configuration object.
Definition: stepdown11.h:214
stepdown11_t::en
digital_out_t en
Definition: stepdown11.h:196
stepdown11_generic_write
err_t stepdown11_generic_write(stepdown11_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
Step Down 11 I2C writing function.
stepdown11_set_voltage
err_t stepdown11_set_voltage(stepdown11_t *ctx, float v_out)
Step Down 11 set voltage output function.
stepdown11_t
Step Down 11 Click context object.
Definition: stepdown11.h:193
stepdown11_t::pg
digital_in_t pg
Definition: stepdown11.h:199
stepdown11_cfg_t::pg
pin_name_t pg
Definition: stepdown11.h:220
stepdown11_write_data
err_t stepdown11_write_data(stepdown11_t *ctx, uint8_t ctrl, uint8_t addr, uint8_t data_in)
Step Down 11 I2C writing function.
stepdown11_cfg_t::scl
pin_name_t scl
Definition: stepdown11.h:215
stepdown11_set_mode
err_t stepdown11_set_mode(stepdown11_t *ctx, float sconf_mode)
Step Down 11 set S-CONF device configuration mode function.
stepdown11_default_cfg
err_t stepdown11_default_cfg(stepdown11_t *ctx)
Step Down 11 default configuration function.
stepdown11_set_resistance
err_t stepdown11_set_resistance(stepdown11_t *ctx, uint8_t wiper_sel, float res_kohm)
Step Down 11 set the resistance function.
stepdown11_cfg_t::i2c_address
uint8_t i2c_address
Definition: stepdown11.h:223
stepdown11_t::slave_address
uint8_t slave_address
Definition: stepdown11.h:205
stepdown11_get_resistance
err_t stepdown11_get_resistance(stepdown11_t *ctx, uint8_t wiper_sel, float *res_kohm)
Step Down 11 get the resistance function.
stepdown11_return_value_t
stepdown11_return_value_t
Step Down 11 Click return value data.
Definition: stepdown11.h:232
stepdown11_t::rst
digital_out_t rst
Definition: stepdown11.h:195