S32 SDK
adc_driver.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2016, Freescale Semiconductor, Inc.
3  * Copyright 2016-2017 NXP
4  * All rights reserved.
5  *
6  * THIS SOFTWARE IS PROVIDED BY NXP "AS IS" AND ANY EXPRESSED OR
7  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
8  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
9  * IN NO EVENT SHALL NXP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
10  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
11  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
12  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
13  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
14  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
15  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
16  * THE POSSIBILITY OF SUCH DAMAGE.
17  */
18 
19 #ifndef ADC_DRIVER_H
20 #define ADC_DRIVER_H
21 
22 #include <stdint.h>
23 #include <stdbool.h>
24 #include "device_registers.h"
25 #include "adc_hal.h"
26 
34 /*******************************************************************************
35  * Definitions
36  ******************************************************************************/
44 typedef struct
45 {
47  uint8_t sampleTime;
51  bool dmaEnable;
55 
64 typedef struct
65 {
69  uint16_t compVal1;
70  uint16_t compVal2;
72 
81 typedef struct
82 {
83  bool hwAvgEnable;
86 
95 typedef struct
96 {
100 
109 typedef struct
110 {
111  uint16_t userGain;
112  uint16_t userOffset;
114 
119 typedef enum
120 {
124 
125 /*******************************************************************************
126  * API
127  ******************************************************************************/
128 
129 #if defined (__cplusplus)
130 extern "C" {
131 #endif
132 
151 
161 void ADC_DRV_ConfigConverter(const uint32_t instance,
162  const adc_converter_config_t * const config);
163 
173 void ADC_DRV_GetConverterConfig(const uint32_t instance,
174  adc_converter_config_t * const config);
175 
184 void ADC_DRV_Reset(const uint32_t instance);
185 
219 
230 void ADC_DRV_ConfigHwCompare(const uint32_t instance,
231  const adc_compare_config_t * const config);
232 
242 void ADC_DRV_GetHwCompareConfig(const uint32_t instance,
243  adc_compare_config_t * const config);
244 
267 
278 void ADC_DRV_ConfigHwAverage(const uint32_t instance,
279  const adc_average_config_t * const config);
280 
290 void ADC_DRV_GetHwAverageConfig(const uint32_t instance,
291  adc_average_config_t * const config);
292 
312 void ADC_DRV_InitChanStruct(adc_chan_config_t * const config);
313 
325 void ADC_DRV_ConfigChan(const uint32_t instance,
326  const uint8_t chanIndex,
327  const adc_chan_config_t * const config);
328 
339 void ADC_DRV_GetChanConfig(const uint32_t instance,
340  const uint8_t chanIndex,
341  adc_chan_config_t * const config);
342 
377 void ADC_DRV_WaitConvDone(const uint32_t instance);
378 
379 
406 void ADC_DRV_GetChanResult(const uint32_t instance,
407  const uint8_t chanIndex,
408  uint16_t * const result);
409 
433 void ADC_DRV_AutoCalibration(const uint32_t instance);
434 
448 
459 void ADC_DRV_ConfigUserCalibration(const uint32_t instance,
460  const adc_calibration_t * const config);
461 
471 void ADC_DRV_GetUserCalibration(const uint32_t instance,
472  adc_calibration_t * const config);
473 
491 IRQn_Type ADC_DRV_GetInterruptNumber(const uint32_t instance);
492 
512 void ADC_DRV_ClearLatchedTriggers(const uint32_t instance,
513  const adc_latch_clear_t clearMode);
514 
522 void ADC_DRV_ClearTriggerErrors(const uint32_t instance);
523 
532 uint32_t ADC_DRV_GetTriggerErrorFlags(const uint32_t instance);
533 
536 #if defined (__cplusplus)
537 }
538 #endif
539 
542 #endif /* ADC_DRIVER_H */
543 /*******************************************************************************
544  * EOF
545  ******************************************************************************/
Defines the user calibration configuration.
Definition: adc_driver.h:109
uint32_t ADC_DRV_GetTriggerErrorFlags(const uint32_t instance)
This function returns the trigger error flags bits of the ADC instance.
Definition: adc_driver.c:525
void ADC_DRV_AutoCalibration(const uint32_t instance)
Executes an Auto-Calibration.
Definition: adc_driver.c:370
adc_input_clock_t
Input clock source selection Implements : adc_input_clock_t_Class.
Definition: adc_hal.h:78
adc_clk_divide_t
Clock Divider selection Implements : adc_clk_divide_t_Class.
Definition: adc_hal.h:55
adc_voltage_reference_t voltageRef
Definition: adc_driver.h:52
void ADC_DRV_GetHwAverageConfig(const uint32_t instance, adc_average_config_t *const config)
Gets the current Hardware Average configuration.
Definition: adc_driver.c:251
adc_inputchannel_t
Input channel selection Implements : adc_inputchannel_t_Class.
Definition: adc_hal.h:128
void ADC_DRV_InitHwCompareStruct(adc_compare_config_t *const config)
Initializes the Hardware Compare configuration structure.
Definition: adc_driver.c:150
void ADC_DRV_InitHwAverageStruct(adc_average_config_t *const config)
Initializes the Hardware Average configuration structure.
Definition: adc_driver.c:216
void ADC_DRV_ConfigConverter(const uint32_t instance, const adc_converter_config_t *const config)
Configures the converter with the given configuration structure.
Definition: adc_driver.c:81
adc_input_clock_t inputClock
Definition: adc_driver.h:49
void ADC_DRV_ConfigUserCalibration(const uint32_t instance, const adc_calibration_t *const config)
Configures the User Calibration feature with the given configuration structure.
Definition: adc_driver.c:431
adc_resolution_t
Conversion resolution selection Implements : adc_resolution_t_Class.
Definition: adc_hal.h:67
IRQn_Type
Defines the Interrupt Numbers definitions.
Definition: S32K144.h:269
void ADC_DRV_Reset(const uint32_t instance)
Resets the converter (sets all configurations to reset values)
Definition: adc_driver.c:131
adc_clk_divide_t clockDivide
Definition: adc_driver.h:46
void ADC_DRV_GetChanResult(const uint32_t instance, const uint8_t chanIndex, uint16_t *const result)
Gets the last result for the selected control channel.
Definition: adc_driver.c:350
uint16_t userGain
Definition: adc_driver.h:111
Defines the hardware average configuration.
Definition: adc_driver.h:81
adc_trigger_t trigger
Definition: adc_driver.h:50
void ADC_DRV_ConfigChan(const uint32_t instance, const uint8_t chanIndex, const adc_chan_config_t *const config)
Configures the selected control channel with the given configuration structure.
Definition: adc_driver.c:289
void ADC_DRV_ConfigHwCompare(const uint32_t instance, const adc_compare_config_t *const config)
Configures the Hardware Compare feature with the given configuration structure.
Definition: adc_driver.c:169
void ADC_DRV_GetChanConfig(const uint32_t instance, const uint8_t chanIndex, adc_chan_config_t *const config)
Gets the current control channel configuration for the selected channel index.
Definition: adc_driver.c:310
void ADC_DRV_InitChanStruct(adc_chan_config_t *const config)
Initializes the control channel configuration structure.
Definition: adc_driver.c:273
void ADC_DRV_InitConverterStruct(adc_converter_config_t *const config)
Initializes the converter configuration structure.
Definition: adc_driver.c:59
void ADC_DRV_ClearTriggerErrors(const uint32_t instance)
Clear all latch trigger error.
Definition: adc_driver.c:510
void ADC_DRV_GetConverterConfig(const uint32_t instance, adc_converter_config_t *const config)
Gets the current converter configuration.
Definition: adc_driver.c:106
void ADC_DRV_InitUserCalibrationStruct(adc_calibration_t *const config)
Initializes the User Calibration configuration structure.
Definition: adc_driver.c:415
IRQn_Type ADC_DRV_GetInterruptNumber(const uint32_t instance)
Returns the interrupt number for the ADC instance.
Definition: adc_driver.c:468
Defines the converter configuration.
Definition: adc_driver.h:44
adc_average_t
Hardware average selection Implements : adc_average_t_Class.
Definition: adc_hal.h:110
void ADC_DRV_GetUserCalibration(const uint32_t instance, adc_calibration_t *const config)
Gets the current User Calibration configuration.
Definition: adc_driver.c:450
adc_trigger_t
Trigger type selection Implements : adc_trigger_t_Class.
Definition: adc_hal.h:90
bool compareGreaterThanEnable
Definition: adc_driver.h:67
adc_average_t hwAverage
Definition: adc_driver.h:84
void ADC_DRV_ClearLatchedTriggers(const uint32_t instance, const adc_latch_clear_t clearMode)
Clear latched triggers under processing.
Definition: adc_driver.c:485
adc_latch_clear_t
Defines the trigger latch clear method Implements : adc_latch_clear_t_Class.
Definition: adc_driver.h:119
void ADC_DRV_WaitConvDone(const uint32_t instance)
Waits for a conversion/calibration to finish.
Definition: adc_driver.c:331
adc_voltage_reference_t
Voltage reference selection Implements : adc_voltage_reference_t_Class.
Definition: adc_hal.h:100
adc_resolution_t resolution
Definition: adc_driver.h:48
uint16_t userOffset
Definition: adc_driver.h:112
void ADC_DRV_GetHwCompareConfig(const uint32_t instance, adc_compare_config_t *const config)
Gets the current Hardware Compare configuration.
Definition: adc_driver.c:191
void ADC_DRV_ConfigHwAverage(const uint32_t instance, const adc_average_config_t *const config)
Configures the Hardware Average feature with the given configuration structure.
Definition: adc_driver.c:232
Defines the hardware compare configuration.
Definition: adc_driver.h:64
adc_inputchannel_t channel
Definition: adc_driver.h:98
Defines the control channel configuration.
Definition: adc_driver.h:95