AnsweredAssumed Answered

Help with ADC

Question asked by Jairo Javier Sanchez on Sep 26, 2009
Latest reply on Sep 27, 2009 by Jairo Javier Sanchez

Hi, i got a problem with the M52259DEMO board, i can't intialiaze the ADC, and is not a coding problem, it doesn't matter if i use the example config nor a custom configuration; the ADC does'nt start.

In the Debug mode i was able to track down  the failure in the _io_fopen function; there it seems that the MQX kernel just detects two devices in the IO_DEVICES struct listed here


static FILE_PTR  fd_adc, fd_ch = NULL;    //Apuntadores para el ADC y para el Canal del ADCconst ADC_INIT_STRUCT adc_init = {    ADC_RESOLUTION_DEFAULT,     /* resolucion del ADC*/};const ADC_INIT_CHANNEL_STRUCT adc_ch_param = {    ADC_SOURCE_AN0,    //Configura lo que se va a leer     ADC_CHANNEL_MEASURE_LOOP | ADC_CHANNEL_START_NOW,    10,            /* numero de muestras en una secuencia */    0,             /* Offset de tiempo desde el trigger en ns */    50000,         /* perioso en us (50ms) */    0x10000,       /* Rango de escala del resultado (no usado) */    1,             /* Tamaño del buffer circular (sample count) */    ADC_TRIGGER_1  /* ID del trigger logico que inicia este canal del ADC */};/* *  Configurar ADC para que lea los valores en potenciometro y acelerometro */   void InitADC(void) {    fd_adc = fopen("adc:", (const char*)&adc_init);    if (NULL == fd_adc)     {            printf("\nFallo la inicializacion del ADC\n");        return;     }        fd_ch = fopen("adc:0", (const char*)&adc_ch_param);    if (fd_ch == NULL)     {            printf("\nadc:0 Error al abrir el canal del ADC\n");        return;    }}


 The IO_DEVICE struct that i've found in the Kernel_data in _io_fopen is:


IO_DEVICE --address:     0x00000000   Identifier:  "/" --address:     0x20000A78   Identifier:  "ttya:" --address:     0x20000C10   Identifer:   "gpio:" --address:     0x20000330   Identifier:  "ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ"


 and that's all the devices, so when i try to access the "adc:" returns error because the function did't found such device. Any idea about how can i initialiaze the ADC? Thanks in advance.