SmartSnippets DA1459x SDK
ad_sdadc.h
Go to the documentation of this file.
1 
44 #ifndef AD_SDADC_H_
45 #define AD_SDADC_H_
46 
47 #if dg_configSDADC_ADAPTER
48 
49 #include "ad.h"
50 #include "hw_gpio.h"
51 #include "hw_sdadc.h"
52 #include "osal.h"
53 #include "resmgmt.h"
54 
55 #ifdef __cplusplus
56 extern "C" {
57 #endif
58 
62 #define HW_SDADC ((void *)SDADC_BASE)
63 typedef void *HW_SDADC_ID;
64 
68 typedef struct ad_sdadc_io_conf {
69  ad_io_conf_t input0;
70  ad_io_conf_t input1;
72 
82 
91 typedef struct ad_sdadc_controller_conf {
92  const HW_SDADC_ID id;
96 
100 typedef void *ad_sdadc_handle_t;
101 
108 typedef void (*ad_sdadc_user_cb)(void *user_data, uint32_t conversions);
109 
114 typedef enum {
115  AD_SDADC_ERROR_NONE = 0,
116  AD_SDADC_ERROR_HANDLE_INVALID = -1,
117  AD_SDADC_ERROR_DRIVER_CONF_INVALID = -2,
118  AD_SDADC_ERROR_DRIVER_INPUT_INVALID = -3,
119  AD_SDADC_ERROR_DRIVER_MODE_INVALID = -4,
120  AD_SDADC_ERROR_DRIVER_UNINITIALIZED = -5,
121  AD_SDADC_ERROR_IO_CONF_INVALID = -6,
122  AD_SDADC_ERROR_CB_INVALID = -7,
123  AD_SDADC_ERROR_READ_IN_PROGRESS = -8,
124  AD_SDADC_ERROR_CANNOT_ACQUIRE = -9,
125  AD_SDADC_ERROR_ID_INVALID = -10,
126  AD_SDADC_ERROR_IO_CFG_INVALID = -11,
127  AD_SDADC_ERROR_OTHER = -12,
129 
136 void ad_sdadc_init(void);
137 
153 
167 int ad_sdadc_reconfig(const ad_sdadc_handle_t handle, const ad_sdadc_driver_conf_t *drv);
168 
187 int ad_sdadc_close(const ad_sdadc_handle_t handle, bool forced);
188 
204 int ad_sdadc_io_config(const HW_SDADC_ID id, const ad_sdadc_io_conf_t *io, AD_IO_CONF_STATE state);
205 
223 int ad_sdadc_read_async(const ad_sdadc_handle_t handle, uint32_t nof_conv, uint16_t *outbuf, ad_sdadc_user_cb read_async_cb, void *user_data);
224 
241 int ad_sdadc_read(const ad_sdadc_handle_t handle, uint32_t nof_conv, uint16_t *outbuf);
242 
254 __STATIC_FORCEINLINE int32_t ad_sdadc_conv_to_mvolt(const ad_sdadc_controller_conf_t *conf, uint32_t raw_value)
255 {
256  return hw_sdadc_convert_to_millivolt(conf->drv, raw_value);
257 }
258 
268 __STATIC_FORCEINLINE void ad_sdadc_store_ext_ref_calibration_values(int16_t gain, int16_t offset)
269 {
271 }
272 
273 #ifdef __cplusplus
274 }
275 #endif
276 
277 #endif /* dg_configSDADC_ADAPTER */
278 
279 #endif /* AD_SDADC_H_ */
280 
ad_sdadc_init
void ad_sdadc_init(void)
Initialize SDADC adapter and some required variables.
ad_sdadc_driver_conf_t
hw_sdadc_config_t ad_sdadc_driver_conf_t
SDADC driver configuration.
Definition: ad_sdadc.h:81
ad_sdadc_reconfig
int ad_sdadc_reconfig(const ad_sdadc_handle_t handle, const ad_sdadc_driver_conf_t *drv)
Reconfigure SDADC controller.
ad_sdadc_read
int ad_sdadc_read(const ad_sdadc_handle_t handle, uint32_t nof_conv, uint16_t *outbuf)
Read synchronously nof_conv conversions from the selected source.
hw_sdadc_config_t
SDADC configuration.
Definition: hw_sdadc.h:257
ad_sdadc_store_ext_ref_calibration_values
__STATIC_FORCEINLINE void ad_sdadc_store_ext_ref_calibration_values(int16_t gain, int16_t offset)
Store external reference voltage calibration values.
Definition: ad_sdadc.h:268
ad_sdadc_io_conf
SDADC I/O configuration.
Definition: ad_sdadc.h:68
resmgmt.h
Resource management API.
osal.h
OS abstraction layer API.
hw_sdadc_convert_to_millivolt
int32_t hw_sdadc_convert_to_millivolt(const hw_sdadc_config_t *cfg, uint16_t raw)
Convert the ADC value to mV.
ad_sdadc_controller_conf::id
const HW_SDADC_ID id
Definition: ad_sdadc.h:92
ad_sdadc_io_config
int ad_sdadc_io_config(const HW_SDADC_ID id, const ad_sdadc_io_conf_t *io, AD_IO_CONF_STATE state)
Initialize controller pins to on / off io configuration.
ad_sdadc_user_cb
void(* ad_sdadc_user_cb)(void *user_data, uint32_t conversions)
Asynchronous callback function.
Definition: ad_sdadc.h:108
ad_sdadc_controller_conf_t
struct ad_sdadc_controller_conf ad_sdadc_controller_conf_t
SDADC controller configuration.
ad.h
Adapters shared definitions.
ad_sdadc_read_async
int ad_sdadc_read_async(const ad_sdadc_handle_t handle, uint32_t nof_conv, uint16_t *outbuf, ad_sdadc_user_cb read_async_cb, void *user_data)
Read asynchronously nof_conv conversions from the selected source.
AD_IO_CONF_STATE
AD_IO_CONF_STATE
Adapters IO configuration state.
Definition: ad.h:65
ad_sdadc_open
ad_sdadc_handle_t ad_sdadc_open(const ad_sdadc_controller_conf_t *conf)
Open SDADC controller.
ad_sdadc_conv_to_mvolt
__STATIC_FORCEINLINE int32_t ad_sdadc_conv_to_mvolt(const ad_sdadc_controller_conf_t *conf, uint32_t raw_value)
Convert raw value read from SDADC to voltage in mV. The same configuration which was used to obtain t...
Definition: ad_sdadc.h:254
hw_gpio.h
Definition of API for the GPIO Low Level Driver.
ad_sdadc_controller_conf
SDADC controller configuration.
Definition: ad_sdadc.h:91
ad_sdadc_handle_t
void * ad_sdadc_handle_t
SDADC Handle returned by ad_sdadc_open()
Definition: ad_sdadc.h:100
ad_sdadc_io_conf_t
struct ad_sdadc_io_conf ad_sdadc_io_conf_t
SDADC I/O configuration.
hw_sdadc_store_ext_ref_calibration_values
void hw_sdadc_store_ext_ref_calibration_values(int16_t gain, int16_t offset)
Store external reference voltage calibration values.
AD_SDADC_ERROR
AD_SDADC_ERROR
Error Codes.
Definition: ad_sdadc.h:114
ad_io_conf_t
Adapters IO configuration.
Definition: ad.h:104
hw_sdadc.h
Definition of API for the SDADC Low Level Driver.
ad_sdadc_controller_conf::drv
const ad_sdadc_driver_conf_t * drv
Definition: ad_sdadc.h:94
ad_sdadc_controller_conf::io
const ad_sdadc_io_conf_t * io
Definition: ad_sdadc.h:93
ad_sdadc_close
int ad_sdadc_close(const ad_sdadc_handle_t handle, bool forced)
Close SDADC controller.