|
SmartSnippets DA1459x SDK
|
Go to the documentation of this file.
49 #if dg_configUSE_HW_SDADC
61 #define HW_SDADC_DMA_SUPPORT dg_configSDADC_DMA_SUPPORT
74 #if HW_SDADC_DMA_SUPPORT
121 #define HW_SDADC_VREF_VOLTAGE_INTERNAL ( 900 )
126 #define HW_SDADC_VREF_VOLTAGE_MAX HW_SDADC_VREF_VOLTAGE_INTERNAL
128 #define HW_SDADC_VREF_IN_RANGE(voltage) ((uint16_t)voltage <= HW_SDADC_VREF_VOLTAGE_MAX)
244 } hw_sdadc_pga_config_t;
265 #if HW_SDADC_DMA_SUPPORT
268 hw_sdadc_pga_config_t *pga_setup;
298 REG_SETF(SDADC, SDADC_CTRL_REG, SDADC_MINT, 1);
307 REG_SETF(SDADC, SDADC_CTRL_REG, SDADC_MINT, 0);
318 return (!!(
REG_GETF(SDADC, SDADC_CTRL_REG, SDADC_MINT)));
334 REG_SETF(SDADC, SDADC_CTRL_REG, SDADC_CONT, (uint32_t) !!enabled);
345 return (!!(
REG_GETF(SDADC, SDADC_CTRL_REG, SDADC_CONT)));
356 REG_SETF(SDADC, SDADC_CTRL_REG, SDADC_DMA_EN, !!enabled);
367 return (
bool)
REG_GETF(SDADC, SDADC_CTRL_REG, SDADC_DMA_EN);
400 REG_SETF(SDADC, SDADC_CTRL_REG, SDADC_OSR, osr);
422 REG_SETF(SDADC, SDADC_CTRL_REG, SDADC_VREF_SEL, vref_sel);
446 return REG_GETF(SDADC, SDADC_RESULT_REG, SDADC_VAL);
458 REG_SETF(SDADC, SDADC_CTRL_REG, SDADC_VREF_TO_PAD, 1);
469 REG_SETF(SDADC, SDADC_CTRL_REG, SDADC_VREF_TO_PAD, 0);
482 __STATIC_INLINE
bool hw_sdadc_is_vref_connected_to_pad(
void)
484 return (!!(
REG_GETF(SDADC, SDADC_CTRL_REG, SDADC_VREF_TO_PAD)));
510 REG_SETF(SDADC, SDADC_GAIN_CORR_REG, SDADC_GAIN_CORR, gain);
521 return (uint16_t)
REG_GETF(SDADC, SDADC_GAIN_CORR_REG, SDADC_GAIN_CORR);
532 REG_SETF(SDADC, SDADC_OFFS_CORR_REG, SDADC_OFFS_CORR, offset);
543 return REG_GETF(SDADC, SDADC_OFFS_CORR_REG, SDADC_OFFS_CORR);
569 REG_SETF(SDADC, SDADC_PGA_CTRL_REG, PGA_GAIN, gain);
610 REG_SETF(SDADC, SDADC_PGA_CTRL_REG, PGA_MUTE, 1);
619 REG_SETF(SDADC, SDADC_PGA_CTRL_REG, PGA_MUTE, 0);
629 return REG_GETF(SDADC, SDADC_PGA_CTRL_REG, PGA_MUTE);
639 REG_SETF(SDADC, SDADC_PGA_CTRL_REG, PGA_BIAS, bias);
659 REG_SETF(SDADC, SDADC_PGA_CTRL_REG, PGA_SHORTIN, 1);
668 REG_SETF(SDADC, SDADC_PGA_CTRL_REG, PGA_SHORTIN, 0);
678 return REG_GETF(SDADC, SDADC_PGA_CTRL_REG, PGA_SHORTIN);
688 REG_SETF(SDADC, SDADC_PGA_CTRL_REG, PGA_EN, channels);
712 REG_SETF(SDADC, SDADC_AUDIO_FILT_REG, SDADC_CIC_OFFSET, val);
725 return REG_GETF(SDADC, SDADC_AUDIO_FILT_REG, SDADC_CIC_OFFSET);
821 REG_SETF(SDADC, SDADC_CLEAR_INT_REG, SDADC_CLR_INT, 1);
846 REG_SETF(SDADC, SDADC_CTRL_REG, SDADC_EN, 1);
847 while (0 ==
REG_GETF(SDADC, SDADC_CTRL_REG, SDADC_LDO_OK));
864 REG_SETF(SDADC, SDADC_CTRL_REG, SDADC_EN, 0);
875 return REG_GETF(SDADC, SDADC_CTRL_REG, SDADC_EN);
895 return (!!(
REG_GETF(SDADC, SDADC_CTRL_REG, SDADC_START)));
__STATIC_INLINE bool hw_sdadc_pga_inputs_are_shorted(void)
Get the PGA short-input status.
Definition: hw_sdadc.h:676
__STATIC_INLINE bool hw_sdadc_pga_is_mute(void)
Get the PGA mute status.
Definition: hw_sdadc.h:627
Definition: hw_sdadc.h:109
__STATIC_INLINE void hw_sdadc_connect_vref_to_pad(void)
Connect reference voltage to GPIO pad.
Definition: hw_sdadc.h:456
Definition: hw_sdadc.h:221
Definition: hw_sdadc.h:138
__STATIC_INLINE void hw_sdadc_pga_set_bias(HW_SDADC_PGA_BIAS bias)
Set the PGA bias.
Definition: hw_sdadc.h:637
Definition of API for the DMA Low Level Driver.
Definition: hw_sdadc.h:207
Definition: hw_sdadc.h:139
#define REG_SETF(base, reg, field, new_val)
Set the value of a register field.
Definition: sdk_defs.h:738
HW_SDADC_PGA_GAIN
PGA gain selection.
Definition: hw_sdadc.h:190
void hw_sdadc_set_input_mode(HW_SDADC_INPUT_MODE mode)
Set input mode.
__STATIC_INLINE void hw_sdadc_set_continuous(bool enabled)
Set continuous mode.
Definition: hw_sdadc.h:332
Definition: hw_sdadc.h:195
Definition: hw_sdadc.h:236
Definition: hw_sdadc.h:198
Definition: hw_sdadc.h:135
Definition: hw_sdadc.h:141
HW_DMA_CHANNEL channel
Definition: hw_sdadc.h:81
uint16 irq_nr_of_trans
Definition: hw_sdadc.h:84
HW_SDADC_VREF_SEL
SDADC VREF selection.
Definition: hw_sdadc.h:107
__STATIC_INLINE void hw_sdadc_set_dma_functionality(bool enabled)
Enable/Disable DMA functionality.
Definition: hw_sdadc.h:354
__STATIC_INLINE bool hw_sdadc_get_continuous(void)
Get continuous mode state.
Definition: hw_sdadc.h:343
void hw_sdadc_register_interrupt(hw_sdadc_interrupt_cb cb)
Register interrupt handler.
Definition: hw_sdadc.h:99
Definition: hw_sdadc.h:142
Definition: hw_sdadc.h:218
SDADC configuration.
Definition: hw_sdadc.h:257
void hw_sdadc_start(void)
Start conversion.
Definition: hw_sdadc.h:225
Central include header file with platform definitions.
__STATIC_INLINE void hw_sdadc_clear_interrupt(void)
Clear interrupt.
Definition: hw_sdadc.h:819
Definition: hw_sdadc.h:224
HW_SDADC_INPUT_CHANNEL
SDADC Input Channel.
Definition: hw_sdadc.h:134
__STATIC_INLINE void hw_sdadc_pga_mute(void)
Mute the PGA.
Definition: hw_sdadc.h:608
bool continuous
Definition: hw_sdadc.h:261
__STATIC_INLINE void hw_sdadc_pga_unshort_inputs(void)
Disconnect the short-circuited PGA input channels.
Definition: hw_sdadc.h:666
Definition: hw_sdadc.h:192
Cut-down to necessary DMA configuration.
Definition: hw_sdadc.h:80
bool hw_sdadc_read(uint32_t nof_conv, uint16_t *out_buf, hw_sdadc_read_cb cb, void *user_data)
Generic read function Follows.
__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
__STATIC_INLINE void hw_sdadc_enable(void)
Enable SDADC.
Definition: hw_sdadc.h:844
__STATIC_INLINE HW_SDADC_VREF_SEL hw_sdadc_get_vref_selection(void)
Get voltage reference source.
Definition: hw_sdadc.h:433
Definition: hw_sdadc.h:143
__STATIC_INLINE void hw_sdadc_disable_interrupt(void)
Disable SDADC interrupt.
Definition: hw_sdadc.h:305
Definition: hw_sdadc.h:137
Definition: hw_sdadc.h:151
HW_DMA_CHANNEL
DMA channel number.
Definition: hw_dma.h:62
__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
Definition: hw_sdadc.h:191
HW_SDADC_OSR
SDADC oversampling rate.
Definition: hw_sdadc.h:178
void hw_sdadc_init(const hw_sdadc_config_t *cfg)
Initialize SDADC.
int32_t hw_sdadc_convert_to_millivolt(const hw_sdadc_config_t *cfg, uint16_t raw)
Convert the ADC value to mV.
Definition: hw_sdadc.h:110
Definition: hw_sdadc.h:209
__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
PGA mode selection.
Definition: hw_sdadc.h:205
__STATIC_INLINE HW_SDADC_PGA_GAIN hw_sdadc_pga_get_gain(void)
Get the PGA gain status.
Definition: hw_sdadc.h:577
Definition: hw_sdadc.h:194
void hw_sdadc_configure(const hw_sdadc_config_t *cfg)
Configure SDADC.
HW_SDADC_INPUT_MODE
SDADC input mode.
Definition: hw_sdadc.h:98
Definition: hw_sdadc.h:193
hw_sdadc_dma_cfg_t * dma_setup
Definition: hw_sdadc.h:266
Definition: hw_sdadc.h:100
__STATIC_INLINE bool hw_sdadc_in_progress(void)
Check if conversion is in progress.
Definition: hw_sdadc.h:893
HW_SDADC_INPUT inp
Definition: hw_sdadc.h:260
HW_DMA_PRIO
Channel priority.
Definition: hw_dma.h:163
Definition: hw_sdadc.h:219
__STATIC_INLINE void hw_sdadc_pga_set_gain(HW_SDADC_PGA_GAIN gain)
Set the PGA gain.
Definition: hw_sdadc.h:567
Definition: hw_sdadc.h:108
Definition: hw_sdadc.h:235
HW_GPIO_MODE mode
Definition: hw_gpio.h:211
__STATIC_INLINE void hw_sdadc_set_cic_offset(uint32_t val)
Set the audio filter register.
Definition: hw_sdadc.h:709
HW_SDADC_MODE
SDADC mode (sensor/audio)
Definition: hw_sdadc.h:150
__STATIC_INLINE void hw_sdadc_enable_interrupt(void)
Enable SDADC interrupt.
Definition: hw_sdadc.h:296
__STATIC_INLINE HW_SDADC_OSR hw_sdadc_get_oversampling(void)
Get current oversampling.
Definition: hw_sdadc.h:408
Definition: hw_sdadc.h:220
HW_SDADC_OSR over_sampling
Definition: hw_sdadc.h:262
Definition: hw_sdadc.h:206
Definition: hw_sdadc.h:180
__STATIC_INLINE HW_SDADC_PGA_MODE hw_sdadc_pga_get_mode(void)
Get the PGA branch mode status.
Definition: hw_sdadc.h:599
int32_t hw_sdadc_get_voltage(const hw_sdadc_config_t *cfg)
Perform an ADC measurement and return the ADC value converted to mV.
__STATIC_INLINE uint16_t hw_sdadc_get_gain_correction(void)
Get current gain value.
Definition: hw_sdadc.h:519
HW_SDADC_VREF_SEL vref_selection
Definition: hw_sdadc.h:263
Definition: hw_sdadc.h:223
HW_DMA_PRIO prio
Definition: hw_sdadc.h:82
Definition: hw_sdadc.h:182
HW_SDADC_INPUT
SDADC input selection. Generic names mapping to specific GPIO pins for both positive and negative cha...
Definition: hw_sdadc.h:162
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.
Definition: hw_sdadc.h:136
void hw_sdadc_abort_read(void)
Stop conversions.
__STATIC_INLINE void hw_sdadc_pga_unmute(void)
Un-mute the PGA.
Definition: hw_sdadc.h:617
#define REG_GETF(base, reg, field)
Return the value of a register field.
Definition: sdk_defs.h:711
__STATIC_INLINE void hw_sdadc_disconnect_vref_from_pad(void)
Disconnect reference voltage from GPIO pad.
Definition: hw_sdadc.h:467
__STATIC_INLINE void hw_sdadc_disable(void)
Disable SDADC.
Definition: hw_sdadc.h:860
Definition: hw_sdadc.h:222
__STATIC_INLINE uint16_t hw_sdadc_get_raw_value(void)
Get the result register value.
Definition: hw_sdadc.h:444
HW_SDADC_PGA_BIAS
PGA bias configuration.
Definition: hw_sdadc.h:217
__STATIC_INLINE void hw_sdadc_adc_measure(void)
Start the ADC conversion engine, providing one measurement.
Definition: hw_sdadc.h:907
__STATIC_INLINE uint16_t hw_sdadc_get_offset_correction(void)
Get current offset value.
Definition: hw_sdadc.h:541
__STATIC_INLINE uint32_t hw_sdadc_get_cic_offset(void)
Get the audio filter register status.
Definition: hw_sdadc.h:723
Definition: hw_sdadc.h:233
HW_SDADC_INPUT_MODE input_mode
Definition: hw_sdadc.h:258
uint16_t vref_voltage
Definition: hw_sdadc.h:264
Definition: hw_sdadc.h:234
__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
void hw_sdadc_stop_and_wait(void)
Stop and Wait.
Definition: hw_sdadc.h:140
void(* hw_sdadc_interrupt_cb)(void)
SDADC interrupt handler.
Definition: hw_sdadc.h:251
__STATIC_INLINE void hw_sdadc_set_offset_correction(uint16_t offset)
Set offset correction.
Definition: hw_sdadc.h:530
bool circular
Definition: hw_sdadc.h:83
void hw_sdadc_store_ext_ref_calibration_values(int16_t gain, int16_t offset)
Store external reference voltage calibration values.
__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
PGA enabled branch(es)
Definition: hw_sdadc.h:232
void(* hw_sdadc_read_cb)(void *user_data, uint32_t conv_to_go)
ADC callback for read function.
Definition: hw_sdadc.h:92
__STATIC_INLINE HW_SDADC_INPUT_MODE hw_sdadc_get_input_mode(void)
Get current input mode.
Definition: hw_sdadc.h:384
Definition: hw_sdadc.h:196
Definition: hw_sdadc.h:197
HW_SDADC_INPUT inn
Definition: hw_sdadc.h:259
Definition: hw_sdadc.h:179
void hw_sdadc_unregister_interrupt(void)
Unregister interrupt handler.
__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
__STATIC_FORCEINLINE void hw_sdadc_set_oversampling(HW_SDADC_OSR osr)
Set oversampling.
Definition: hw_sdadc.h:398
Definition: hw_sdadc.h:152
__STATIC_FORCEINLINE void hw_sdadc_set_gain_correction(uint16_t gain)
Set gain correction.
Definition: hw_sdadc.h:508
__STATIC_INLINE void hw_sdadc_pga_short_inputs(void)
Short the PGA input channels.
Definition: hw_sdadc.h:657
Definition: hw_sdadc.h:181
__STATIC_INLINE bool hw_sdadc_is_enabled(void)
Get the enable status of the SDADC.
Definition: hw_sdadc.h:873
__STATIC_INLINE bool hw_sdadc_get_dma_functionality(void)
Get DMA functionality state.
Definition: hw_sdadc.h:365
Definition: hw_sdadc.h:111
Definition: hw_sdadc.h:208