SmartSnippets DA1459x SDK
hw_sdadc.h
Go to the documentation of this file.
1 
45 #ifndef HW_SDADC_H
46 #define HW_SDADC_H
47 
48 
49 #if dg_configUSE_HW_SDADC
50 
51 #include <stdbool.h>
52 #include <stdint.h>
53 #include "sdk_defs.h"
54 
61 #define HW_SDADC_DMA_SUPPORT dg_configSDADC_DMA_SUPPORT
62 
63 /*=============================================================================================*/
64 /* Macro, type and data-structure definitions */
65 /*=============================================================================================*/
66 
74 #if HW_SDADC_DMA_SUPPORT
75 #include "hw_dma.h"
76 
80 typedef struct {
83  bool circular;
84  uint16 irq_nr_of_trans;
86 #endif
87 
92 typedef void (*hw_sdadc_read_cb)(void *user_data, uint32_t conv_to_go);
93 
98 typedef enum {
102 
107 typedef enum {
113 
121 #define HW_SDADC_VREF_VOLTAGE_INTERNAL ( 900 )
126 #define HW_SDADC_VREF_VOLTAGE_MAX HW_SDADC_VREF_VOLTAGE_INTERNAL
127 
128 #define HW_SDADC_VREF_IN_RANGE(voltage) ((uint16_t)voltage <= HW_SDADC_VREF_VOLTAGE_MAX)
129 
134 typedef enum {
145 
150 typedef enum {
153 } HW_SDADC_MODE;
154 
162 typedef enum {
163  HW_SDADC_IN_ADC0 = HW_SDADC_IN_ADC0_P1_00,
164  HW_SDADC_IN_ADC1 = HW_SDADC_IN_ADC1_P1_01,
165  HW_SDADC_IN_ADC2 = HW_SDADC_IN_ADC2_P1_02,
166  HW_SDADC_IN_ADC3 = HW_SDADC_IN_ADC3_P0_10,
167  HW_SDADC_IN_ADC4 = HW_SDADC_IN_ADC4_P1_05,
168  HW_SDADC_IN_ADC5 = HW_SDADC_IN_ADC5_P1_06,
169  HW_SDADC_IN_ADC6 = HW_SDADC_IN_ADC6_P1_09,
170  HW_SDADC_IN_ADC7 = HW_SDADC_IN_ADC7_P1_11,
171  HW_SDADC_INP_VBAT = HW_SDADC_IN_VBAT,
173 
178 typedef enum {
183 } HW_SDADC_OSR;
184 
185 
190 typedef enum {
200 
205 typedef enum {
211 
212 
217 typedef enum {
227 
232 typedef enum {
238 
239 typedef struct {
240  HW_SDADC_PGA_GAIN pga_gain;
241  HW_SDADC_PGA_MODE pga_mode;
242  HW_SDADC_PGA_BIAS pga_bias;
243  HW_SDADC_PGA_EN pga_en;
244 } hw_sdadc_pga_config_t;
245 
246 
251 typedef void (*hw_sdadc_interrupt_cb)(void);
252 
257 typedef struct {
261  bool continuous;
264  uint16_t vref_voltage;
265 #if HW_SDADC_DMA_SUPPORT
267 #endif
268  hw_sdadc_pga_config_t *pga_setup;
270 
275 /*
276  * Necessary forward declaration
277  */
278 __STATIC_INLINE bool hw_sdadc_in_progress(void);
279 
280 /*=============================================================================================*/
281 /* Configuring the SDADC */
282 /*=============================================================================================*/
283 
296 __STATIC_INLINE void hw_sdadc_enable_interrupt(void)
297 {
298  REG_SETF(SDADC, SDADC_CTRL_REG, SDADC_MINT, 1);
299 }
300 
305 __STATIC_INLINE void hw_sdadc_disable_interrupt(void)
306 {
307  REG_SETF(SDADC, SDADC_CTRL_REG, SDADC_MINT, 0);
308 }
309 
316 __STATIC_INLINE bool hw_sdadc_is_interrupt_enabled(void)
317 {
318  return (!!(REG_GETF(SDADC, SDADC_CTRL_REG, SDADC_MINT)));
319 }
320 
332 __STATIC_INLINE void hw_sdadc_set_continuous(bool enabled)
333 {
334  REG_SETF(SDADC, SDADC_CTRL_REG, SDADC_CONT, (uint32_t) !!enabled);
335 }
336 
343 __STATIC_INLINE bool hw_sdadc_get_continuous(void)
344 {
345  return (!!(REG_GETF(SDADC, SDADC_CTRL_REG, SDADC_CONT)));
346 }
347 
354 __STATIC_INLINE void hw_sdadc_set_dma_functionality(bool enabled)
355 {
356  REG_SETF(SDADC, SDADC_CTRL_REG, SDADC_DMA_EN, !!enabled);
357 }
358 
365 __STATIC_INLINE bool hw_sdadc_get_dma_functionality(void)
366 {
367  return (bool) REG_GETF(SDADC, SDADC_CTRL_REG, SDADC_DMA_EN);
368 }
369 
377 
385 {
386  return (HW_SDADC_INPUT_MODE) REG_GETF(SDADC, SDADC_CTRL_REG, SDADC_SE);
387 }
388 
398 __STATIC_FORCEINLINE void hw_sdadc_set_oversampling(HW_SDADC_OSR osr)
399 {
400  REG_SETF(SDADC, SDADC_CTRL_REG, SDADC_OSR, osr);
401 }
409 {
410  return (HW_SDADC_OSR) REG_GETF(SDADC, SDADC_CTRL_REG, SDADC_OSR);
411 }
412 
420 __STATIC_INLINE void hw_sdadc_set_vref_sel(HW_SDADC_VREF_SEL vref_sel)
421 {
422  REG_SETF(SDADC, SDADC_CTRL_REG, SDADC_VREF_SEL, vref_sel);
423 }
424 
434 {
435  return (HW_SDADC_VREF_SEL) REG_GETF(SDADC, SDADC_CTRL_REG, SDADC_VREF_SEL);
436 }
437 
444 __STATIC_INLINE uint16_t hw_sdadc_get_raw_value(void)
445 {
446  return REG_GETF(SDADC, SDADC_RESULT_REG, SDADC_VAL);
447 }
448 
449 
456 __STATIC_INLINE void hw_sdadc_connect_vref_to_pad(void)
457 {
458  REG_SETF(SDADC, SDADC_CTRL_REG, SDADC_VREF_TO_PAD, 1);
459 }
460 
467 __STATIC_INLINE void hw_sdadc_disconnect_vref_from_pad(void)
468 {
469  REG_SETF(SDADC, SDADC_CTRL_REG, SDADC_VREF_TO_PAD, 0);
470 }
471 
472 /*
473  * \brief Check reference voltage connection to GPIO pad
474  *
475  * Connect internal SDADC reference voltage VREF (0.9V) to P1[5]
476  * 0: Disconnected (default)
477  * 1: Connected
478  *
479  * \return reference voltage connected/disconnected to P1[5]
480  *
481  */
482 __STATIC_INLINE bool hw_sdadc_is_vref_connected_to_pad(void)
483 {
484  return (!!(REG_GETF(SDADC, SDADC_CTRL_REG, SDADC_VREF_TO_PAD)));
485 }
486 
491 /*=============================================================================================*/
492 /* Calibration functions */
493 /*=============================================================================================*/
494 
508 __STATIC_FORCEINLINE void hw_sdadc_set_gain_correction(uint16_t gain)
509 {
510  REG_SETF(SDADC, SDADC_GAIN_CORR_REG, SDADC_GAIN_CORR, gain);
511 }
512 
519 __STATIC_INLINE uint16_t hw_sdadc_get_gain_correction(void)
520 {
521  return (uint16_t) REG_GETF(SDADC, SDADC_GAIN_CORR_REG, SDADC_GAIN_CORR);
522 }
523 
530 __STATIC_INLINE void hw_sdadc_set_offset_correction(uint16_t offset)
531 {
532  REG_SETF(SDADC, SDADC_OFFS_CORR_REG, SDADC_OFFS_CORR, offset);
533 }
534 
541 __STATIC_INLINE uint16_t hw_sdadc_get_offset_correction(void)
542 {
543  return REG_GETF(SDADC, SDADC_OFFS_CORR_REG, SDADC_OFFS_CORR);
544 }
545 
550 /*=============================================================================================*/
551 /* Configuring the PGA in SDADC */
552 /*=============================================================================================*/
553 
567 __STATIC_INLINE void hw_sdadc_pga_set_gain(HW_SDADC_PGA_GAIN gain)
568 {
569  REG_SETF(SDADC, SDADC_PGA_CTRL_REG, PGA_GAIN, gain);
570 }
571 
578 {
579  return (HW_SDADC_PGA_GAIN) REG_GETF(SDADC, SDADC_PGA_CTRL_REG, PGA_GAIN);
580 }
581 
589 {
590  ASSERT_WARNING((mode & 0x03) != HW_SDADC_PGA_MODE_RESERVED);
591  REG_SETF(SDADC, SDADC_PGA_CTRL_REG, PGA_SINGLE, mode);
592 }
593 
600 {
601  return (HW_SDADC_PGA_MODE) REG_GETF(SDADC, SDADC_PGA_CTRL_REG, PGA_SINGLE);
602 }
603 
608 __STATIC_INLINE void hw_sdadc_pga_mute(void)
609 {
610  REG_SETF(SDADC, SDADC_PGA_CTRL_REG, PGA_MUTE, 1);
611 }
612 
617 __STATIC_INLINE void hw_sdadc_pga_unmute(void)
618 {
619  REG_SETF(SDADC, SDADC_PGA_CTRL_REG, PGA_MUTE, 0);
620 }
621 
627 __STATIC_INLINE bool hw_sdadc_pga_is_mute(void)
628 {
629  return REG_GETF(SDADC, SDADC_PGA_CTRL_REG, PGA_MUTE);
630 }
631 
637 __STATIC_INLINE void hw_sdadc_pga_set_bias(HW_SDADC_PGA_BIAS bias)
638 {
639  REG_SETF(SDADC, SDADC_PGA_CTRL_REG, PGA_BIAS, bias);
640 }
641 
648 {
649  return (HW_SDADC_PGA_BIAS) REG_GETF(SDADC, SDADC_PGA_CTRL_REG, PGA_BIAS);
650 }
651 
652 
657 __STATIC_INLINE void hw_sdadc_pga_short_inputs(void)
658 {
659  REG_SETF(SDADC, SDADC_PGA_CTRL_REG, PGA_SHORTIN, 1);
660 }
661 
666 __STATIC_INLINE void hw_sdadc_pga_unshort_inputs(void)
667 {
668  REG_SETF(SDADC, SDADC_PGA_CTRL_REG, PGA_SHORTIN, 0);
669 }
670 
676 __STATIC_INLINE bool hw_sdadc_pga_inputs_are_shorted(void)
677 {
678  return REG_GETF(SDADC, SDADC_PGA_CTRL_REG, PGA_SHORTIN);
679 }
680 
687 {
688  REG_SETF(SDADC, SDADC_PGA_CTRL_REG, PGA_EN, channels);
689 }
690 
697 {
698  return (HW_SDADC_PGA_GAIN) REG_GETF(SDADC, SDADC_PGA_CTRL_REG, PGA_EN);
699 }
700 
709 __STATIC_INLINE void hw_sdadc_set_cic_offset(uint32_t val)
710 {
711  ASSERT_WARNING(hw_sdadc_in_progress() == false);
712  REG_SETF(SDADC, SDADC_AUDIO_FILT_REG, SDADC_CIC_OFFSET, val);
713 }
714 
723 __STATIC_INLINE uint32_t hw_sdadc_get_cic_offset(void)
724 {
725  return REG_GETF(SDADC, SDADC_AUDIO_FILT_REG, SDADC_CIC_OFFSET);
726 }
727 
732 /*=============================================================================================*/
733 /* Basic functionality of the SDADC */
734 /*=============================================================================================*/
735 
758 void hw_sdadc_init(const hw_sdadc_config_t *cfg);
759 
775 void hw_sdadc_audio_init(hw_sdadc_interrupt_cb cb, const hw_sdadc_pga_config_t *cfg);
776 
777 
787 void hw_sdadc_configure(const hw_sdadc_config_t *cfg);
788 
802 
810 
819 __STATIC_INLINE void hw_sdadc_clear_interrupt(void)
820 {
821  REG_SETF(SDADC, SDADC_CLEAR_INT_REG, SDADC_CLR_INT, 1);
822 }
823 
833 void hw_sdadc_stop_and_wait(void);
834 
844 __STATIC_INLINE void hw_sdadc_enable(void)
845 {
846  REG_SETF(SDADC, SDADC_CTRL_REG, SDADC_EN, 1);
847  while (0 == REG_GETF(SDADC, SDADC_CTRL_REG, SDADC_LDO_OK)); // Wait for LDO OK
848 }
849 
860 __STATIC_INLINE void hw_sdadc_disable(void)
861 {
863 
864  REG_SETF(SDADC, SDADC_CTRL_REG, SDADC_EN, 0);
865 }
866 
873 __STATIC_INLINE bool hw_sdadc_is_enabled(void)
874 {
875  return REG_GETF(SDADC, SDADC_CTRL_REG, SDADC_EN);
876 }
877 
886 void hw_sdadc_start(void);
893 __STATIC_INLINE bool hw_sdadc_in_progress(void)
894 {
895  return (!!(REG_GETF(SDADC, SDADC_CTRL_REG, SDADC_START)));
896 }
897 
898 
907 __STATIC_INLINE void hw_sdadc_adc_measure(void)
908 {
909  ASSERT_WARNING(hw_sdadc_get_continuous() == false);
910  hw_sdadc_start();
911  while (hw_sdadc_in_progress());
912 }
913 
925 int32_t hw_sdadc_get_voltage(const hw_sdadc_config_t *cfg);
926 
936 int32_t hw_sdadc_convert_to_millivolt(const hw_sdadc_config_t *cfg, uint16_t raw);
937 
966 bool hw_sdadc_read(uint32_t nof_conv, uint16_t *out_buf, hw_sdadc_read_cb cb, void *user_data);
967 
977 void hw_sdadc_abort_read(void);
978 
988 void hw_sdadc_store_ext_ref_calibration_values(int16_t gain, int16_t offset);
989 
994 #endif /* dg_configUSE_HW_SDADC */
995 
996 
997 #endif /* HW_SDADC_H_ */
998 
hw_sdadc_pga_inputs_are_shorted
__STATIC_INLINE bool hw_sdadc_pga_inputs_are_shorted(void)
Get the PGA short-input status.
Definition: hw_sdadc.h:676
hw_sdadc_pga_is_mute
__STATIC_INLINE bool hw_sdadc_pga_is_mute(void)
Get the PGA mute status.
Definition: hw_sdadc.h:627
HW_SDADC_VREFN_INTERNAL_VREFP_EXTERNAL
Definition: hw_sdadc.h:109
hw_sdadc_connect_vref_to_pad
__STATIC_INLINE void hw_sdadc_connect_vref_to_pad(void)
Connect reference voltage to GPIO pad.
Definition: hw_sdadc.h:456
HW_SDADC_PGA_BIAS_57
Definition: hw_sdadc.h:221
HW_SDADC_IN_ADC3_P0_10
Definition: hw_sdadc.h:138
hw_sdadc_pga_set_bias
__STATIC_INLINE void hw_sdadc_pga_set_bias(HW_SDADC_PGA_BIAS bias)
Set the PGA bias.
Definition: hw_sdadc.h:637
hw_dma.h
Definition of API for the DMA Low Level Driver.
HW_SDADC_PGA_MODE_SE_N
Definition: hw_sdadc.h:207
HW_SDADC_IN_ADC4_P1_05
Definition: hw_sdadc.h:139
REG_SETF
#define REG_SETF(base, reg, field, new_val)
Set the value of a register field.
Definition: sdk_defs.h:738
HW_SDADC_PGA_GAIN
HW_SDADC_PGA_GAIN
PGA gain selection.
Definition: hw_sdadc.h:190
hw_sdadc_set_input_mode
void hw_sdadc_set_input_mode(HW_SDADC_INPUT_MODE mode)
Set input mode.
hw_sdadc_set_continuous
__STATIC_INLINE void hw_sdadc_set_continuous(bool enabled)
Set continuous mode.
Definition: hw_sdadc.h:332
HW_SDADC_PGA_GAIN_12dB
Definition: hw_sdadc.h:195
HW_SDADC_PGA_ENABLE_BOTH
Definition: hw_sdadc.h:236
HW_SDADC_PGA_GAIN_30dB
Definition: hw_sdadc.h:198
HW_SDADC_IN_ADC0_P1_00
Definition: hw_sdadc.h:135
HW_SDADC_IN_ADC6_P1_09
Definition: hw_sdadc.h:141
hw_sdadc_dma_cfg_t::channel
HW_DMA_CHANNEL channel
Definition: hw_sdadc.h:81
hw_sdadc_dma_cfg_t::irq_nr_of_trans
uint16 irq_nr_of_trans
Definition: hw_sdadc.h:84
HW_SDADC_VREF_SEL
HW_SDADC_VREF_SEL
SDADC VREF selection.
Definition: hw_sdadc.h:107
hw_sdadc_set_dma_functionality
__STATIC_INLINE void hw_sdadc_set_dma_functionality(bool enabled)
Enable/Disable DMA functionality.
Definition: hw_sdadc.h:354
hw_sdadc_get_continuous
__STATIC_INLINE bool hw_sdadc_get_continuous(void)
Get continuous mode state.
Definition: hw_sdadc.h:343
hw_sdadc_register_interrupt
void hw_sdadc_register_interrupt(hw_sdadc_interrupt_cb cb)
Register interrupt handler.
HW_SDADC_INPUT_MODE_DIFFERENTIAL
Definition: hw_sdadc.h:99
HW_SDADC_IN_ADC7_P1_11
Definition: hw_sdadc.h:142
HW_SDADC_PGA_BIAS_40
Definition: hw_sdadc.h:218
hw_sdadc_config_t
SDADC configuration.
Definition: hw_sdadc.h:257
hw_sdadc_start
void hw_sdadc_start(void)
Start conversion.
HW_SDADC_PGA_BIAS_133
Definition: hw_sdadc.h:225
sdk_defs.h
Central include header file with platform definitions.
hw_sdadc_clear_interrupt
__STATIC_INLINE void hw_sdadc_clear_interrupt(void)
Clear interrupt.
Definition: hw_sdadc.h:819
HW_SDADC_PGA_BIAS_100
Definition: hw_sdadc.h:224
HW_SDADC_INPUT_CHANNEL
HW_SDADC_INPUT_CHANNEL
SDADC Input Channel.
Definition: hw_sdadc.h:134
hw_sdadc_pga_mute
__STATIC_INLINE void hw_sdadc_pga_mute(void)
Mute the PGA.
Definition: hw_sdadc.h:608
hw_sdadc_config_t::continuous
bool continuous
Definition: hw_sdadc.h:261
hw_sdadc_pga_unshort_inputs
__STATIC_INLINE void hw_sdadc_pga_unshort_inputs(void)
Disconnect the short-circuited PGA input channels.
Definition: hw_sdadc.h:666
HW_SDADC_PGA_GAIN_MINUS_6dB
Definition: hw_sdadc.h:192
hw_sdadc_dma_cfg_t
Cut-down to necessary DMA configuration.
Definition: hw_sdadc.h:80
hw_sdadc_read
bool hw_sdadc_read(uint32_t nof_conv, uint16_t *out_buf, hw_sdadc_read_cb cb, void *user_data)
Generic read function Follows.
hw_sdadc_is_interrupt_enabled
__STATIC_INLINE bool hw_sdadc_is_interrupt_enabled(void)
Get the status of the SDADC maskable interrupt (MINT) to the CPU.
Definition: hw_sdadc.h:316
hw_sdadc_enable
__STATIC_INLINE void hw_sdadc_enable(void)
Enable SDADC.
Definition: hw_sdadc.h:844
hw_sdadc_get_vref_selection
__STATIC_INLINE HW_SDADC_VREF_SEL hw_sdadc_get_vref_selection(void)
Get voltage reference source.
Definition: hw_sdadc.h:433
HW_SDADC_IN_VBAT
Definition: hw_sdadc.h:143
hw_sdadc_disable_interrupt
__STATIC_INLINE void hw_sdadc_disable_interrupt(void)
Disable SDADC interrupt.
Definition: hw_sdadc.h:305
HW_SDADC_IN_ADC2_P1_02
Definition: hw_sdadc.h:137
HW_SDADC_MODE_SENSOR
Definition: hw_sdadc.h:151
HW_DMA_CHANNEL
HW_DMA_CHANNEL
DMA channel number.
Definition: hw_dma.h:62
hw_sdadc_pga_select_enabled_channels
__STATIC_INLINE void hw_sdadc_pga_select_enabled_channels(HW_SDADC_PGA_EN channels)
Select the enabled PGA input channel(s)
Definition: hw_sdadc.h:686
HW_SDADC_PGA_GAIN_MINUS_12dB
Definition: hw_sdadc.h:191
HW_SDADC_OSR
HW_SDADC_OSR
SDADC oversampling rate.
Definition: hw_sdadc.h:178
hw_sdadc_init
void hw_sdadc_init(const hw_sdadc_config_t *cfg)
Initialize SDADC.
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.
HW_SDADC_VREFN_EXTERNAL_VREFP_INTERNAL
Definition: hw_sdadc.h:110
HW_SDADC_PGA_MODE_RESERVED
Definition: hw_sdadc.h:209
hw_sdadc_set_vref_sel
__STATIC_INLINE void hw_sdadc_set_vref_sel(HW_SDADC_VREF_SEL vref_sel)
Select voltage reference source.
Definition: hw_sdadc.h:420
HW_SDADC_PGA_MODE
HW_SDADC_PGA_MODE
PGA mode selection.
Definition: hw_sdadc.h:205
hw_sdadc_pga_get_gain
__STATIC_INLINE HW_SDADC_PGA_GAIN hw_sdadc_pga_get_gain(void)
Get the PGA gain status.
Definition: hw_sdadc.h:577
HW_SDADC_PGA_GAIN_6dB
Definition: hw_sdadc.h:194
hw_sdadc_configure
void hw_sdadc_configure(const hw_sdadc_config_t *cfg)
Configure SDADC.
HW_SDADC_INPUT_MODE
HW_SDADC_INPUT_MODE
SDADC input mode.
Definition: hw_sdadc.h:98
HW_SDADC_PGA_GAIN_MINUS_0dB
Definition: hw_sdadc.h:193
hw_sdadc_config_t::dma_setup
hw_sdadc_dma_cfg_t * dma_setup
Definition: hw_sdadc.h:266
HW_SDADC_INPUT_MODE_SINGLE_ENDED
Definition: hw_sdadc.h:100
hw_sdadc_in_progress
__STATIC_INLINE bool hw_sdadc_in_progress(void)
Check if conversion is in progress.
Definition: hw_sdadc.h:893
hw_sdadc_config_t::inp
HW_SDADC_INPUT inp
Definition: hw_sdadc.h:260
HW_DMA_PRIO
HW_DMA_PRIO
Channel priority.
Definition: hw_dma.h:163
HW_SDADC_PGA_BIAS_44
Definition: hw_sdadc.h:219
hw_sdadc_pga_set_gain
__STATIC_INLINE void hw_sdadc_pga_set_gain(HW_SDADC_PGA_GAIN gain)
Set the PGA gain.
Definition: hw_sdadc.h:567
HW_SDADC_VREF_INTERNAL
Definition: hw_sdadc.h:108
HW_SDADC_PGA_ENABLE_NEGATIVE
Definition: hw_sdadc.h:235
mode
HW_GPIO_MODE mode
Definition: hw_gpio.h:211
hw_sdadc_set_cic_offset
__STATIC_INLINE void hw_sdadc_set_cic_offset(uint32_t val)
Set the audio filter register.
Definition: hw_sdadc.h:709
HW_SDADC_MODE
HW_SDADC_MODE
SDADC mode (sensor/audio)
Definition: hw_sdadc.h:150
hw_sdadc_enable_interrupt
__STATIC_INLINE void hw_sdadc_enable_interrupt(void)
Enable SDADC interrupt.
Definition: hw_sdadc.h:296
hw_sdadc_get_oversampling
__STATIC_INLINE HW_SDADC_OSR hw_sdadc_get_oversampling(void)
Get current oversampling.
Definition: hw_sdadc.h:408
HW_SDADC_PGA_BIAS_50
Definition: hw_sdadc.h:220
hw_sdadc_config_t::over_sampling
HW_SDADC_OSR over_sampling
Definition: hw_sdadc.h:262
HW_SDADC_PGA_MODE_DIFF
Definition: hw_sdadc.h:206
HW_SDADC_OSR_512
Definition: hw_sdadc.h:180
hw_sdadc_pga_get_mode
__STATIC_INLINE HW_SDADC_PGA_MODE hw_sdadc_pga_get_mode(void)
Get the PGA branch mode status.
Definition: hw_sdadc.h:599
hw_sdadc_get_voltage
int32_t hw_sdadc_get_voltage(const hw_sdadc_config_t *cfg)
Perform an ADC measurement and return the ADC value converted to mV.
hw_sdadc_get_gain_correction
__STATIC_INLINE uint16_t hw_sdadc_get_gain_correction(void)
Get current gain value.
Definition: hw_sdadc.h:519
hw_sdadc_config_t::vref_selection
HW_SDADC_VREF_SEL vref_selection
Definition: hw_sdadc.h:263
HW_SDADC_PGA_BIAS_80
Definition: hw_sdadc.h:223
hw_sdadc_dma_cfg_t::prio
HW_DMA_PRIO prio
Definition: hw_sdadc.h:82
HW_SDADC_OSR_2048
Definition: hw_sdadc.h:182
HW_SDADC_INPUT
HW_SDADC_INPUT
SDADC input selection. Generic names mapping to specific GPIO pins for both positive and negative cha...
Definition: hw_sdadc.h:162
hw_sdadc_audio_init
void hw_sdadc_audio_init(hw_sdadc_interrupt_cb cb, const hw_sdadc_pga_config_t *cfg)
Initialize the SDADC to configure the audio path.
HW_SDADC_IN_ADC1_P1_01
Definition: hw_sdadc.h:136
hw_sdadc_abort_read
void hw_sdadc_abort_read(void)
Stop conversions.
hw_sdadc_pga_unmute
__STATIC_INLINE void hw_sdadc_pga_unmute(void)
Un-mute the PGA.
Definition: hw_sdadc.h:617
REG_GETF
#define REG_GETF(base, reg, field)
Return the value of a register field.
Definition: sdk_defs.h:711
hw_sdadc_disconnect_vref_from_pad
__STATIC_INLINE void hw_sdadc_disconnect_vref_from_pad(void)
Disconnect reference voltage from GPIO pad.
Definition: hw_sdadc.h:467
hw_sdadc_disable
__STATIC_INLINE void hw_sdadc_disable(void)
Disable SDADC.
Definition: hw_sdadc.h:860
HW_SDADC_PGA_BIAS_66
Definition: hw_sdadc.h:222
hw_sdadc_get_raw_value
__STATIC_INLINE uint16_t hw_sdadc_get_raw_value(void)
Get the result register value.
Definition: hw_sdadc.h:444
HW_SDADC_PGA_BIAS
HW_SDADC_PGA_BIAS
PGA bias configuration.
Definition: hw_sdadc.h:217
hw_sdadc_adc_measure
__STATIC_INLINE void hw_sdadc_adc_measure(void)
Start the ADC conversion engine, providing one measurement.
Definition: hw_sdadc.h:907
hw_sdadc_get_offset_correction
__STATIC_INLINE uint16_t hw_sdadc_get_offset_correction(void)
Get current offset value.
Definition: hw_sdadc.h:541
hw_sdadc_get_cic_offset
__STATIC_INLINE uint32_t hw_sdadc_get_cic_offset(void)
Get the audio filter register status.
Definition: hw_sdadc.h:723
HW_SDADC_PGA_ENABLE_NONE
Definition: hw_sdadc.h:233
hw_sdadc_config_t::input_mode
HW_SDADC_INPUT_MODE input_mode
Definition: hw_sdadc.h:258
hw_sdadc_config_t::vref_voltage
uint16_t vref_voltage
Definition: hw_sdadc.h:264
HW_SDADC_PGA_ENABLE_POSITIVE
Definition: hw_sdadc.h:234
hw_sdadc_pga_set_mode
__STATIC_INLINE void hw_sdadc_pga_set_mode(HW_SDADC_PGA_MODE mode)
Set the PGA branch mode. Use PGA in single ended/differential mode.
Definition: hw_sdadc.h:588
hw_sdadc_stop_and_wait
void hw_sdadc_stop_and_wait(void)
Stop and Wait.
HW_SDADC_IN_ADC5_P1_06
Definition: hw_sdadc.h:140
hw_sdadc_interrupt_cb
void(* hw_sdadc_interrupt_cb)(void)
SDADC interrupt handler.
Definition: hw_sdadc.h:251
hw_sdadc_set_offset_correction
__STATIC_INLINE void hw_sdadc_set_offset_correction(uint16_t offset)
Set offset correction.
Definition: hw_sdadc.h:530
hw_sdadc_dma_cfg_t::circular
bool circular
Definition: hw_sdadc.h:83
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.
hw_sdadc_pga_get_bias
__STATIC_INLINE HW_SDADC_PGA_BIAS hw_sdadc_pga_get_bias(void)
Get the PGA bias status.
Definition: hw_sdadc.h:647
HW_SDADC_PGA_EN
HW_SDADC_PGA_EN
PGA enabled branch(es)
Definition: hw_sdadc.h:232
hw_sdadc_read_cb
void(* hw_sdadc_read_cb)(void *user_data, uint32_t conv_to_go)
ADC callback for read function.
Definition: hw_sdadc.h:92
hw_sdadc_get_input_mode
__STATIC_INLINE HW_SDADC_INPUT_MODE hw_sdadc_get_input_mode(void)
Get current input mode.
Definition: hw_sdadc.h:384
HW_SDADC_PGA_GAIN_18dB
Definition: hw_sdadc.h:196
HW_SDADC_PGA_GAIN_24dB
Definition: hw_sdadc.h:197
hw_sdadc_config_t::inn
HW_SDADC_INPUT inn
Definition: hw_sdadc.h:259
HW_SDADC_OSR_256
Definition: hw_sdadc.h:179
hw_sdadc_unregister_interrupt
void hw_sdadc_unregister_interrupt(void)
Unregister interrupt handler.
hw_sdadc_pga_enabled_channels_status
__STATIC_INLINE HW_SDADC_PGA_GAIN hw_sdadc_pga_enabled_channels_status(void)
Get the PGA enabled input-channel status.
Definition: hw_sdadc.h:696
hw_sdadc_set_oversampling
__STATIC_FORCEINLINE void hw_sdadc_set_oversampling(HW_SDADC_OSR osr)
Set oversampling.
Definition: hw_sdadc.h:398
HW_SDADC_MODE_AUDIO
Definition: hw_sdadc.h:152
hw_sdadc_set_gain_correction
__STATIC_FORCEINLINE void hw_sdadc_set_gain_correction(uint16_t gain)
Set gain correction.
Definition: hw_sdadc.h:508
hw_sdadc_pga_short_inputs
__STATIC_INLINE void hw_sdadc_pga_short_inputs(void)
Short the PGA input channels.
Definition: hw_sdadc.h:657
HW_SDADC_OSR_1024
Definition: hw_sdadc.h:181
hw_sdadc_is_enabled
__STATIC_INLINE bool hw_sdadc_is_enabled(void)
Get the enable status of the SDADC.
Definition: hw_sdadc.h:873
hw_sdadc_get_dma_functionality
__STATIC_INLINE bool hw_sdadc_get_dma_functionality(void)
Get DMA functionality state.
Definition: hw_sdadc.h:365
HW_SDADC_VREF_EXTERNAL
Definition: hw_sdadc.h:111
HW_SDADC_PGA_MODE_SE_P
Definition: hw_sdadc.h:208