no-OS
Loading...
Searching...
No Matches
ltc268x.c File Reference

Implementation of LTC2686/8 Driver. More...

#include <stdlib.h>
#include <stdio.h>
#include "no_os_error.h"
#include "no_os_alloc.h"
#include "ltc268x.h"
Include dependency graph for ltc268x.c:

Functions

int32_t ltc268x_set_pwr_dac (struct ltc268x_dev *dev, uint16_t setting)
 
int32_t ltc268x_set_dither_toggle (struct ltc268x_dev *dev, uint16_t setting)
 
int32_t ltc268x_set_dither_mode (struct ltc268x_dev *dev, uint8_t channel, bool en)
 
int32_t ltc268x_set_span (struct ltc268x_dev *dev, uint8_t channel, enum ltc268x_voltage_range range)
 
int32_t ltc268x_set_dither_phase (struct ltc268x_dev *dev, uint8_t channel, enum ltc268x_dither_phase phase)
 
int32_t ltc268x_set_dither_period (struct ltc268x_dev *dev, uint8_t channel, enum ltc268x_dither_period period)
 
int32_t ltc268x_select_reg (struct ltc268x_dev *dev, uint8_t channel, enum ltc268x_a_b_register sel_reg)
 
int32_t ltc268x_select_tg_dith_clk (struct ltc268x_dev *dev, uint8_t channel, enum ltc268x_clk_input clk_input)
 
int32_t ltc268x_software_toggle (struct ltc268x_dev *dev, uint8_t channel)
 
int32_t ltc268x_software_reset (struct ltc268x_dev *dev)
 
int32_t ltc268x_set_voltage (struct ltc268x_dev *dev, uint8_t channel, float voltage)
 
int32_t ltc268x_init (struct ltc268x_dev **device, struct ltc268x_init_param init_param)
 
int32_t ltc268x_remove (struct ltc268x_dev *dev)
 Free the resources allocated by ltc268x_init().
 

Detailed Description

Implementation of LTC2686/8 Driver.

Author
Mircea Caprioru (mirce.nosp@m.a.ca.nosp@m.prior.nosp@m.u@an.nosp@m.alog..nosp@m.com)

Copyright 2021(c) Analog Devices, Inc.

SPDX-License-Identifier: BSD-3-Clause

Function Documentation

◆ ltc268x_init()

int32_t ltc268x_init ( struct ltc268x_dev ** device,
struct ltc268x_init_param init_param )

Initialize the device.

Parameters
device- The device structure.
init_param- The structure that contains the device initial parameters.
Returns
0 in case of success, negative error code otherwise.

◆ ltc268x_remove()

int32_t ltc268x_remove ( struct ltc268x_dev * dev)

Free the resources allocated by ltc268x_init().

Parameters
dev- The device structure.
Returns
0 in case of success, negative error code otherwise.

◆ ltc268x_select_reg()

int32_t ltc268x_select_reg ( struct ltc268x_dev * dev,
uint8_t channel,
enum ltc268x_a_b_register sel_reg )

Select register A or B for value.

Parameters
dev- The device structure.
channel- The channel for which to change the mode.
sel_reg- Select register A or B to store DAC output value.
Returns
0 in case of success, negative error code otherwise.

◆ ltc268x_select_tg_dith_clk()

int32_t ltc268x_select_tg_dith_clk ( struct ltc268x_dev * dev,
uint8_t channel,
enum ltc268x_clk_input clk_input )

Select dither/toggle clock input.

Parameters
dev- The device structure.
channel- The channel for which to change the mode.
clk_input- Select the source for the clock input.
Returns
0 in case of success, negative error code otherwise.

◆ ltc268x_set_dither_mode()

int32_t ltc268x_set_dither_mode ( struct ltc268x_dev * dev,
uint8_t channel,
bool en )

Set channel to dither mode.

Parameters
dev- The device structure.
channel- The channel for which to change the mode.
en- enable or disable dither mode
Returns
0 in case of success, negative error code otherwise.

◆ ltc268x_set_dither_period()

int32_t ltc268x_set_dither_period ( struct ltc268x_dev * dev,
uint8_t channel,
enum ltc268x_dither_period period )

Set channel dither period.

Parameters
dev- The device structure.
channel- The channel for which to change the mode.
period- Dither period.
Returns
0 in case of success, negative error code otherwise.

◆ ltc268x_set_dither_phase()

int32_t ltc268x_set_dither_phase ( struct ltc268x_dev * dev,
uint8_t channel,
enum ltc268x_dither_phase phase )

Set channel dither phase.

Parameters
dev- The device structure.
channel- The channel for which to change the mode.
phase- Dither phase.
Returns
0 in case of success, negative error code otherwise.

◆ ltc268x_set_dither_toggle()

int32_t ltc268x_set_dither_toggle ( struct ltc268x_dev * dev,
uint16_t setting )

Enable dither/toggle for selected channels.

Parameters
dev- The device structure.
setting- The setting. Accepted values: LTC268X_DITH_EN(x) | LTC268X_DITH_EN(y) | ...
Returns
0 in case of success, negative error code otherwise.

◆ ltc268x_set_pwr_dac()

int32_t ltc268x_set_pwr_dac ( struct ltc268x_dev * dev,
uint16_t setting )

Power down the selected channels.

Parameters
dev- The device structure.
setting- The setting. Accepted values: LTC268X_PWDN(x) | LTC268X_PWDN(y) | ...
Returns
0 in case of success, negative error code otherwise.

◆ ltc268x_set_span()

int32_t ltc268x_set_span ( struct ltc268x_dev * dev,
uint8_t channel,
enum ltc268x_voltage_range range )

Set channel span.

Parameters
dev- The device structure.
channel- The channel for which to change the mode.
range- Voltage range.
Returns
0 in case of success, negative error code otherwise.

◆ ltc268x_set_voltage()

int32_t ltc268x_set_voltage ( struct ltc268x_dev * dev,
uint8_t channel,
float voltage )

Sets the output voltage of a channel.

Parameters
dev- The device structure.
channel- Channel option.
voltage- Value to be outputted by the DAC(Volts).
Returns
The actual voltage value that can be outputted by the channel.

◆ ltc268x_software_reset()

int32_t ltc268x_software_reset ( struct ltc268x_dev * dev)

Software reset the device.

Parameters
dev- The device structure.
Returns
0 in case of success, negative error code otherwise.

◆ ltc268x_software_toggle()

int32_t ltc268x_software_toggle ( struct ltc268x_dev * dev,
uint8_t channel )

Toggle the software source for dither/toggle.

Parameters
dev- The device structure.
channel- The channel for which to change the mode.
Returns
0 in case of success, negative error code otherwise.