no-OS
Loading...
Searching...
No Matches
ad5592r.h
Go to the documentation of this file.
1/***************************************************************************/
34#ifndef AD5592R_H_
35#define AD5592R_H_
36
37#include "stdint.h"
38#include "ad5592r-base.h"
39
40#define AD5592R_GPIO_READBACK_EN NO_OS_BIT(10)
41#define AD5592R_LDAC_READBACK_EN NO_OS_BIT(6)
42
43/*
44 * ad5592r datasheet pg 8:
45 * Temperature conversion takes 5us when ADC buffer enabled
46 * and 20us when buffer disabled. But real world tests show they are much
47 * higher. We pad additional 100us to account for the the variance in tracking
48 * time.
49 */
50#define AD5592R_TRACING_VARIANCE_PAD 100
51#define AD5592R_TEMPERATURE_TRACK_TIME_BUFFERED (5 + AD5592R_TRACING_VARIANCE_PAD)
52#define AD5592R_TEMPERATURE_TRACK_TIME_UNBUFFERED (20 + AD5592R_TRACING_VARIANCE_PAD)
53
54#define swab16(x) \
55 ((((x) & 0x00ff) << 8) | \
56 (((x) & 0xff00) >> 8))
57
58int32_t ad5592r_write_dac(struct ad5592r_dev *dev, uint8_t chan,
59 uint16_t value);
60int32_t ad5592r_read_adc(struct ad5592r_dev *dev, uint8_t chan,
61 uint16_t *value);
62int32_t ad5592r_multi_read_adc(struct ad5592r_dev *dev,
63 uint16_t chans, uint16_t *value);
64int32_t ad5592r_reg_write(struct ad5592r_dev *dev, uint8_t reg,
65 uint16_t value);
66int32_t ad5592r_reg_read(struct ad5592r_dev *dev, uint8_t reg,
67 uint16_t *value);
68int32_t ad5592r_gpio_read(struct ad5592r_dev *dev, uint8_t *value);
69int32_t ad5592r_init(struct ad5592r_dev **dev,
71int32_t ad5592r_remove(struct ad5592r_dev *dev);
72int32_t ad5592r_enable_busy(struct ad5592r_dev *dev, bool enable);
73int32_t ad5592r_spi_wnop_r16(struct ad5592r_dev *dev, uint16_t *buf);
74
75#endif /* AD5592R_H_ */
Header file of AD5592R Base Driver.
int32_t ad5592r_reg_read(struct ad5592r_dev *dev, uint8_t reg, uint16_t *value)
Definition ad5592r.c:280
int32_t ad5592r_read_adc(struct ad5592r_dev *dev, uint8_t chan, uint16_t *value)
Definition ad5592r.c:144
int32_t ad5592r_gpio_read(struct ad5592r_dev *dev, uint8_t *value)
Definition ad5592r.c:311
int32_t ad5592r_spi_wnop_r16(struct ad5592r_dev *dev, uint16_t *buf)
Definition ad5592r.c:93
int32_t ad5592r_init(struct ad5592r_dev **dev, struct ad5592r_init_param *init_param)
Definition ad5592r.c:339
int32_t ad5592r_remove(struct ad5592r_dev *dev)
Definition ad5592r.c:428
int32_t ad5592r_multi_read_adc(struct ad5592r_dev *dev, uint16_t chans, uint16_t *value)
Definition ad5592r.c:216
int32_t ad5592r_reg_write(struct ad5592r_dev *dev, uint8_t reg, uint16_t value)
Definition ad5592r.c:261
int32_t ad5592r_write_dac(struct ad5592r_dev *dev, uint8_t chan, uint16_t value)
Definition ad5592r.c:116
int32_t ad5592r_enable_busy(struct ad5592r_dev *dev, bool enable)
Definition ad5592r.c:192
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
Definition ad5592r-base.h:139
Definition ad5592r-base.h:125