adc_11xx.h
Go to the documentation of this file.
1 /*
2  * @brief LPC11xx A/D conversion driver (except LPC1125)
3  *
4  * @note
5  * Copyright(C) NXP Semiconductors, 2012
6  * All rights reserved.
7  *
8  * @par
9  * Software that is described herein is for illustrative purposes only
10  * which provides customers with programming information regarding the
11  * LPC products. This software is supplied "AS IS" without any warranties of
12  * any kind, and NXP Semiconductors and its licensor disclaim any and
13  * all warranties, express or implied, including all implied warranties of
14  * merchantability, fitness for a particular purpose and non-infringement of
15  * intellectual property rights. NXP Semiconductors assumes no responsibility
16  * or liability for the use of the software, conveys no license or rights under any
17  * patent, copyright, mask work right, or any other intellectual property rights in
18  * or to any products. NXP Semiconductors reserves the right to make changes
19  * in the software without notification. NXP Semiconductors also makes no
20  * representation or warranty that such application will be suitable for the
21  * specified use without further testing or modification.
22  *
23  * @par
24  * Permission to use, copy, modify, and distribute this software and its
25  * documentation is hereby granted, under NXP Semiconductors' and its
26  * licensor's relevant copyrights in the software, without fee, provided that it
27  * is used in conjunction with NXP Semiconductors microcontrollers. This
28  * copyright, permission, and disclaimer notice must appear in all copies of
29  * this code.
30  */
31 
32 #ifndef __ADC_11XX_H_
33 #define __ADC_11XX_H_
34 
35 #if !defined(CHIP_LPC1125)
36 
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40 
47 #define ADC_MAX_SAMPLE_RATE 400000
48 
52 typedef struct {
57  __I uint32_t DR[8];
59 } LPC_ADC_T;
60 
64  #define ADC_DR_RESULT(n) ((((n) >> 6) & 0x3FF))
65  #define ADC_CR_BITACC(n) ((((n) & 0x7) << 17))
67 #define ADC_DR_DONE(n) (((n) >> 31))
68 #define ADC_DR_OVERRUN(n) ((((n) >> 30) & (1UL)))
69 #define ADC_CR_CH_SEL(n) ((1UL << (n)))
70 #define ADC_CR_CLKDIV(n) ((((n) & 0xFF) << 8))
71 #define ADC_CR_BURST ((1UL << 16))
72 #define ADC_CR_PDN ((1UL << 21))
73 #define ADC_CR_START_MASK ((7UL << 24))
74 #define ADC_CR_START_MODE_SEL(SEL) ((SEL << 24))
75 #define ADC_CR_START_NOW ((1UL << 24))
76 #define ADC_CR_START_CTOUT15 ((2UL << 24))
77 #define ADC_CR_START_CTOUT8 ((3UL << 24))
78 #define ADC_CR_START_ADCTRIG0 ((4UL << 24))
79 #define ADC_CR_START_ADCTRIG1 ((5UL << 24))
80 #define ADC_CR_START_MCOA2 ((6UL << 24))
81 #define ADC_CR_EDGE ((1UL << 27))
82 #define ADC_SAMPLE_RATE_CONFIG_MASK (ADC_CR_CLKDIV(0xFF) | ADC_CR_BITACC(0x07))
83 
87 typedef enum IP_ADC_STATUS {
91 } ADC_STATUS_T;
92 
94 typedef enum CHIP_ADC_CHANNEL {
95  ADC_CH0 = 0,
103 } ADC_CHANNEL_T;
104 
106 typedef enum CHIP_ADC_RESOLUTION {
116 
118 typedef enum CHIP_ADC_EDGE_CFG {
122 
124 typedef enum CHIP_ADC_START_MODE {
133 
135 typedef struct {
138  bool burstMode;
140 
148 void Chip_ADC_Init(LPC_ADC_T *pADC, ADC_CLOCK_SETUP_T *ADCSetup);
149 
155 void Chip_ADC_DeInit(LPC_ADC_T *pADC);
156 
164 Status Chip_ADC_ReadValue(LPC_ADC_T *pADC, uint8_t channel, uint16_t *data);
165 
173 Status Chip_ADC_ReadByte(LPC_ADC_T *pADC, ADC_CHANNEL_T channel, uint8_t *data);
174 
182 FlagStatus Chip_ADC_ReadStatus(LPC_ADC_T *pADC, uint8_t channel, uint32_t StatusType);
183 
191 void Chip_ADC_Int_SetChannelCmd(LPC_ADC_T *pADC, uint8_t channel, FunctionalState NewState);
192 
200 {
201  Chip_ADC_Int_SetChannelCmd(pADC, 8, NewState);
202 }
203 
220 void Chip_ADC_SetStartMode(LPC_ADC_T *pADC, ADC_START_MODE_T mode, ADC_EDGE_CFG_T EdgeOption);
221 
229 void Chip_ADC_SetSampleRate(LPC_ADC_T *pADC, ADC_CLOCK_SETUP_T *ADCSetup, uint32_t rate);
230 
238 void Chip_ADC_SetResolution(LPC_ADC_T *pADC, ADC_CLOCK_SETUP_T *ADCSetup, ADC_RESOLUTION_T resolution);
239 
249 void Chip_ADC_EnableChannel(LPC_ADC_T *pADC, ADC_CHANNEL_T channel, FunctionalState NewState);
250 
259 void Chip_ADC_SetBurstCmd(LPC_ADC_T *pADC, FunctionalState NewState);
260 
265 #ifdef __cplusplus
266 }
267 #endif
268 
269 #endif /* !defined(CHIP_LPC1125) */
270 
271 #endif /* __ADC_11XX_H_ */
STATIC INLINE void Chip_ADC_Int_SetGlobalCmd(LPC_ADC_T *pADC, FunctionalState NewState)
Enable/Disable global interrupt for ADC channel.
Definition: adc_11xx.h:199
std::uint8_t uint8_t
Definition: std.hpp:24
#define STATIC
Definition: lpc_types.h:140
FunctionalState
Functional State Definition.
Definition: lpc_types.h:68
FlagStatus Chip_ADC_ReadStatus(LPC_ADC_T *pADC, uint8_t channel, uint32_t StatusType)
Read the ADC channel status.
CHIP_ADC_START_MODE
Definition: adc_11xx.h:124
__I uint32_t STAT
Definition: adc_11xx.h:58
void Chip_ADC_SetStartMode(LPC_ADC_T *pADC, ADC_START_MODE_T mode, ADC_EDGE_CFG_T EdgeOption)
Select the mode starting the AD conversion.
#define __I
Definition: core_cm0.h:151
enum IP_ADC_STATUS ADC_STATUS_T
ADC status register used for IP drivers.
enum CHIP_ADC_EDGE_CFG ADC_EDGE_CFG_T
FlagStatus
Boolean Type definition.
Definition: lpc_types.h:62
CHIP_ADC_CHANNEL
Definition: adc_11xx.h:94
void Chip_ADC_Int_SetChannelCmd(LPC_ADC_T *pADC, uint8_t channel, FunctionalState NewState)
Enable/Disable interrupt for ADC channel.
void Chip_ADC_Init(LPC_ADC_T *pADC, ADC_CLOCK_SETUP_T *ADCSetup)
Initialize the ADC peripheral and the ADC setup structure to default value.
CHIP_ADC_RESOLUTION
Definition: adc_11xx.h:106
IP_ADC_STATUS
ADC status register used for IP drivers.
Definition: adc_11xx.h:87
void Chip_ADC_DeInit(LPC_ADC_T *pADC)
Shutdown ADC.
uint8_t bitsAccuracy
Definition: adc_11xx.h:137
#define __IO
Definition: core_cm0.h:154
CHIP_ADC_EDGE_CFG
Definition: adc_11xx.h:118
void Chip_ADC_SetResolution(LPC_ADC_T *pADC, ADC_CLOCK_SETUP_T *ADCSetup, ADC_RESOLUTION_T resolution)
Set the ADC accuracy bits.
void Chip_ADC_EnableChannel(LPC_ADC_T *pADC, ADC_CHANNEL_T channel, FunctionalState NewState)
Enable or disable the ADC channel on ADC peripheral.
std::uint32_t uint32_t
Definition: std.hpp:26
void Chip_ADC_SetBurstCmd(LPC_ADC_T *pADC, FunctionalState NewState)
Enable burst mode.
void Chip_ADC_SetSampleRate(LPC_ADC_T *pADC, ADC_CLOCK_SETUP_T *ADCSetup, uint32_t rate)
Set the ADC Sample rate.
Status Chip_ADC_ReadByte(LPC_ADC_T *pADC, ADC_CHANNEL_T channel, uint8_t *data)
Read the ADC value and convert it to 8bits value.
__I uint32_t GDR
Definition: adc_11xx.h:54
#define INLINE
Definition: lpc_types.h:205
__IO uint32_t INTEN
Definition: adc_11xx.h:56
Status
Definition: lpc_types.h:74
10 or 12-bit ADC register block structure
Definition: adc_11xx.h:52
enum CHIP_ADC_START_MODE ADC_START_MODE_T
uint32_t adcRate
Definition: adc_11xx.h:136
std::uint16_t uint16_t
Definition: std.hpp:25
enum CHIP_ADC_CHANNEL ADC_CHANNEL_T
Status Chip_ADC_ReadValue(LPC_ADC_T *pADC, uint8_t channel, uint16_t *data)
Read the ADC value from a channel.
enum CHIP_ADC_RESOLUTION ADC_RESOLUTION_T
__I uint32_t RESERVED0
Definition: adc_11xx.h:55
__IO uint32_t CR
Definition: adc_11xx.h:53


uavcan_communicator
Author(s):
autogenerated on Wed Jan 11 2023 03:59:39