Руслан Урядинский / libuavcan

Dependents:   UAVCAN UAVCAN_Subscriber

Embed: (wiki syntax)

« Back to documentation index

CHIP: LPC11xx A/D conversion driver

CHIP: LPC11xx A/D conversion driver

This ADC driver is for LPC11xx variants except for LPC1125. More...

Data Structures

struct  LPC_ADC_T
 10 or 12-bit ADC register block structure More...
struct  ADC_CLOCK_SETUP_T
 Clock setup structure for ADC controller passed to the initialize function. More...

Typedefs

typedef enum IP_ADC_STATUS ADC_STATUS_T
 ADC status register used for IP drivers.
typedef enum CHIP_ADC_CHANNEL ADC_CHANNEL_T
 The channels on one ADC peripheral.
typedef enum CHIP_ADC_RESOLUTION ADC_RESOLUTION_T
 The number of bits of accuracy of the result in the LS bits of ADDR.
typedef enum CHIP_ADC_EDGE_CFG ADC_EDGE_CFG_T
 Edge configuration, which controls rising or falling edge on the selected signal for the start of a conversion.
typedef enum CHIP_ADC_START_MODE ADC_START_MODE_T
 Start mode, which controls the start of an A/D conversion when the BURST bit is 0.

Enumerations

enum  IP_ADC_STATUS { ADC_DR_DONE_STAT, ADC_DR_OVERRUN_STAT, ADC_DR_ADINT_STAT }
 

ADC status register used for IP drivers.

More...
enum  CHIP_ADC_CHANNEL {
  ADC_CH0 = 0, ADC_CH1, ADC_CH2, ADC_CH3,
  ADC_CH4, ADC_CH5, ADC_CH6, ADC_CH7
}
 

The channels on one ADC peripheral.

More...
enum  CHIP_ADC_RESOLUTION {
  ADC_10BITS = 0, ADC_9BITS, ADC_8BITS, ADC_7BITS,
  ADC_6BITS, ADC_5BITS, ADC_4BITS, ADC_3BITS
}
 

The number of bits of accuracy of the result in the LS bits of ADDR.

More...
enum  CHIP_ADC_EDGE_CFG { ADC_TRIGGERMODE_RISING = 0, ADC_TRIGGERMODE_FALLING }
 

Edge configuration, which controls rising or falling edge on the selected signal for the start of a conversion.

More...
enum  CHIP_ADC_START_MODE { ,
  ADC_START_NOW, ADC_START_ON_CTOUT15, ADC_START_ON_CTOUT8, ADC_START_ON_ADCTRIG0,
  ADC_START_ON_ADCTRIG1, ADC_START_ON_MCOA2
}
 

Start mode, which controls the start of an A/D conversion when the BURST bit is 0.

More...

Functions

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.
void Chip_ADC_DeInit (LPC_ADC_T *pADC)
 Shutdown ADC.
Status Chip_ADC_ReadValue (LPC_ADC_T *pADC, uint8_t channel, uint16_t *data)
 Read the ADC value from a channel.
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.
FlagStatus Chip_ADC_ReadStatus (LPC_ADC_T *pADC, uint8_t channel, uint32_t StatusType)
 Read the ADC channel status.
void Chip_ADC_Int_SetChannelCmd (LPC_ADC_T *pADC, uint8_t channel, FunctionalState NewState)
 Enable/Disable interrupt for ADC channel.
STATIC INLINE void Chip_ADC_Int_SetGlobalCmd (LPC_ADC_T *pADC, FunctionalState NewState)
 Enable/Disable global interrupt for ADC channel.
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.
void Chip_ADC_SetSampleRate (LPC_ADC_T *pADC, ADC_CLOCK_SETUP_T *ADCSetup, uint32_t rate)
 Set the ADC Sample rate.
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.
void Chip_ADC_SetBurstCmd (LPC_ADC_T *pADC, FunctionalState NewState)
 Enable burst mode.

Detailed Description

This ADC driver is for LPC11xx variants except for LPC1125.


Typedef Documentation

The channels on one ADC peripheral.

Edge configuration, which controls rising or falling edge on the selected signal for the start of a conversion.

The number of bits of accuracy of the result in the LS bits of ADDR.

Start mode, which controls the start of an A/D conversion when the BURST bit is 0.

ADC status register used for IP drivers.


Enumeration Type Documentation

The channels on one ADC peripheral.

Enumerator:
ADC_CH0 

ADC channel 0.

ADC_CH1 

ADC channel 1.

ADC_CH2 

ADC channel 2.

ADC_CH3 

ADC channel 3.

ADC_CH4 

ADC channel 4.

ADC_CH5 

ADC channel 5.

ADC_CH6 

ADC channel 6.

ADC_CH7 

ADC channel 7.

Definition at line 94 of file adc_11xx.h.

Edge configuration, which controls rising or falling edge on the selected signal for the start of a conversion.

Enumerator:
ADC_TRIGGERMODE_RISING 

Trigger event: rising edge.

ADC_TRIGGERMODE_FALLING 

Trigger event: falling edge.

Definition at line 118 of file adc_11xx.h.

The number of bits of accuracy of the result in the LS bits of ADDR.

Enumerator:
ADC_10BITS 

ADC 10 bits.

ADC_9BITS 

ADC 9 bits.

ADC_8BITS 

ADC 8 bits.

ADC_7BITS 

ADC 7 bits.

ADC_6BITS 

ADC 6 bits.

ADC_5BITS 

ADC 5 bits.

ADC_4BITS 

ADC 4 bits.

ADC_3BITS 

ADC 3 bits.

Definition at line 106 of file adc_11xx.h.

Start mode, which controls the start of an A/D conversion when the BURST bit is 0.

Enumerator:
ADC_START_NOW 

Start conversion now

ADC_START_ON_CTOUT15 

Start conversion when the edge selected by bit 27 occurs on CTOUT_15

ADC_START_ON_CTOUT8 

Start conversion when the edge selected by bit 27 occurs on CTOUT_8

ADC_START_ON_ADCTRIG0 

Start conversion when the edge selected by bit 27 occurs on ADCTRIG0

ADC_START_ON_ADCTRIG1 

Start conversion when the edge selected by bit 27 occurs on ADCTRIG1

ADC_START_ON_MCOA2 

Start conversion when the edge selected by bit 27 occurs on Motocon PWM output MCOA2

Definition at line 124 of file adc_11xx.h.

ADC status register used for IP drivers.

Enumerator:
ADC_DR_DONE_STAT 

ADC data register staus

ADC_DR_OVERRUN_STAT 

ADC data overrun staus

ADC_DR_ADINT_STAT 

ADC interrupt status

Definition at line 87 of file adc_11xx.h.


Function Documentation

void Chip_ADC_DeInit ( LPC_ADC_T pADC )

Shutdown ADC.

Parameters:
pADC: The base of ADC peripheral on the chip
Returns:
Nothing
void Chip_ADC_EnableChannel ( LPC_ADC_T pADC,
ADC_CHANNEL_T  channel,
FunctionalState  NewState 
)

Enable or disable the ADC channel on ADC peripheral.

Parameters:
pADC: The base of ADC peripheral on the chip
channel: Channel to be enable or disable
NewState: New state, should be:

  • ENABLE
  • DISABLE
Returns:
Nothing
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.

Parameters:
pADC: The base of ADC peripheral on the chip
ADCSetup: ADC setup structure to be set
Returns:
Nothing
Note:
Default setting for ADC is 400kHz - 10bits
void Chip_ADC_Int_SetChannelCmd ( LPC_ADC_T pADC,
uint8_t  channel,
FunctionalState  NewState 
)

Enable/Disable interrupt for ADC channel.

Parameters:
pADC: The base of ADC peripheral on the chip
channel: ADC channel to read
NewState: New state, ENABLE or DISABLE
Returns:
SET or RESET
STATIC INLINE void Chip_ADC_Int_SetGlobalCmd ( LPC_ADC_T pADC,
FunctionalState  NewState 
)

Enable/Disable global interrupt for ADC channel.

Parameters:
pADC: The base of ADC peripheral on the chip
NewState: New state, ENABLE or DISABLE
Returns:
Nothing

Definition at line 199 of file adc_11xx.h.

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.

Parameters:
pADC: The base of ADC peripheral on the chip
channel,:selected channel
data: Storage for data
Returns:
Status : ERROR or SUCCESS
FlagStatus Chip_ADC_ReadStatus ( LPC_ADC_T pADC,
uint8_t  channel,
uint32_t  StatusType 
)

Read the ADC channel status.

Parameters:
pADC: The base of ADC peripheral on the chip
channel: ADC channel to read
StatusType: Status type of ADC_DR_*
Returns:
SET or RESET
Status Chip_ADC_ReadValue ( LPC_ADC_T pADC,
uint8_t  channel,
uint16_t *  data 
)

Read the ADC value from a channel.

Parameters:
pADC: The base of ADC peripheral on the chip
channel: ADC channel to read
data: Pointer to where to put data
Returns:
SUCCESS or ERROR if no conversion is ready
void Chip_ADC_SetBurstCmd ( LPC_ADC_T pADC,
FunctionalState  NewState 
)

Enable burst mode.

Parameters:
pADC: The base of ADC peripheral on the chip
NewState: New state, should be:

  • ENABLE
  • DISABLE
Returns:
Nothing
void Chip_ADC_SetResolution ( LPC_ADC_T pADC,
ADC_CLOCK_SETUP_T ADCSetup,
ADC_RESOLUTION_T  resolution 
)

Set the ADC accuracy bits.

Parameters:
pADC: The base of ADC peripheral on the chip
ADCSetup: ADC setup structure to be modified
resolution: The resolution, should be ADC_10BITS -> ADC_3BITS
Returns:
Nothing
void Chip_ADC_SetSampleRate ( LPC_ADC_T pADC,
ADC_CLOCK_SETUP_T ADCSetup,
uint32_t  rate 
)

Set the ADC Sample rate.

Parameters:
pADC: The base of ADC peripheral on the chip
ADCSetup: ADC setup structure to be modified
rate: Sample rate, should be set so the clock for A/D converter is less than or equal to 4.5MHz.
Returns:
Nothing
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.

Parameters:
pADC: The base of ADC peripheral on the chip
mode: Stating mode, should be :

  • ADC_NO_START : Must be set for Burst mode
  • ADC_START_NOW : Start conversion now
  • ADC_START_ON_CTOUT15 : Start conversion when the edge selected by bit 27 occurs on CTOUT_15
  • ADC_START_ON_CTOUT8 : Start conversion when the edge selected by bit 27 occurs on CTOUT_8
  • ADC_START_ON_ADCTRIG0 : Start conversion when the edge selected by bit 27 occurs on ADCTRIG0
  • ADC_START_ON_ADCTRIG1 : Start conversion when the edge selected by bit 27 occurs on ADCTRIG1
  • ADC_START_ON_MCOA2 : Start conversion when the edge selected by bit 27 occurs on Motocon PWM output MCOA2
EdgeOption: Stating Edge Condition, should be :

  • ADC_TRIGGERMODE_RISING : Trigger event on rising edge
  • ADC_TRIGGERMODE_FALLING : Trigger event on falling edge
Returns:
Nothing