TLE986x Device Family SDK
sdadc.h
Go to the documentation of this file.
1 /*
2  ***********************************************************************************************************************
3  *
4  * Copyright (c) 2015, Infineon Technologies AG
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without modification,are permitted provided that the
8  * following conditions are met:
9  *
10  * Redistributions of source code must retain the above copyright notice, this list of conditions and the following
11  * disclaimer.
12  *
13  * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
14  * following disclaimer in the documentation and/or other materials provided with the distribution.
15  *
16  * Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote
17  * products derived from this software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
20  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24  * WHETHER IN CONTRACT, STRICT LIABILITY,OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
25  * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  *
27  **********************************************************************************************************************/
37 /*******************************************************************************
38 ** Author(s) Identity **
39 ********************************************************************************
40 ** Initials Name **
41 ** ---------------------------------------------------------------------------**
42 ** DM Daniel Mysliwitz **
43 ** JO Julia Ott **
44 ** BG Blandine Guillot **
45 *******************************************************************************/
46 
47 /*******************************************************************************
48 ** Revision Control History **
49 ********************************************************************************
50 ** V0.1.0: 2017-11-07, DM: Initial version **
51 ** MISRA 2012 compliance, the following PC-Lint **
52 ** rules are globally deactivated: **
53 ** - Info 793: ANSI/ISO limit of 6 'significant **
54 ** characters in an external identifier **
55 ** - Info 835: A zero has been given as right **
56 ** argument to operator **
57 ** - Info 845: The left argument to operator '&' **
58 ** is certain to be 0 **
59 ** V0.1.1: 2017-11-21, DM: ADC34 prefix in API function replaced by SDADC **
60 ** V0.1.2: 2018-11-27, JO: Doxygen update, moved revision history from **
61 ** sdadc.c to sdadc.h **
62 ** V0.1.3: 2020-02-20, BG: Updated return value type in **
63 ** SDADC_Ch{0/1}_Result_Get() **
64 ** V0.1.4: 2020-02-28, BG: Updated revision history format **
65 *******************************************************************************/
66 
67 #ifndef SDADC_H
68 #define SDADC_H
69 
70 /*******************************************************************************
71 ** Includes **
72 *******************************************************************************/
73 #include "tle986x.h"
74 #include "types.h"
75 #include "sfr_access.h"
76 
77 /*******************************************************************************
78 ** Global Constant Declarations **
79 *******************************************************************************/
80 
81 /*******************************************************************************
82 ** Global Type Declarations **
83 *******************************************************************************/
87 typedef enum
88 {
89  SDADC_OSR_128 = 7,
90  SDADC_OSR_256 = 8,
91  SDADC_OSR_512 = 9,
92  SDADC_OSR_1024 = 10,
93  SDADC_OSR_2048 = 11
95 
99 typedef enum
100 {
112  SDADC_DITH_137_5_mV = 11,
113  SDADC_DITH_150_0_mV = 12,
114  SDADC_DITH_162_5_mV = 13,
115  SDADC_DITH_175_0_mV = 14,
116  SDADC_DITH_187_5_mV = 15
118 
122 typedef enum
123 {
129 
130 /*******************************************************************************
131 ** Global Inline Function Definitions **
132 *******************************************************************************/
145 INLINE void SDADC_Ch0_Power_On(void)
146 {
148 }
149 
162 INLINE void SDADC_Ch0_Power_Off(void)
163 {
166 }
167 
180 INLINE void SDADC_Ch1_Power_On(void)
181 {
183 }
184 
197 INLINE void SDADC_Ch1_Power_Off(void)
198 {
201 }
202 
221 {
222  return ((sint16)ADC34->RESU.bit.ADC3_RESU);
223 }
224 
243 {
244  return ((sint16)ADC34->RESU.bit.ADC4_RESU);
245 }
246 
263 {
265 }
266 
283 {
285 }
286 
299 INLINE void SDADC_Dithering_En(void)
300 {
302 }
303 
316 INLINE void SDADC_Dithering_Dis(void)
317 {
319 }
320 
336 {
338 }
339 
355 {
357 }
358 
372 INLINE void SDADC_Ch0_SOC_Set(void)
373 {
375 }
376 
390 INLINE void SDADC_Ch0_SOC_Rst(void)
391 {
393 }
394 
408 INLINE void SDADC_Ch1_SOC_Set(void)
409 {
411 }
412 
426 INLINE void SDADC_Ch1_SOC_Rst(void)
427 {
429 }
430 
445 INLINE void SDADC_SOC_Set(void)
446 {
448 }
449 
464 INLINE void SDADC_SOC_Rst(void)
465 {
468 }
469 
489 {
491 }
492 
512 {
514 }
515 
528 INLINE void SDADC_VAREF_Set(void)
529 {
531 }
532 
545 INLINE void SDADC_VDDEXT_Set(void)
546 {
548 }
549 
564 {
566 }
567 
582 {
584 }
585 
600 {
602 }
603 
618 {
620 }
621 
639 INLINE void SDADC_Ch0_Int_Clr(void)
640 {
642 }
643 
661 INLINE void SDADC_Ch1_Int_Clr(void)
662 {
664 }
665 
683 INLINE void SDADC_Ch0_Int_En(void)
684 {
686 }
687 
706 INLINE void SDADC_Ch0_Int_Dis(void)
707 {
709 }
710 
728 INLINE void SDADC_Ch1_Int_En(void)
729 {
731 }
732 
751 INLINE void SDADC_Ch1_Int_Dis(void)
752 {
754 }
755 
756 /*******************************************************************************
757 ** Global Function Declarations **
758 *******************************************************************************/
763 void SDADC_Init(void);
764 
765 /*******************************************************************************
766 ** Global Inline Function Definitions **
767 *******************************************************************************/
768 
769 #endif
SDADC_DITH_150_0_mV
Definition: sdadc.h:108
SDADC_Ch1_Power_On
INLINE void SDADC_Ch1_Power_On(void)
enables ADC4 analog frontend.
Definition: sdadc.h:174
ADC34_CTRL_STS_ADC4_OFS_MEAS_EN_Msk
#define ADC34_CTRL_STS_ADC4_OFS_MEAS_EN_Msk
Definition: tle986x.h:6703
ADC34_CTRL_STS_ADC4_SOC_Msk
#define ADC34_CTRL_STS_ADC4_SOC_Msk
Definition: tle986x.h:6701
ADC34_CTRL_STS_ADC34_DITHEN_Pos
#define ADC34_CTRL_STS_ADC34_DITHEN_Pos
Definition: tle986x.h:6694
SDADC_Ch0_OverSamplingRatio_Sel
INLINE void SDADC_Ch0_OverSamplingRatio_Sel(uint32 osr)
selects ADC3 Oversampling Ratio
Definition: sdadc.h:256
ADC34_CTRL_STS_ADC3_EN_Msk
#define ADC34_CTRL_STS_ADC3_EN_Msk
Definition: tle986x.h:6719
SDADC_Ch1_EOC_Sts
INLINE uint8 SDADC_Ch1_EOC_Sts(void)
reads ADC4 End of Conversion Status
Definition: sdadc.h:505
types.h
General type declarations.
SDADC_SOC_Set
INLINE void SDADC_SOC_Set(void)
enables ADC3 and ADC4 conversions
Definition: sdadc.h:439
ADC34_CTRL_STS_ADC4_EN_Pos
#define ADC34_CTRL_STS_ADC4_EN_Pos
Definition: tle986x.h:6704
ADC34_CTRL_STS_ADC4_OFS_MEAS_EN_Pos
#define ADC34_CTRL_STS_ADC4_OFS_MEAS_EN_Pos
Definition: tle986x.h:6702
SDADC_Dithering_Dis
INLINE void SDADC_Dithering_Dis(void)
disables ADC34 Dithering
Definition: sdadc.h:310
SDADC_VDDEXT_Set
INLINE void SDADC_VDDEXT_Set(void)
sets ADC34 reference voltage to VDDEXT
Definition: sdadc.h:539
ADC34_CTRL_STS_ADC3_OSR_Msk
#define ADC34_CTRL_STS_ADC3_OSR_Msk
Definition: tle986x.h:6707
ADC34_CTRL_STS_ADC34_DITHEN_Msk
#define ADC34_CTRL_STS_ADC34_DITHEN_Msk
Definition: tle986x.h:6695
SDADC_OSR_256
Definition: sdadc.h:85
SDADC_Ch1_Power_Off
INLINE void SDADC_Ch1_Power_Off(void)
disables ADC4 analog frontend and ADC4 conversion.
Definition: sdadc.h:191
ADC34_CTRL_STS_ADC4_EoC_STS_Pos
#define ADC34_CTRL_STS_ADC4_EoC_STS_Pos
Definition: tle986x.h:6698
SDADC_Ch1_Int_Dis
INLINE void SDADC_Ch1_Int_Dis(void)
disables ADC4 EOC Interrupt.
Definition: sdadc.h:745
SDADC_Ch1_Int_En
INLINE void SDADC_Ch1_Int_En(void)
enables ADC4 EOC Interrupt.
Definition: sdadc.h:722
SDADC_Ch1_SOC_Rst
INLINE void SDADC_Ch1_SOC_Rst(void)
disables ADC4 conversion
Definition: sdadc.h:420
ADC34_CTRL_STS_ADC4_OSR_Msk
#define ADC34_CTRL_STS_ADC4_OSR_Msk
Definition: tle986x.h:6691
SDADC_DITH_12_5_mV
Definition: sdadc.h:97
SDADC_DITH_0_mV
Definition: sdadc.h:96
SDADC_Ch1_SOC_Set
INLINE void SDADC_Ch1_SOC_Set(void)
enables ADC4 conversion
Definition: sdadc.h:402
sint16
signed short sint16
16 bit signed value
Definition: types.h:145
SDADC_Ch0_EOC_Sts
INLINE uint8 SDADC_Ch0_EOC_Sts(void)
reads ADC3 End of Conversion Status
Definition: sdadc.h:482
ADC34_CTRL_STS_ADC3_OSR_Pos
#define ADC34_CTRL_STS_ADC3_OSR_Pos
Definition: tle986x.h:6706
sfr_access.h
SFR low level access library.
SCUPM
#define SCUPM
Definition: tle986x.h:6005
INLINE
#define INLINE
Definition: types.h:134
SDADC_OSR_1024
Definition: sdadc.h:87
SDADC_DITH_25_0_mV
Definition: sdadc.h:98
SCUPM_SYS_IRQ_CTRL_ADC3_EOC_IE_Msk
#define SCUPM_SYS_IRQ_CTRL_ADC3_EOC_IE_Msk
Definition: tle986x.h:9416
Field_Mod32
INLINE void Field_Mod32(volatile uint32 *reg, uint32 pos, uint32 msk, uint32 val)
This function writes a bit field in a 32-bit register.
Definition: sfr_access.h:356
SDADC_Ch1_Offset_Meas_Dis
INLINE void SDADC_Ch1_Offset_Meas_Dis(void)
disables ADC4 Offset Measurement
Definition: sdadc.h:611
SDADC_Ch1_Int_Clr
INLINE void SDADC_Ch1_Int_Clr(void)
clears ADC4 EOC Interrupt flag.
Definition: sdadc.h:655
u1_Field_Rd32
INLINE uint8 u1_Field_Rd32(const volatile uint32 *reg, uint32 pos, uint32 msk)
This function reads a 1-bit field of a 32-bit register.
Definition: sfr_access.h:401
SCUPM_SYS_ISCLR_ADC3_EOC_ICLR_Pos
#define SCUPM_SYS_ISCLR_ADC3_EOC_ICLR_Pos
Definition: tle986x.h:9477
SDADC_Ch0_Result_Get
INLINE sint16 SDADC_Ch0_Result_Get(void)
gets ADC3 Result value
Definition: sdadc.h:214
TSDADC_DITHVAL
TSDADC_DITHVAL
This enum lists the ADC34 Dither Value.
Definition: sdadc.h:94
SDADC_OSR_128
Definition: sdadc.h:84
SDADC_Dithering_Sel
INLINE void SDADC_Dithering_Sel(uint32 dith)
selects ADC34 Dithering value
Definition: sdadc.h:329
SDADC_Ch0_Offset_Meas_En
INLINE void SDADC_Ch0_Offset_Meas_En(void)
enables ADC3 Offset Measurement
Definition: sdadc.h:557
SDADC_IRQ_AFTER_8TH_EOC
Definition: sdadc.h:120
SDADC_Ch0_Offset_Meas_Dis
INLINE void SDADC_Ch0_Offset_Meas_Dis(void)
disables ADC3 Offset Measurement
Definition: sdadc.h:575
SDADC_DITH_100_0_mV
Definition: sdadc.h:104
ADC34_CTRL_STS_ADC4_SOC_Pos
#define ADC34_CTRL_STS_ADC4_SOC_Pos
Definition: tle986x.h:6700
SDADC_DITH_137_5_mV
Definition: sdadc.h:107
SDADC_IRQ_AFTER_EVERY_EOC
Definition: sdadc.h:119
uint8
unsigned char uint8
8 bit unsigned value
Definition: types.h:139
SDADC_DITH_75_0_mV
Definition: sdadc.h:102
SDADC_VAREF_Set
INLINE void SDADC_VAREF_Set(void)
sets ADC34 reference voltage to VAREF
Definition: sdadc.h:522
SDADC_OSR_2048
Definition: sdadc.h:88
Field_Wrt32
INLINE void Field_Wrt32(volatile uint32 *reg, uint32 pos, uint32 msk, uint32 val)
This function writes a bit field in a 32-bit register.
Definition: sfr_access.h:341
ADC34_CTRL_STS_ADC3_EoC_STS_Msk
#define ADC34_CTRL_STS_ADC3_EoC_STS_Msk
Definition: tle986x.h:6713
SDADC_DITH_37_5_mV
Definition: sdadc.h:99
SDADC_Ch0_Power_Off
INLINE void SDADC_Ch0_Power_Off(void)
disables ADC3 analog frontend and ADC3 conversion.
Definition: sdadc.h:156
SDADC_DITH_112_5_mV
Definition: sdadc.h:105
ADC34_CTRL_STS_ADC34_EoC_CNT_Pos
#define ADC34_CTRL_STS_ADC34_EoC_CNT_Pos
Definition: tle986x.h:6696
ADC34_CTRL_STS_ADC34_REF_SEL_Pos
#define ADC34_CTRL_STS_ADC34_REF_SEL_Pos
Definition: tle986x.h:6708
SCUPM_SYS_IRQ_CTRL_ADC3_EOC_IE_Pos
#define SCUPM_SYS_IRQ_CTRL_ADC3_EOC_IE_Pos
Definition: tle986x.h:9415
uint32
unsigned int uint32
32 bit unsigned value
Definition: types.h:141
SDADC_Ch0_Power_On
INLINE void SDADC_Ch0_Power_On(void)
enables ADC3 analog frontend.
Definition: sdadc.h:139
ADC34_CTRL_STS_ADC3_SOC_Msk
#define ADC34_CTRL_STS_ADC3_SOC_Msk
Definition: tle986x.h:6715
SDADC_IRQ_Rate_Sel
INLINE void SDADC_IRQ_Rate_Sel(uint32 rate)
selects ADC34 EoC counter (IRQ rate of ADC34)
Definition: sdadc.h:348
ADC34_CTRL_STS_ADC3_EN_Pos
#define ADC34_CTRL_STS_ADC3_EN_Pos
Definition: tle986x.h:6718
TSDADC_EOC_CNT
TSDADC_EOC_CNT
This enum lists the ADC34 EoC counter.
Definition: sdadc.h:117
SCUPM_SYS_IRQ_CTRL_ADC4_EOC_IE_Msk
#define SCUPM_SYS_IRQ_CTRL_ADC4_EOC_IE_Msk
Definition: tle986x.h:9414
ADC34_CTRL_STS_ADC3_EoC_STS_Pos
#define ADC34_CTRL_STS_ADC3_EoC_STS_Pos
Definition: tle986x.h:6712
SCUPM_SYS_ISCLR_ADC4_EOC_ICLR_Pos
#define SCUPM_SYS_ISCLR_ADC4_EOC_ICLR_Pos
Definition: tle986x.h:9475
SCUPM_SYS_IRQ_CTRL_ADC4_EOC_IE_Pos
#define SCUPM_SYS_IRQ_CTRL_ADC4_EOC_IE_Pos
Definition: tle986x.h:9413
SDADC_SOC_Rst
INLINE void SDADC_SOC_Rst(void)
disables ADC3 and ADC4 conversions
Definition: sdadc.h:458
SDADC_Init
void SDADC_Init(void)
Initializes the SDADC module (ADC3 and ADC4).
ADC34_CTRL_STS_ADC3_OFS_MEAS_EN_Msk
#define ADC34_CTRL_STS_ADC3_OFS_MEAS_EN_Msk
Definition: tle986x.h:6717
SDADC_IRQ_AFTER_16TH_EOC
Definition: sdadc.h:121
SDADC_DITH_175_0_mV
Definition: sdadc.h:110
ADC34_CTRL_STS_ADC3_OFS_MEAS_EN_Pos
#define ADC34_CTRL_STS_ADC3_OFS_MEAS_EN_Pos
Definition: tle986x.h:6716
ADC34_CTRL_STS_ADC4_EoC_STS_Msk
#define ADC34_CTRL_STS_ADC4_EoC_STS_Msk
Definition: tle986x.h:6699
SDADC_DITH_62_5_mV
Definition: sdadc.h:101
tle986x.h
CMSIS register HeaderFile.
ADC34_CTRL_STS_ADC3_SOC_Pos
#define ADC34_CTRL_STS_ADC3_SOC_Pos
Definition: tle986x.h:6714
SDADC_Ch0_Int_Dis
INLINE void SDADC_Ch0_Int_Dis(void)
disables ADC3 EOC Interrupt.
Definition: sdadc.h:700
SDADC_OSR_512
Definition: sdadc.h:86
ADC34
#define ADC34
Definition: tle986x.h:5992
SDADC_Ch0_SOC_Rst
INLINE void SDADC_Ch0_SOC_Rst(void)
disables ADC3 conversion
Definition: sdadc.h:384
SDADC_DITH_125_0_mV
Definition: sdadc.h:106
SDADC_DITH_87_5_mV
Definition: sdadc.h:103
ADC34_CTRL_STS_ADC4_OSR_Pos
#define ADC34_CTRL_STS_ADC4_OSR_Pos
Definition: tle986x.h:6690
SDADC_DITH_162_5_mV
Definition: sdadc.h:109
ADC34_CTRL_STS_ADC4_EN_Msk
#define ADC34_CTRL_STS_ADC4_EN_Msk
Definition: tle986x.h:6705
SCUPM_SYS_ISCLR_ADC3_EOC_ICLR_Msk
#define SCUPM_SYS_ISCLR_ADC3_EOC_ICLR_Msk
Definition: tle986x.h:9478
SDADC_Ch0_Int_Clr
INLINE void SDADC_Ch0_Int_Clr(void)
clears ADC3 EOC Interrupt flag.
Definition: sdadc.h:633
ADC34_CTRL_STS_ADC34_REF_SEL_Msk
#define ADC34_CTRL_STS_ADC34_REF_SEL_Msk
Definition: tle986x.h:6709
ADC34_CTRL_STS_ADC34_DITHVAL_Msk
#define ADC34_CTRL_STS_ADC34_DITHVAL_Msk
Definition: tle986x.h:6693
SDADC_DITH_187_5_mV
Definition: sdadc.h:111
SCUPM_SYS_ISCLR_ADC4_EOC_ICLR_Msk
#define SCUPM_SYS_ISCLR_ADC4_EOC_ICLR_Msk
Definition: tle986x.h:9476
SDADC_Ch1_Result_Get
INLINE sint16 SDADC_Ch1_Result_Get(void)
gets ADC4 Result value
Definition: sdadc.h:236
SDADC_IRQ_AFTER_32ND_EOC
Definition: sdadc.h:122
SDADC_DITH_50_0_mV
Definition: sdadc.h:100
TSDADC_OSR
TSDADC_OSR
This enum lists the SDADC Oversampling Ratio.
Definition: sdadc.h:82
SDADC_Ch0_Int_En
INLINE void SDADC_Ch0_Int_En(void)
enables ADC3 EOC Interrupt.
Definition: sdadc.h:677
SDADC_Ch0_SOC_Set
INLINE void SDADC_Ch0_SOC_Set(void)
enables ADC3 conversion
Definition: sdadc.h:366
ADC34_CTRL_STS_ADC34_DITHVAL_Pos
#define ADC34_CTRL_STS_ADC34_DITHVAL_Pos
Definition: tle986x.h:6692
ADC34_CTRL_STS_ADC34_EoC_CNT_Msk
#define ADC34_CTRL_STS_ADC34_EoC_CNT_Msk
Definition: tle986x.h:6697
SDADC_Ch1_OverSamplingRatio_Sel
INLINE void SDADC_Ch1_OverSamplingRatio_Sel(uint32 osr)
selects ADC4 Oversampling Ratio
Definition: sdadc.h:276
SDADC_Ch1_Offset_Meas_En
INLINE void SDADC_Ch1_Offset_Meas_En(void)
enables ADC4 Offset Measurement
Definition: sdadc.h:593
SDADC_Dithering_En
INLINE void SDADC_Dithering_En(void)
enables ADC34 Dithering
Definition: sdadc.h:293