ADC, help me

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

ADC, help me

1,368 Views
KingJames
Contributor I

Hi all

 

I'm starting with Freescale Beekit Tool kit. I'm using IAR Embedded Workbench with MC1322x Sensor Node.

Someone can tell me how to use ADC or where I can find some example where I can understand...

 

Thanks...

Labels (1)
0 Kudos
Reply
2 Replies

503 Views
Iko
Contributor II

Hi kingJames.

 

First, you must know the ADC channel where you want to make a convert.

After, you must define you're parameters:

-8,10,12.. bits results

-single or continus conversion

-whit or whitout interruption...

-ADC frequency (source clock and diviser/prescaler)

 

Next, you write on the various ADC register...

 

See the data sheet of you're µC for more details for ADC device...

 

0 Kudos
Reply

503 Views
KingJames
Contributor I

Hi Iko,

Thanks for the reply...

 

this is my c code:

 

1) set of gpio

 

    Gpio_SetPinFunction(gGpioPin31_c, gGpioAlternate1Mode_c);
    Gpio_EnPinPuKeeper(gGpioPin31_c,      FALSE);

 

 

2) ADC Setup

 

  #include "ADC_Interface.h"

 

  ...

  ...

 

  AdcConfig_t sAdc_Config;
  AdcConvCtrl_t adcConvCtrl;
  Adc_Init();
  Adc_Reset();
  (void)Adc_SetFifoCtrl(FIFO_DEEP);
  Adc_DefaultConfig(sAdc_Config, 24000); // (1Mhz prescale clock, 300KHz ADC analog clock,
                                         //   10 us on time, 40 us conversion time,
                                         //   auto working mode, compare interrupt disabled,
                                         //   FIFO interrupt disabled)
 
  (void)Adc_SetConfig(&sAdc_Config);
  Adc_TurnOn();
 
  adcConvCtrl.adcTmrOn = TRUE;
  adcConvCtrl.adcChannels = 0;
  adcConvCtrl.adcChannels |= (1 << gAdcChan1_c);
  adcConvCtrl.adcTmBtwSamples = gTimeBetweenSamples_c; // 1s between samples
  adcConvCtrl.adcSeqMode = gAdcSeqOnTmrEv_c; //Timer mode
  adcConvCtrl.adcRefVoltage = gAdcBatteryRefVoltage_c;
  (void)Adc_SetConvCtrl(gAdcPrimary_c, &adcConvCtrl);

 

3) problem :  I'm tring to sample 1.5V of battery (AA) on channel 1, but the sampled value that I read from FIFO is greater ,for example 2130  ....

Where is the problem on my code?

Have you some example about it?

 

Thank you in advance...

 

 

0 Kudos
Reply