no-OS
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
ad2s1210.h
Go to the documentation of this file.
1/***************************************************************************/
34#ifndef AD2S1210_H_
35#define AD2S1210_H_
36
37#include <stdint.h>
38#include <stdbool.h>
39#include "no_os_spi.h"
40#include "no_os_gpio.h"
41
42#define AD2S1210_REG_POSITION 0x80
43#define AD2S1210_REG_VELOCITY 0x82
44#define AD2S1210_REG_LOS_THRD 0x88
45#define AD2S1210_REG_DOS_OVR_THRD 0x89
46#define AD2S1210_REG_DOS_MIS_THRD 0x8A
47#define AD2S1210_REG_DOS_RST_MAX_THRD 0x8B
48#define AD2S1210_REG_DOS_RST_MIN_THRD 0x8C
49#define AD2S1210_REG_LOT_HIGH_THRD 0x8D
50#define AD2S1210_REG_LOT_LOW_THRD 0x8E
51#define AD2S1210_REG_EXCIT_FREQ 0x91
52#define AD2S1210_REG_CONTROL 0x92
53#define AD2S1210_CONTROL_RES_MASK NO_OS_GENMASK(1, 0)
54#define AD2S1210_CONTROL_RES0_MASK NO_OS_BIT(0)
55#define AD2S1210_CONTROL_RES1_MASK NO_OS_BIT(1)
56#define AD2S1210_ENABLE_HYSTERESIS NO_OS_BIT(4)
57
58#define AD2S1210_REG_SOFT_RESET 0xF0
59#define AD2S1210_REG_FAULT 0xFF
60
61#define AD2S1210_REG_MIN AD2S1210_REG_POSITION
62
63#define AD2S1210_MIN_CLKIN 6144000
64#define AD2S1210_MAX_CLKIN 10240000
65#define AD2S1210_MIN_EXCIT 2000
66#define AD2S1210_MAX_EXCIT 20000
67#define AD2S1210_STEP_EXCIT 250
68#define AD2S1210_MIN_FCW 0x4
69#define AD2S1210_MAX_FCW 0x50
70
71#define AD2S1210_POS_MASK NO_OS_BIT(0)
72#define AD2S1210_VEL_MASK NO_OS_BIT(1)
73
80
87
92
103
118
119int ad2s1210_init(struct ad2s1210_dev **dev,
121int ad2s1210_remove(struct ad2s1210_dev *dev);
122int ad2s1210_reg_write(struct ad2s1210_dev *dev, uint8_t addr,
123 uint8_t val);
124int ad2s1210_reg_read(struct ad2s1210_dev *dev, uint8_t addr,
125 uint8_t *val);
127 uint32_t active_mask,
128 void *data, uint32_t size);
130int ad2s1210_set_hysteresis(struct ad2s1210_dev *dev, bool enable);
132 uint16_t fexcit);
134 uint16_t *fexcit);
135#endif
int ad2s1210_reg_write(struct ad2s1210_dev *dev, uint8_t addr, uint8_t val)
Definition ad2s1210.c:54
ad2s1210_res
Definition ad2s1210.h:81
@ AD2S1210_RES_16BIT
Definition ad2s1210.h:85
@ AD2S1210_RES_12BIT
Definition ad2s1210.h:83
@ AD2S1210_RES_10BIT
Definition ad2s1210.h:82
@ AD2S1210_RES_14BIT
Definition ad2s1210.h:84
ad2s1210_mode
Definition ad2s1210.h:74
@ MODE_VEL
Definition ad2s1210.h:77
@ MODE_CONFIG
Definition ad2s1210.h:78
@ MODE_POS
Definition ad2s1210.h:75
@ MODE_RESERVED
Definition ad2s1210.h:76
int ad2s1210_remove(struct ad2s1210_dev *dev)
Remove the driver's descriptor by freeing the associated resources.
Definition ad2s1210.c:495
int ad2s1210_get_excitation_frequency(struct ad2s1210_dev *dev, uint16_t *fexcit)
Definition ad2s1210.c:153
int ad2s1210_reg_read(struct ad2s1210_dev *dev, uint8_t addr, uint8_t *val)
Definition ad2s1210.c:84
ad2s1210_channel
Definition ad2s1210.h:88
@ AD2S1210_POS
Definition ad2s1210.h:89
@ AD2S1210_VEL
Definition ad2s1210.h:90
int ad2s1210_spi_single_conversion(struct ad2s1210_dev *dev, uint32_t active_mask, void *data, uint32_t size)
Returns the result of a conversion.
Definition ad2s1210.c:449
int ad2s1210_reinit_excitation_frequency(struct ad2s1210_dev *dev, uint16_t fexcit)
Definition ad2s1210.c:124
int ad2s1210_set_hysteresis(struct ad2s1210_dev *dev, bool enable)
Definition ad2s1210.c:197
int ad2s1210_hysteresis_is_enabled(struct ad2s1210_dev *dev)
Definition ad2s1210.c:174
int ad2s1210_init(struct ad2s1210_dev **dev, struct ad2s1210_init_param *init_param)
Definition ad2s1210.c:303
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
Header file of GPIO Interface.
Header file of SPI Interface.
Definition ad2s1210.h:104
struct no_os_gpio_desc * gpio_a0
Definition ad2s1210.h:112
struct no_os_spi_desc * spi_desc
Definition ad2s1210.h:110
struct no_os_gpio_desc * gpio_sample
Definition ad2s1210.h:115
const char * name
Definition ad2s1210.h:105
enum ad2s1210_res resolution
Definition ad2s1210.h:109
struct no_os_gpio_desc * gpio_res1
Definition ad2s1210.h:114
struct no_os_gpio_desc * gpio_res0
Definition ad2s1210.h:113
bool have_mode_pins
Definition ad2s1210.h:106
bool have_resolution_pins
Definition ad2s1210.h:107
uint32_t clkin_hz
Definition ad2s1210.h:116
enum ad2s1210_mode mode
Definition ad2s1210.h:108
struct no_os_gpio_desc * gpio_a1
Definition ad2s1210.h:111
Definition ad2s1210.h:93
struct no_os_gpio_init_param gpio_res0
Definition ad2s1210.h:97
struct no_os_gpio_init_param gpio_sample
Definition ad2s1210.h:99
struct no_os_spi_init_param spi_init
Definition ad2s1210.h:94
struct no_os_gpio_init_param gpio_a0
Definition ad2s1210.h:95
struct no_os_gpio_init_param gpio_a1
Definition ad2s1210.h:96
uint32_t clkin_hz
Definition ad2s1210.h:101
struct no_os_gpio_init_param gpio_res1
Definition ad2s1210.h:98
int8_t resolution
Definition ad2s1210.h:100
Structure holding the GPIO descriptor.
Definition no_os_gpio.h:84
Structure holding the parameters for GPIO initialization.
Definition no_os_gpio.h:67
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128