This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Why isn't my ADC conversion working?

Hello all,
I am working with a MCBSTR9 and I just don't seem to be able to get my ADC to get to work (polling). It keeps on giving 0. Here is the configuration proceudre:

static void ADC_Configuration(void)
{
        SCU->GPIOIN[4]  |= 0x01;                /* P4.0 input  - mode 0             */
        SCU->GPIOOUT[4] &= 0xFFFC;              /* P4.0 output - mode 0             */
        GPIO4->DDR      &= 0xFE;                /* P4.0 direction - input           */
        SCU->GPIOANA    |= 0x0001;              /* P4.0 analog mode ON              */

        ADC_DeInit();                               /* ADC Deinitialization */
    /* ADC Structure Initialization */
   ADC_StructInit(&ADC_InitStructure);

   /* Configure the ADC in continuous mode conversion */
   ADC_InitStructure.ADC_Channel_0_Mode = ADC_NoThreshold_Conversion;
   ADC_InitStructure.ADC_Select_Channel = ADC_Channel_0;
   ADC_InitStructure.ADC_Scan_Mode = DISABLE;
   ADC_InitStructure.ADC_Conversion_Mode = ADC_Continuous_Mode;

   /* Enable the ADC */
   ADC_Cmd(ENABLE);

   /* Prescaler config */
   ADC_PrescalerConfig(15);

   /* Configure the ADC */
   ADC_Init(&ADC_InitStructure);

   /* Start the conversion */
   ADC_ConversionCmd(ADC_Conversion_Start);
}

and the main loop:

        // configure system clocks
        SCU_MCLKSourceConfig(SCU_MCLK_OSC) ;
        SCU_PLLFactorsConfig(192,25,2);            /* PLL = 96 MHz */
        SCU_PLLCmd(ENABLE);                        /* PLL Enabled  */
        SCU_MCLKSourceConfig(SCU_MCLK_PLL) ;        /* MCLK = PLL   */

        // Set the PCLK Clock to MCLK/2 */
        SCU_PCLKDivisorConfig(SCU_PCLK_Div1) ;

        SCU_APBPeriphClockConfig(__ADC, ENABLE);

        ADC_Configuration() ;

        while (1)
        {
                while(ADC_GetFlagStatus(ADC_FLAG_ECV) == RESET);

            /* Get the conversion value */
            Conversion_Value = ADC_GetConversionValue(ADC_Channel_0);

            /* Clear the end of conversion flag */
            ADC_ClearFlag(ADC_FLAG_ECV);

        }

as you can see I am working at 96MHz, so I need a prescalar 15 for the ADC.
Any ideas?

Thanks in advance