How do i make a simple AD conversion with the LPC822?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How do i make a simple AD conversion with the LPC822?

290 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by ledi007 on Wed Apr 13 02:32:32 MST 2016
Hi,

i am a newbie to programm the nxp controller and i am struggling with the ADC.

What i want to do is a simple AD conversion (e.g. every 100ms) on ADC_2 (PIO0_14) in the while loop.
I dont want to use the LPCOPEN libraries!

In the LPC82x user manual is this described as:
"To perform a single ADC conversion for ADC0 channel 1 using the analog signal on pin ADC_1, follow these steps":

1. Enable the analog function ADC_1.
2. Configure the system clock to be 25 MHz and select a CLKDIV value of 0 for a sampling rate of 1 Msamples/s using the ADC CTRL register.
3. Select ADC channel 1 to perform the conversion by setting the CHANNELS bits to 0x2 in the SEQA_CTL register.
4. Set the TRIGPOL bit to 1 and the SEQA_ENA bit to 1 in the SEQA_CTRL register.
5. Set the START bit to 1 in the SEQA_CTRL register.
6. Read the RESULT bits in the DAT1 register for the conversion result.

What i have right now is that code:
int main(void)
{
    SystemCoreClockUpdate();// Read clock settings and update SystemCoreClock variable

    LPC_SYSCON->PDRUNCFG &= ~(1<<4);//power the ADC
    LPC_SYSCON->SYSAHBCLKCTRL   |= (1<<24);    //enable clock for ADC

    /* Need to do a calibration after initialization and trim */
    Chip_ADC_StartCalibration(LPC_ADC);
    while (!(Chip_ADC_IsCalibrationDone(LPC_ADC))) {}

    Chip_SWM_EnableFixedPin(SWM_FIXED_ADC2);

    LPC_IOCON->PIO0[IOCON_PIO14] |= (1<<1);//set to ADC mode for pin PIO0_14 (ADC_2)
    
    LPC_ADC->SEQ_CTRL[ADC_SEQA_IDX] |= 0x4;//Select ADC CH2 (Bit 3) to perform the conversion  in the SEQA_CTL register.

    while(1)
    {
    }
    return 0 ;
}


Can somebody help me, whith the next steps?
Can somebode post an simple example?
Labels (1)
0 Kudos
1 Reply

186 Views
lpcware
NXP Employee
NXP Employee
bump
0 Kudos