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 
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_ */
ADC_CHANNEL_T
enum CHIP_ADC_CHANNEL ADC_CHANNEL_T
ADC_6BITS
@ ADC_6BITS
Definition: adc_11xx.h:111
ADC_DR_OVERRUN_STAT
@ ADC_DR_OVERRUN_STAT
Definition: adc_11xx.h:89
Chip_ADC_ReadValue
Status Chip_ADC_ReadValue(LPC_ADC_T *pADC, uint8_t channel, uint16_t *data)
Read the ADC value from a channel.
Chip_ADC_DeInit
void Chip_ADC_DeInit(LPC_ADC_T *pADC)
Shutdown ADC.
ADC_8BITS
@ ADC_8BITS
Definition: adc_11xx.h:109
ADC_10BITS
@ ADC_10BITS
Definition: adc_11xx.h:107
LPC_ADC_T::STAT
__I uint32_t STAT
Definition: adc_11xx.h:58
ADC_START_ON_ADCTRIG0
@ ADC_START_ON_ADCTRIG0
Definition: adc_11xx.h:129
ADC_CLOCK_SETUP_T::adcRate
uint32_t adcRate
Definition: adc_11xx.h:136
ADC_CLOCK_SETUP_T::burstMode
bool burstMode
Definition: adc_11xx.h:138
uavcan::uint32_t
std::uint32_t uint32_t
Definition: std.hpp:26
ADC_TRIGGERMODE_FALLING
@ ADC_TRIGGERMODE_FALLING
Definition: adc_11xx.h:120
ADC_EDGE_CFG_T
enum CHIP_ADC_EDGE_CFG ADC_EDGE_CFG_T
ADC_START_ON_MCOA2
@ ADC_START_ON_MCOA2
Definition: adc_11xx.h:131
__IO
#define __IO
Definition: core_cm0.h:154
CHIP_ADC_EDGE_CFG
CHIP_ADC_EDGE_CFG
Definition: adc_11xx.h:118
Chip_ADC_SetStartMode
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.
FunctionalState
FunctionalState
Functional State Definition.
Definition: lpc_types.h:68
ADC_TRIGGERMODE_RISING
@ ADC_TRIGGERMODE_RISING
Definition: adc_11xx.h:119
LPC_ADC_T
10 or 12-bit ADC register block structure
Definition: adc_11xx.h:52
LPC_ADC_T::RESERVED0
__I uint32_t RESERVED0
Definition: adc_11xx.h:55
ADC_CH3
@ ADC_CH3
Definition: adc_11xx.h:98
ADC_DR_DONE_STAT
@ ADC_DR_DONE_STAT
Definition: adc_11xx.h:88
__I
#define __I
Definition: core_cm0.h:151
ADC_CH5
@ ADC_CH5
Definition: adc_11xx.h:100
ADC_7BITS
@ ADC_7BITS
Definition: adc_11xx.h:110
Chip_ADC_ReadStatus
FlagStatus Chip_ADC_ReadStatus(LPC_ADC_T *pADC, uint8_t channel, uint32_t StatusType)
Read the ADC channel status.
uavcan::uint16_t
std::uint16_t uint16_t
Definition: std.hpp:25
Chip_ADC_Init
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.
ADC_CH4
@ ADC_CH4
Definition: adc_11xx.h:99
ADC_START_ON_CTOUT15
@ ADC_START_ON_CTOUT15
Definition: adc_11xx.h:127
INLINE
#define INLINE
Definition: lpc_types.h:205
CHIP_ADC_RESOLUTION
CHIP_ADC_RESOLUTION
Definition: adc_11xx.h:106
ADC_CLOCK_SETUP_T
Definition: adc_11xx.h:135
ADC_START_ON_CTOUT8
@ ADC_START_ON_CTOUT8
Definition: adc_11xx.h:128
Chip_ADC_Int_SetChannelCmd
void Chip_ADC_Int_SetChannelCmd(LPC_ADC_T *pADC, uint8_t channel, FunctionalState NewState)
Enable/Disable interrupt for ADC channel.
Chip_ADC_ReadByte
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.
ADC_RESOLUTION_T
enum CHIP_ADC_RESOLUTION ADC_RESOLUTION_T
uavcan::uint8_t
std::uint8_t uint8_t
Definition: std.hpp:24
ADC_4BITS
@ ADC_4BITS
Definition: adc_11xx.h:113
ADC_STATUS_T
enum IP_ADC_STATUS ADC_STATUS_T
ADC status register used for IP drivers.
LPC_ADC_T::GDR
__I uint32_t GDR
Definition: adc_11xx.h:54
Chip_ADC_EnableChannel
void Chip_ADC_EnableChannel(LPC_ADC_T *pADC, ADC_CHANNEL_T channel, FunctionalState NewState)
Enable or disable the ADC channel on ADC peripheral.
ADC_CH2
@ ADC_CH2
Definition: adc_11xx.h:97
ADC_START_ON_ADCTRIG1
@ ADC_START_ON_ADCTRIG1
Definition: adc_11xx.h:130
Chip_ADC_Int_SetGlobalCmd
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
ADC_5BITS
@ ADC_5BITS
Definition: adc_11xx.h:112
CHIP_ADC_CHANNEL
CHIP_ADC_CHANNEL
Definition: adc_11xx.h:94
ADC_CH6
@ ADC_CH6
Definition: adc_11xx.h:101
Chip_ADC_SetSampleRate
void Chip_ADC_SetSampleRate(LPC_ADC_T *pADC, ADC_CLOCK_SETUP_T *ADCSetup, uint32_t rate)
Set the ADC Sample rate.
ADC_CH7
@ ADC_CH7
Definition: adc_11xx.h:102
ADC_START_MODE_T
enum CHIP_ADC_START_MODE ADC_START_MODE_T
Chip_ADC_SetResolution
void Chip_ADC_SetResolution(LPC_ADC_T *pADC, ADC_CLOCK_SETUP_T *ADCSetup, ADC_RESOLUTION_T resolution)
Set the ADC accuracy bits.
IP_ADC_STATUS
IP_ADC_STATUS
ADC status register used for IP drivers.
Definition: adc_11xx.h:87
ADC_3BITS
@ ADC_3BITS
Definition: adc_11xx.h:114
FlagStatus
FlagStatus
Boolean Type definition.
Definition: lpc_types.h:62
ADC_CH1
@ ADC_CH1
Definition: adc_11xx.h:96
LPC_ADC_T::CR
__IO uint32_t CR
Definition: adc_11xx.h:53
ADC_DR_ADINT_STAT
@ ADC_DR_ADINT_STAT
Definition: adc_11xx.h:90
Chip_ADC_SetBurstCmd
void Chip_ADC_SetBurstCmd(LPC_ADC_T *pADC, FunctionalState NewState)
Enable burst mode.
LPC_ADC_T::INTEN
__IO uint32_t INTEN
Definition: adc_11xx.h:56
ADC_CLOCK_SETUP_T::bitsAccuracy
uint8_t bitsAccuracy
Definition: adc_11xx.h:137
CHIP_ADC_START_MODE
CHIP_ADC_START_MODE
Definition: adc_11xx.h:124
ADC_NO_START
@ ADC_NO_START
Definition: adc_11xx.h:125
ADC_CH0
@ ADC_CH0
Definition: adc_11xx.h:95
ADC_9BITS
@ ADC_9BITS
Definition: adc_11xx.h:108
STATIC
#define STATIC
Definition: lpc_types.h:140
ADC_START_NOW
@ ADC_START_NOW
Definition: adc_11xx.h:126
Status
Status
Definition: lpc_types.h:74


uavcan_communicator
Author(s):
autogenerated on Fri Dec 13 2024 03:10:02