no-OS
ad799x.h
Go to the documentation of this file.
1 /***************************************************************************/
34 #ifndef __AD799X_H__
35 #define __AD799X_H__
36 
37 /******************************************************************************/
38 /***************************** Include Files **********************************/
39 /******************************************************************************/
40 #include <stdint.h>
41 #include "no_os_i2c.h"
42 
43 /******************************************************************************/
44 /******************************** AD799x **************************************/
45 /******************************************************************************/
46 
47 /* Configuration Register definition. */
48 #define AD799X_CHANNEL(ch) ((1 << ch) << 4)
49 #define AD799X_REF_SEL (1 << 3)
50 #define AD799X_FLTR (1 << 2)
51 #define AD799X_BIT_TRIAL_DELAY (1 << 1)
52 #define AD799X_SAMPLE_DELAY (1 << 0)
53 
54 /******************************************************************************/
55 /*************************** Types Declarations *******************************/
56 /******************************************************************************/
57 
58 /* Supported devices */
63 };
64 
65 struct ad799x_dev {
66  /* I2C */
68  /* Device Settings */
69  uint8_t bits_number;
70 };
71 
73  /* I2C */
75  /* Device Settings */
77 };
78 
79 /******************************************************************************/
80 /************************ Functions Declarations ******************************/
81 /******************************************************************************/
82 
84 int8_t ad799x_init(struct ad799x_dev **device,
86 
88 int32_t ad799x_remove(struct ad799x_dev *dev);
89 
92  uint8_t register_value);
93 
96  int16_t* conv_value,
97  int8_t* channel);
98 
100 float ad799x_convert_to_volts(struct ad799x_dev *dev,
101  int16_t raw_sample,
102  float v_ref);
103 
104 #endif /* __AD799X_H__ */
AD7995
@ AD7995
Definition: ad799x.h:61
no_os_alloc.h
no_os_i2c_write
int32_t no_os_i2c_write(struct no_os_i2c_desc *desc, uint8_t *data, uint8_t bytes_number, uint8_t stop_bit)
I2C Write data to slave device.
Definition: no_os_i2c.c:159
no_os_i2c_init
int32_t no_os_i2c_init(struct no_os_i2c_desc **desc, const struct no_os_i2c_init_param *param)
Initialize the I2C communication peripheral.
Definition: no_os_i2c.c:52
ad799x_convert_to_volts
float ad799x_convert_to_volts(struct ad799x_dev *dev, int16_t raw_sample, float v_ref)
Converts a raw sample to volts.
Definition: ad799x.c:150
no_os_i2c_remove
int32_t no_os_i2c_remove(struct no_os_i2c_desc *desc)
Free the resources allocated by no_os_i2c_init().
Definition: no_os_i2c.c:113
ad799x_init_param
Definition: ad799x.h:72
ad799x_dev::i2c_desc
struct no_os_i2c_desc * i2c_desc
Definition: ad799x.h:67
device
Definition: ad9361_util.h:69
ad799x_init_param::part_number
enum ad799x_type part_number
Definition: ad799x.h:76
ad799x_remove
int32_t ad799x_remove(struct ad799x_dev *dev)
Free the resources allocated by ad799x_init().
Definition: ad799x.c:94
ad799x.h
Header file of AD799x Driver.
ad799x_init_param::i2c_init
struct no_os_i2c_init_param i2c_init
Definition: ad799x.h:74
ad799x_set_configuration_reg
void ad799x_set_configuration_reg(struct ad799x_dev *dev, uint8_t register_value)
Writes data into the Configuration Register.
Definition: ad799x.c:113
ad799x_convert_to_volts
float ad799x_convert_to_volts(struct ad799x_dev *dev, int16_t raw_sample, float v_ref)
Converts a raw sample to volts.
Definition: ad799x.c:150
ad799x_set_configuration_reg
void ad799x_set_configuration_reg(struct ad799x_dev *dev, uint8_t register_value)
Writes data into the Configuration Register.
Definition: ad799x.c:113
ad799x_init
int8_t ad799x_init(struct ad799x_dev **device, struct ad799x_init_param init_param)
Initializes I2C.
Definition: ad799x.c:56
ad799x_dev::bits_number
uint8_t bits_number
Definition: ad799x.h:69
ad799x_dev
Definition: ad799x.h:65
ad799x_get_conversion_result
void ad799x_get_conversion_result(struct ad799x_dev *dev, int16_t *conv_value, int8_t *channel)
Reads the High byte and the Low byte of the conversion.
Definition: ad799x.c:128
no_os_i2c_desc
Structure holding I2C address descriptor.
Definition: no_os_i2c.h:101
no_os_i2c_read
int32_t no_os_i2c_read(struct no_os_i2c_desc *desc, uint8_t *data, uint8_t bytes_number, uint8_t stop_bit)
I2C Read data from slave device.
Definition: no_os_i2c.c:190
AD7999
@ AD7999
Definition: ad799x.h:62
no_os_malloc
void * no_os_malloc(size_t size)
Allocate memory and return a pointer to it.
Definition: chibios_alloc.c:43
no_os_i2c.h
Header file of I2C Interface.
no_os_free
void no_os_free(void *ptr)
Deallocate memory previously allocated by a call to no_os_calloc or no_os_malloc.
Definition: chibios_alloc.c:69
ad799x_type
ad799x_type
Definition: ad799x.h:59
AD7991
@ AD7991
Definition: ad799x.h:60
no_os_i2c_init_param
Structure holding the parameters for I2C initialization.
Definition: no_os_i2c.h:64
init_param
struct ad7616_init_param init_param
Definition: ad7616_sdz.c:113
ad799x_get_conversion_result
void ad799x_get_conversion_result(struct ad799x_dev *dev, int16_t *conv_value, int8_t *channel)
Reads the High byte and the Low byte of the conversion.
Definition: ad799x.c:128
ad799x_init
int8_t ad799x_init(struct ad799x_dev **device, struct ad799x_init_param init_param)
Initializes I2C.
Definition: ad799x.c:56
ad799x_remove
int32_t ad799x_remove(struct ad799x_dev *dev)
Free the resources allocated by ad799x_init().
Definition: ad799x.c:94