no-OS
|
Header file of ltc2672 Driver. More...
#include <stdint.h>
#include <stdbool.h>
#include "no_os_spi.h"
#include "no_os_error.h"
#include "no_os_units.h"
Go to the source code of this file.
Classes | |
struct | ltc2672_dev |
Structure holding ltc2672 descriptor. More... | |
struct | ltc2672_init_param |
Structure holding the parameters for ltc2672 initialization. More... | |
Macros | |
#define | LTC2672_16_DONT_CARE 0xFFF0 |
#define | LTC2672_MUX_DONT_CARE 0xFFFE0 |
#define | LTC2672_DUMMY 0xFFFF |
#define | LTC2672_FAULT_REG_MASK 0xFF0000 |
#define | LTC2672_BASE_CURRENT 3.125 |
#define | LTC2672_VMINUS_FIXED_CURRENT -80 |
#define | LTC2672_OFF_CURRENT 0 |
#define | LTC2672_300MA_CURRENT 300 |
#define | LTC2672_16BIT_RESO 65535 |
#define | LTC2672_12BIT_RESO 4095 |
#define | LTC2672_TOTAL_CHANNELS 5 |
#define | LTC2672_MAX_CONFIG_MASK 15 |
#define | LTC2672_MAX_TOGGLE_MASK 31 |
#define | LTC2672_BIT_SHIFT_12BIT 4 |
#define | LTC2672_NUM_MUX_SELECTS 22 |
#define | LTC2672_NUM_CURRENT_SPANS 10 |
#define | LTC2672_NUM_FAULTS 7 |
#define | LTC2672_COMMAND32_GENERATE(comm, add, dat) (0xFF << 24) | (comm << 20) | (add << 16) | (dat) |
#define | LTC2672_COMMAND24_GENERATE(comm, add, dat) (comm << 20) | (add << 16) | (dat) |
#define | LTC2672_SPAN_SET(span_code) LTC2672_16_DONT_CARE | span_code |
#define | LTC2672_MUX_SET(mux_code) LTC2672_MUX_DONT_CARE | mux_code |
#define | LTC2672_MUX32_GENERATE(comm, dat) (0xFF << 24) | (comm << 20) | (dat) |
#define | LTC2672_MUX24_GENERATE(comm, dat) (comm << 20) | (dat) |
Functions | |
int | ltc2672_init (struct ltc2672_dev **, struct ltc2672_init_param *) |
Device and communication init function. More... | |
int | ltc2672_remove (struct ltc2672_dev *) |
Remove resources allocated by the init function. More... | |
int | ltc2672_transaction (struct ltc2672_dev *device, uint32_t, bool) |
Write raw register value. More... | |
uint32_t | ltc2672_current_to_code (struct ltc2672_dev *device, uint32_t, enum ltc2672_dac_ch) |
get dac code value from current of a selected DAC channel More... | |
int | ltc2672_set_code_channel (struct ltc2672_dev *device, uint16_t code, enum ltc2672_dac_ch out_ch) |
sets the dac code for channel More... | |
int | ltc2672_set_current_channel (struct ltc2672_dev *, uint32_t, enum ltc2672_dac_ch) |
set the current for a selected DAC channel More... | |
int | ltc2672_set_code_all_channels (struct ltc2672_dev *device, uint16_t code) |
sets the same dac code for all channels More... | |
int | ltc2672_set_current_all_channels (struct ltc2672_dev *, uint32_t) |
sets the same current for all channels More... | |
int | ltc2672_set_span_channel (struct ltc2672_dev *, enum ltc2672_out_range, enum ltc2672_dac_ch) |
sets output span for channel More... | |
int | ltc2672_set_span_all_channels (struct ltc2672_dev *, enum ltc2672_out_range) |
sets the same output span for all channels More... | |
int | ltc2672_chip_power_down (struct ltc2672_dev *) |
power down ltc2672 More... | |
int | ltc2672_power_down_channel (struct ltc2672_dev *, enum ltc2672_dac_ch) |
power down a channel More... | |
int | ltc2672_power_down_all_channels (struct ltc2672_dev *) |
power down ALL channels More... | |
int | ltc2672_monitor_mux (struct ltc2672_dev *, enum ltc2672_mux_commands) |
configures mux output depending on target measurement More... | |
int | ltc2672_setup_toggle_channel (struct ltc2672_dev *, enum ltc2672_dac_ch, uint32_t, uint32_t) |
setup toggle parameters for a channel More... | |
int | ltc2672_enable_toggle_channel (struct ltc2672_dev *, uint32_t) |
enables or disables selected channel/s for toggling More... | |
int | ltc2672_global_toggle (struct ltc2672_dev *, bool) |
enables or disables global toggle bit More... | |
int | ltc2672_config_command (struct ltc2672_dev *, uint8_t) |
configures the fault detection bits More... | |
Header file of ltc2672 Driver.
Copyright 2023(c) Analog Devices, Inc.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define LTC2672_12BIT_RESO 4095 |
#define LTC2672_16_DONT_CARE 0xFFF0 |
#define LTC2672_16BIT_RESO 65535 |
#define LTC2672_300MA_CURRENT 300 |
#define LTC2672_BASE_CURRENT 3.125 |
#define LTC2672_BIT_SHIFT_12BIT 4 |
#define LTC2672_COMMAND24_GENERATE | ( | comm, | |
add, | |||
dat | |||
) | (comm << 20) | (add << 16) | (dat) |
#define LTC2672_COMMAND32_GENERATE | ( | comm, | |
add, | |||
dat | |||
) | (0xFF << 24) | (comm << 20) | (add << 16) | (dat) |
#define LTC2672_DUMMY 0xFFFF |
#define LTC2672_FAULT_REG_MASK 0xFF0000 |
#define LTC2672_MAX_CONFIG_MASK 15 |
#define LTC2672_MAX_TOGGLE_MASK 31 |
#define LTC2672_MUX24_GENERATE | ( | comm, | |
dat | |||
) | (comm << 20) | (dat) |
#define LTC2672_MUX32_GENERATE | ( | comm, | |
dat | |||
) | (0xFF << 24) | (comm << 20) | (dat) |
#define LTC2672_MUX_DONT_CARE 0xFFFE0 |
#define LTC2672_MUX_SET | ( | mux_code | ) | LTC2672_MUX_DONT_CARE | mux_code |
#define LTC2672_NUM_CURRENT_SPANS 10 |
#define LTC2672_NUM_FAULTS 7 |
#define LTC2672_NUM_MUX_SELECTS 22 |
#define LTC2672_OFF_CURRENT 0 |
#define LTC2672_SPAN_SET | ( | span_code | ) | LTC2672_16_DONT_CARE | span_code |
#define LTC2672_TOTAL_CHANNELS 5 |
#define LTC2672_VMINUS_FIXED_CURRENT -80 |
enum ltc2672_commands |
enum ltc2672_dac_ch |
enum ltc2672_device_id |
enum ltc2672_faults |
enum ltc2672_mux_commands |
enum ltc2672_out_range |
int ltc2672_chip_power_down | ( | struct ltc2672_dev * | device | ) |
power down ltc2672
Power down the LTC2672-XX
device | - ltc2672 descriptor |
int ltc2672_config_command | ( | struct ltc2672_dev * | device, |
uint8_t | mask | ||
) |
configures the fault detection bits
Configures the fault/s to be detected
device | - ltc2672 descriptor |
mask | - mask that describes desired configuration |
uint32_t ltc2672_current_to_code | ( | struct ltc2672_dev * | device, |
uint32_t | dac_current, | ||
enum ltc2672_dac_ch | out_ch | ||
) |
get dac code value from current of a selected DAC channel
Convert current into dac code
device | - ltc2672 descriptor |
dac_current | - current in uA |
out_ch | - DAC channel |
int ltc2672_enable_toggle_channel | ( | struct ltc2672_dev * | device, |
uint32_t | mask | ||
) |
enables or disables selected channel/s for toggling
Enable channel/s to toggle
device | - ltc2672 descriptor |
mask | - mask that describes which channel/s to toggle |
int ltc2672_global_toggle | ( | struct ltc2672_dev * | device, |
bool | is_enable | ||
) |
enables or disables global toggle bit
Sets or resets the global toggle bit
device | - ltc2672 descriptor |
is_enable | - sets or resets the global toggle bit |
int ltc2672_init | ( | struct ltc2672_dev ** | device, |
struct ltc2672_init_param * | init_param | ||
) |
Device and communication init function.
Device and communication init function
device | - ltc2672 descriptor to be initialized |
init_param | - Initial parameter for descriptor |
int ltc2672_monitor_mux | ( | struct ltc2672_dev * | device, |
enum ltc2672_mux_commands | mux_comm | ||
) |
configures mux output depending on target measurement
Configure the LTC2672-XX MUX pin output for selected measurement
device | - ltc2672 descriptor |
mux_comm | - multiplexer command code |
int ltc2672_power_down_all_channels | ( | struct ltc2672_dev * | device | ) |
power down ALL channels
Power down all DAC channels
device | - ltc2672 descriptor |
int ltc2672_power_down_channel | ( | struct ltc2672_dev * | device, |
enum ltc2672_dac_ch | out_ch | ||
) |
power down a channel
Power down a selected DAC channel
device | - ltc2672 descriptor |
out_ch | - DAC channel output to set |
int ltc2672_remove | ( | struct ltc2672_dev * | device | ) |
Remove resources allocated by the init function.
Free resources allocated by the init function
device | - ltc2672 descriptor |
int ltc2672_set_code_all_channels | ( | struct ltc2672_dev * | device, |
uint16_t | code | ||
) |
sets the same dac code for all channels
Set the dac code for all DAC channels
device | - ltc2672 descriptor |
code | - The code to be written |
int ltc2672_set_code_channel | ( | struct ltc2672_dev * | device, |
uint16_t | code, | ||
enum ltc2672_dac_ch | out_ch | ||
) |
sets the dac code for channel
Set the dac code for a selected DAC channel
device | - ltc2672 descriptor |
code | - The code to be written |
out_ch | - channel to set the code |
int ltc2672_set_current_all_channels | ( | struct ltc2672_dev * | device, |
uint32_t | current | ||
) |
sets the same current for all channels
Set the current for all DAC channels
device | - ltc2672 descriptor |
current | - current to set in uA |
int ltc2672_set_current_channel | ( | struct ltc2672_dev * | device, |
uint32_t | current, | ||
enum ltc2672_dac_ch | out_ch | ||
) |
set the current for a selected DAC channel
Set the current for a selected DAC channel
device | - ltc2672 descriptor |
current | - current to set in uA |
out_ch | - channel to set the current |
int ltc2672_set_span_all_channels | ( | struct ltc2672_dev * | device, |
enum ltc2672_out_range | ch_span | ||
) |
sets the same output span for all channels
Set the output span for all DAC channels
device | - ltc2672 descriptor |
ch_span | - max current span |
int ltc2672_set_span_channel | ( | struct ltc2672_dev * | device, |
enum ltc2672_out_range | ch_span, | ||
enum ltc2672_dac_ch | out_ch | ||
) |
sets output span for channel
Set the output span for a selected DAC channel
device | - ltc2672 descriptor |
ch_span | - max current span |
out_ch | - DAC channel output to set |
int ltc2672_setup_toggle_channel | ( | struct ltc2672_dev * | device, |
enum ltc2672_dac_ch | out_ch, | ||
uint32_t | current_reg_a, | ||
uint32_t | current_reg_b | ||
) |
setup toggle parameters for a channel
Setup selected channel's reg A and B
device | - ltc2672 descriptor |
out_ch | - channel to toggle |
current_reg_a | - current to write in register A |
current_reg_b | - current to write in register B |
int ltc2672_transaction | ( | struct ltc2672_dev * | device, |
uint32_t | comm, | ||
bool | is_32 | ||
) |
Write raw register value.
Configure LTC2672 and get response
device | - ltc2672 descriptor |
comm | - command byte to send |
is_32 | - flag if command is 32 bit (True) or 24 bit (False) format |